最近在处理为
J2ME程序签名的问题,有一些心得在此做篇小记,以备今后查阅。
1. 通过对不同平台的手机的测试,得出一个经验,只有使用S60 version2平台的手机(例如,Nokia N72)才支持Self-signed certificate,其余的(S40或S60的其它版本)都不支持Self-signed certificate。此处可以参见:http://wiki.forum.nokia.com/index.php/KIJ000555_-_Signing_certificates_for_MIDlets
2. 对于不支持Self-signed certificate的手机,可以使用一些Commercial certificate(例如,VerySign )来对J2ME程序进行签名。因为在这些手机出厂时,已经preloaded了一些Commercial root certificate来verify一部分Commercial certificate。
3. 通过签名来消除Ugly Messages。在J2ME程序中如果出现一些特殊操作,例如,对本地文件的读/写,访问网络等,手机会自动跳出一些messages来询问是否允许进行这些操作,这是很不方便的。消除这些messages的方法就是通过签名,让手机能够信任程序从而是程序能够顺畅的进行特殊操作而没有ugly messages的打扰。
4. 如果用S60 version3的手机运行J2ME程序,对于文件的读写之类的本地操作,不需要在create jar之前分配相应的permissions;而对于访问网络,收发短信等操作,则需要在create jar之前通过WTK分配相应的permissions。然后用Commercial Certificate sign jad file。
最后,贴一个非常有用的链接:http://wiki.forum.nokia.com/index.php/Java_Security_Domains。