FAQ, Support, Help

1. Steps of setup and usage

  • HC_Server.zip MD5 : 1d5593b04578ec5833c9cddb19828514
  • Source Code :
    • https://github.com/javalovercn/homecenter.git
    • Server_Src.zip MD5 : 26a6fbf9ae4123cb1d22160a9e35aa45   last update date:2018-03-21(YYYY-mm-dd)

Steps of starting PC Server and register:
  1. install JRE 7 (Java Runtime Environment) or newer
    JRE download:https://www.java.com/
    support following OS:
    • Windows (x86/x64)
    • Mac OS X
    • Linux/Unix (x86/x64)
    • Solaris Unix(x86/x64/SPARC)
  2. unzip HC_Server.zip
  3. start HomeCenter server
    note : why starting by a batch or script, not executable binary file?
    1. script file is more open than executable binary file, and there is an advance to customize the script to start a personalized starting (such as security policy) in script file.
    2. the batch file will execute signed Java library, and download the newest signed application library.
    • for Window : enter Window directory, double click "HomeCenter.bat"
    • for Mac OS X :
      • normal user : enter MacOSX directory, unzip"MacOSX.zip", double click "HomeCenter"
      • advanced user : enter Linux directory, NOT MacOSX, double click "HomeCenter.command"
    • for Linux : enter Linux directory, double click "HomeCenter.sh"
  4. input new password, click "OK", HomeCenter server will be ready for mobile connecting

more tutorial for usage, developing, click tutorial

If some older OS is under the screen saver or lock screen, mobile will display black when accessing desktop. Please stop screen saver or disable locking screen.

2. Tutorial for usage, developing, designing of HomeCenter server

more tutorial, click tutorial

3. My password is right , but can't connect

  1. the server generated the new certification, and disable transport to client. If your client's certification is old, then cant connect.
  2. If some one try connect use wrong passwod more than ten times, the account will be locked, you may cant connect.

4. Are the account and password stored in the HomeCenter.MOBI?

  • No account or password stored in HomeCenter.MOBI
  • Password will NOT be transported in the internet

5. What is relay or relay server

  • Some Application(Server Side) runs behind advanced firewall or router, it is difficult to connect between PC and mobile.
  • In this case, all data are delivered to the third PC, the third receptes and retransmits for the poor server
  • Your server side application may be a relay server for other users, which depends on the global internet status.
  • If your service works depend on relaying , the color level and refresh frequency are limited
  • We try our best to connect your mobile direct to PC, if fail then try find relay server, if not relay server or relay server works for the MAX clients, then connect fail. Retrying after a few minutes or hours is a good choice.

6. What is certification, How do I use it

  • Certification is serial random string, to encrypt and decrypt the data transported between server and client
  • certification is stored both server and client
  • the data transported between server and client are encrypted by password, certification and user encryptor program(if config the item "encryptClass=hc.core.util.DefaultUserEncrypter" in "hc_config.properties")
  • after first install Applicaton and Java MIDP, the certificaton is same with each other

How to use certification
  1. right click icon on the tray
  2. click the "Create Certification" menu item
  3. It will display message if success
  4. ensure the status of "Trans Certification" is "Enable", it show icon (). If your mobile certification is old or outdate, then server will transport the new certification to mobile when the mobile login.
  5. If the the status of "Trans Certification" is "Disable", it show icon (). If the mobile store old certification, it will NOT get the new certification

7. Cant start server, no splash screen display

Too many programs are running.
  • Shutdown some programs
  • If memory of machine is small, change the parameter of HomeCenter.
    1. shutdown the server
    2. In Windows, edit file "HomeCenter.bat"
      In Linux / Unix, edit file "HomeCenter.sh"
    3. add "-Xmx100m" to command line
    4. save file
    5. restart HomeCenter Server

8. Can I use my owner encryptor to improve the security?

  • Normal user DONT need user defined encryptor even if the net is sniffed.
  • Certification and data are encrypted by high performance encryption algorithm when no user defined encrypter.
  • If you want to improve security, see below (it is for J2ME mobile phone)

  1. shutdown the server
  2. edit file "hc_config.properties"
  3. add or change item "encryptClass=my.abc.MyEncrypter". if encryptClass is developed by you, DONT put it in hc.jar. Because file hc.jar may be replaced and upgraded by System.
  4. if "encryptClass=my.abc.MyEncrypter", create directory my\abc, and copy MyEncrypter.class file in the path C:\Program Files\HomeCenter\my\abc\, directory C:\Program Files\HomeCenter\ is your install directory. MyEncrypter.class MUST be compiled under 1.4, because it is also used in J2ME mobile
  5. add or change item "encryptData=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890". my.abc.MyEncrypter class file works depend on this item.
  6. NOTE hc_config.properties must store as charset ISO-8859-1. See http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Properties.html
  7. save file, restart server
  8. open log file, you will see a line 2012-01-30 15:30:53.703 Enable user Encrypter [my.abc.MyEncrypter]
  9. open J2ME MIDP file "hcME.jar"
  10. copy MyEncrypter.class into path my/abc in file "hcME.jar"
  11. edit file "hc/hc_config.properties"
  12. add item encryptClass=my.abc.MyEncrypter
  13. add item encryptData=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
  14. NOTE hc/hc_config.properties must store as charset ISO-8859-1. In HomeCenter software, all resources(exception properties) and classes are UTF-8
  15. install file hcME.jar to mobile. NOTE : Don't upgrade it online.

IDE : https://blogs.oracle.com/javamesdk/entry/how_to_integrate_java_me
hcME.jar developed in CLDC 1.0 and MIDP 2.0
public class MyEncrypter implements hc.core.util.IEncrypter {
	final String encryptData = (String)IConstant.getInstance().getObject("encryptData");
	final byte[] encryptBS = toByteArr(encryptData);
	final int encryptLen = encryptBS.length;
	private static byte[] toByteArr(String encryptData){
		try {
			if(encryptData != null){
				return encryptData.getBytes("UTF-8");
		} catch (UnsupportedEncodingException e) {
		return "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890zyxwvutsrqponmlkjihgfedcba".getBytes();
	public void decryptCertKey(byte[] data, int offset, int len) {
		int modeK = 0;
		final int endIdx = offset + len;
		for (int i = offset; i < endIdx; i++) {
			data[i] = (byte)(data[i] ^ encryptBS[modeK++]);
			if(modeK == encryptLen){
				modeK = 0;

	public void decryptData(byte[] data, int offset, int len) {
		int modeK = 0;
		final int endIdx = offset + len;
		for (int i = offset; i < endIdx; i++) {
			data[i] = (byte)(data[i] ^ encryptBS[modeK++]);
			if(modeK == encryptLen){
				modeK = 0;
			i += 3;

	public void encryptCertKey(byte[] data, int offset, int len) {
		int modeK = 0;
		final int endIdx = offset + len;
		for (int i = offset; i < endIdx; i++) {
			data[i] = (byte)(data[i] ^ encryptBS[modeK++]);
			if(modeK == encryptLen){
				modeK = 0;

	public void encryptData(byte[] data, int offset, int len) {
		int modeK = 0;
		final int endIdx = offset + len;
		for (int i = offset; i < endIdx; i++) {
			data[i] = (byte)(data[i] ^ encryptBS[modeK++]);
			if(modeK == encryptLen){
				modeK = 0;
			i += 3;

	public void initEncrypter(boolean isMobileSide) {
		System.out.println("Call initEncrypter method");

	public void setPassword(byte[] password) {
		System.out.println("Call setPassword method");
		int modeK = 0;
		for (int i = 0; i < encryptBS.length; i++) {
			encryptBS[i] = (byte)(encryptBS[i] ^ password[modeK++]);
			if(modeK == password.length){
				modeK = 0;

	public void setUUID(byte[] uuid) {
		System.out.println("Call setUUID method");
		int modeK = 0;
		for (int i = 0; i < encryptBS.length; i++) {
			encryptBS[i] = (byte)(encryptBS[i] ^ uuid[modeK++]);
			if(modeK == uuid.length){
				modeK = 0;

	public void notifyExit(boolean isMobileSide) {
		System.out.println("When mobile or PC exit, It will be called.");
JVM init my.abc.MyEncrypter.java, list below:
Call setUUID method
Call setPassword method
Call initEncrypter method

9. I set the color level to 5, but it show poor

  1. If mobile can't direct connect to the server,
  2. and your server works depends on the relay server,
  3. to help more peoples to use relay server, we limit the color level and refresh frequency

10. I set the remote scree refresh MS to 1000, It should refresh each one second, but three seconds

See above item

11. Can I use Java PolicyFile?


Runing Java Application in customize policy file is good method to protect your system.

Please do as following:
  1. shutdown the server
  2. In Windows, edit file "HomeCenter.bat"
    In Linux / Unix, edit file "HomeCenter.sh"
  3. create policy file, add "-Djava.security.policy=XXpolicy" to command line.
    For more
Note : Please grant directory C:\Program Files\HomeCenter\ all permissions. It is your install directory and will create new files when is auto upgraded.

12. Mobile display black while Windows XP is in login screen

Mobile displays black when JRE captures Windows XP login screen. If Your PC need auto startup, please turn ON automatic logon.
  • create a guest account, such as "RemoteMobile". NOT administrator account.
  • turn ON automatic logon for account "RemoteMobile". How to automatic login in Windows, click here
  • Add HomeCenter Server to startup item to auto start server
  • It is more safer than controling from mobile by administrator account directly.

13. My mobile is Windows CE/Mobile, What should I do?

Sun (now Oracle) phoneME for Windows CE/Mobile

14. Are the download server zip and auto upgraded jars verified?

Since ver 5.6.93, there is a hc.pem, which is X509, all jars (include auto upgraded) are verified by it.
If hc.pem is changed or the jars are faked, HomeCenter App Server will report the exception and stop running.
Following is content: