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 : 566d57dbef88002d7a47e8b41bba142d   last update date:2018-05-25(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?

Yes.
  • 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
my.abc.MyEncrypter.java
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) {
			e.printStackTrace();
		}
		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?

Yes

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
http://davy.preuveneers.be/phoneme/?q=node/1

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:
	-----BEGIN CERTIFICATE-----
MIILyTCCBrGgAwIBAgIEWt+RoTANBgkqhkiG9w0BAQ0FADCBkzELMAkGA1UEBhMCQ04xDjAMBgNV
BAgTBUh1bmFuMREwDwYDVQQHEwhTaGFvWWFuZzEfMB0GA1UEChMWdmVyaWZ5LkhvbWVDZW50ZXIu
TU9CSTEfMB0GA1UECxMWdmVyaWZ5LkhvbWVDZW50ZXIuTU9CSTEfMB0GA1UEAxMWdmVyaWZ5Lkhv
bWVDZW50ZXIuTU9CSTAgFw0xODAxMjMwNjQ0MTlaGA8yMTE2MDgxNzA2NDQxOVowgZMxCzAJBgNV
BAYTAkNOMQ4wDAYDVQQIEwVIdW5hbjERMA8GA1UEBxMIU2hhb1lhbmcxHzAdBgNVBAoTFnZlcmlm
eS5Ib21lQ2VudGVyLk1PQkkxHzAdBgNVBAsTFnZlcmlmeS5Ib21lQ2VudGVyLk1PQkkxHzAdBgNV
BAMTFnZlcmlmeS5Ib21lQ2VudGVyLk1PQkkwggUiMA0GCSqGSIb3DQEBAQUAA4IFDwAwggUKAoIF
AQCuw7nY+4OzwXnr7C+bEgmoFX1R6vsaRHL9oK2DUgOFa/RLKBTkzn5Y4A2/YVfcTDH2Vfo0vmrK
JShQ32y7kuBxiOCNQhy8jmgYRfCXacpznMoGELOOOGh6GYp8KNzJ7LAKiDzAJ7xhOOeM2MAwKE3r
iZly9ure8tleZGvSX+fWgMtex7Tt/E3VymlejG9cyJPqsBicagQYEEV1rptxtoZvC13zHuErUqIp
JJcb1dTjzPZ9cW4C2DHnYOyqWQrv7Pfj/Yh4EvK/rQp8evHE8YIWMr9mmbxMH3/CsQJpdWa86tUB
6tOxSOxva4vRKck8X+vXZ2Eh8V4uSYAS7BSiqSgWCOSswhpz6c590l/tE2GmvOF3+qbGFMhRpadX
uFxnw5BXzluQd0vrRfKekgmnM/U63iziUY8F1/ZyJKuK1DzpHYhJkuk93qQCXGQMlpXnYhoA2/zh
Q9bZWXEW/k2IVcuyy4Qp/WutQgykmrQyk6FeeupiR4AQZgXqsq/U5QcRvOhuVN/QmFxc3/aGXDai
4nNdDVx+25RKO8yCoIFAiXN8b04HqjUfuBHqy0rUtFmzm4zjjBVI+2JbMhW/R98tFSdXIwKCyzq1
taeUoZeunFngBfOqy7U+OwS8uLfm67RiK6vSFv+tvvHkapfdolDoo1TnUIlQXytEhLcWgHHI+rqT
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
-----END CERTIFICATE-----