认识jad 证书,j2me签名相关注意事项

教你一步步认识jar(附java权限XX、后台等)

http://bbs.dospy.com/thread-6531845-1-236-28.html

 

 

j2me签名相关注意事项

 

我们得到一个证书后就可以对j2me的jad文件进行签名。这里有一些与签名相关的需要注意的一些问题。
1. 想要安装签过名的软件,就必须通过jad来安装。
我们知道j2me程序生成后会有jad和jar两个文件,一般情况下我们只需要安装jar文件就可以了。例如我会将jar文件通过蓝牙传到手机上,再进行安装。但如果想通过手动安装签过名的文件,就要通过jad来安装,而且要确保jad和jar文件是在相同目录下。我的做法是通过数据线将两个文件拷入手机的内存或存储卡上,然后通过jad来安装,这样安装好的软件就是签过名的软件了。不会再有总是很烦人的询问用户是否允许操作的提示信息。
但就我看过的手机看来,应该是不同的手机有不同的表现。例如索爱的手机关于提示仍然是需要用户自己设置的。诺基亚也是。只是诺基亚的在使用非签名软件时用户无法设置为“总是允许”或“只提示一次”。而签了名的就可以设置了。
3. 编程人员需要注意,像很多功能在未签名前是可以使用的,例如gps,网络连接,文件读写,
2. 签过名的软件有什么好处。
签名就是告诉我们这个软件是可信的,对用户最直接的感受就是联网或访问手机文件的时候,收发短信,彩信,蓝牙等,但签名后这些功能就部可用了。
这就是jad中MIDlet-Permissions属性的问题。当未签名时对这个属性的要求并不严格,但签名后就一定要注意。必须把所要使用到的权限加入进去,否则这个功能就不能使用了。
如下是一些常用的MIDlet-Permissions属性。
<attribute name="MIDlet-Permissions" value="javax.microedition.io.Connector.http,
javax.microedition.io.Connector.socket,
javax.microedition.io.Connector.datagram,
javax.microedition.io.Connector.file.read,
javax.microedition.io.Connector.file.write,
javax.microedition.io.Connector.mms,
javax.microedition.pim.ContactList.read,
javax.microedition.pim.ContactList.write,
javax.microedition.location.Location,
javax.microedition.location.ProximityListener,
javax.wireless.messaging.sms.send,
javax.wireless.messaging.sms.receive,
javax.wireless.messaging.mms.send,
javax.wireless.messaging.mms.receive,
javax.microedition.io.Connector.sms
/>

*#06#:获取手机串号
*#0000#:获取软件版本

【JAVA软件的权限(这里用塞班证书来做类比)】

有些SIS软件是不需要开机自启、后台自动运行等功能的,这种软件就不需要签名
如果你要实现这些功能,就必须签名
同理,有些JAVA软件不需要联网、读取存储卡内容、发送短信等功能,这种JAVA软件,直接用JAR安装即可正常使用

但是,如果这个JAVA软件需要联网(比如航海家浏览器),需要读取存储卡内容(比如anyview),需要发送短信等等,那么如果你直接用JAR安装,在运行软件时,每当你需要联网、读取、发短时,就会出来提示框,问你是否允许这个操作
这种情况下,就需要JAD文件来解决了

用JAD安装JAVA软件,就好比用证书给SIS软件签名

具体方法:将JAD和JAR文件放在同一个文件夹下,文件名保持相同,点击JAD安装。安装以后,去程序管理,找到这个软件,套件设置,将所有的权限都从每次询问,改成总是允许,这样,你就不会再看到烦人的提示框了,世界清静了

JAD也是分种类的

有些JAD是无效的:

本帖隐藏的内容需要回复才可以浏览
大部分的JAVA软件,都会同时提供JAD和JAR两个文件同时下载,但是,有时候,你用JAD安了以后,发现最高权限还是每次允许,这就说明,这个JAD是低权限的(好比塞班证书的13、17、19、20权限),是无效的(比如签了别人的名),或者是过期的(好比塞班证书的三年有效期),总之,不能用。

JAD是分系统的:
同样的一个JAVA软件(JAD+JAR),安在S60手机上,可以提高权限,安在S80手机上,却不行。
这点类似塞班证书,只不过塞班证书更严格而已,一部手机一个证书。
比如anyview,在我的N73上就可以提高权限,在9300(S80系统)上就不行,后来联系了作者,作者专门为9300做了一个JAD证书才解决

JAD是要花钱的:
就像塞班的开发者证书需要花钱购买一样,JAD也一样。
现在很多论坛都帮大家免费制作塞班证书,但是追本溯源,最开始的那个证书,还是用钱买来的。

作为JAVA软件的作者,如果你想让你的软件拥有一个高权限的JAD证书,那就得用一个东西来制作这个证书,而那个用来做JAD证书的东西,一年费用好像是4000。


同一个软件,一个使用流畅,没有任何提示框,一个频繁弹出提示框,作为使用者,你想选哪个?肯定是前者了
所以,对软件作者来说,都想拥有高权限JAD,这对软件的推广非常重要
因此,和S60论坛经常能看到的求证书帖一样(现在论坛都给大家免费做证书,这种帖子少见了,以前可是很多的),JAVA论坛也能看到求证书帖,不过那都是没证书的软件开发者,向有证书的软件开发者求助
因为大部分JAVA软件的作者,都是出于兴趣免费制作发布,让大家免费使用的,对于他们来说,自己再往里投入4000一年的费用,实在不划算,但是有些软件作者是职业开发者,靠这个吃饭,人家就买了那东西,就能制作高权限JAD
而且这个制作比较变态,同一个软件的每个版本,都得重新制作JAD,所以可能会存在这种情况,上一版是高权限,出了新版,反而低权限了。这说明软件作者上一版找到了个雷锋,这一版没找到,呵呵
和塞班证书类似,这种热心行为也是有风险的。塞班证书的存在,是S60系统没有病毒(迄今为止没有)的原因之一,JAD也一样。
如果你随便帮别人做了证书,那你就得对这个证书负责。如果那人存心不良,开发的是8楼说的那种暗地发送短信扣费软件,那就惨了。到时候,如果真的追究起来,技术高手是能从这个软件的JAD文件追查到当初做证书的那个人的。

具体可以参考:J2ME软件签名证书和获取

Symbian OS v9.x (S60 3rd)
在安全性方面做了比较大的改善,对在系统中运行的程序等都有严格的规定。其中主要
措施就是所谓“能力”(Capabilities)的限制,也就是我们平时说得多的“权限"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值