`
micheal19840929
  • 浏览: 166532 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

j2me签名相关注意事项

    博客分类:
  • 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

/>

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shiwubian/archive/2009/06/01/4233142.aspx

 

 

*#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软件签名证书和获取http://blog.csdn.net/jerry_2015/archive/2009/12/25/5071153.aspx

 

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


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Symbian OS v9 把应用程序的能力细分为20项:

用户能力6项
NetworkServices:  用于使用移动网络,例如:拨打电话或发送文本消息。
LocalServices:    用于通过USB、红外和蓝牙发送或接收消息。
ReadUserData:     准许读取用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
WriteUserData:    准许写入用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
Location:         准许访问手机的位置信息。
UserEnvironment:  准许访问用户及其附近环境的实时保密信息。

系统能力7项
PowerMgmt:        准许在系统中中断任何进程或者转换机器状态(关掉设备)。
SwEvent:          准许生成或者捕获键盘以及笔输入事件。
ReadDeviceData:   准许读取系统设备驱动数据。
WriteDeviceData:  准许写入系统设备驱动数据。
SurroundingsDD:   准许访问提供外围设备输入信息的逻辑设备驱动。
TustedUI:         区分“normal”应用和“trusted”应用的UI。
ProtServ:         准许服务器应用可以用一个受保护的名字进行注册。受保护的名字以”!”开头。

受限的系统能力4项
NetworkControl:   准许修改或者访问网络协议控制。
MultimediaDD:     准许对所有多媒体设备驱动(声音、摄像头等)的访问。
DRM:              准许访问DRM保护的内容。
TCB:              准许在终端中访问/sys以及/resource目录。

设备制造商能力3项
CommDD:           准许访问通信设备驱动。
DiskAdmin:        准许进行硬盘管理操作,例如格式化驱动器。
AllFiles:         准许系统中的所有文件可见,而且还可对在/private下的文件进行写操作。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

应用程序必须拥有相应的能力才能进行相应的操作。能力的获得可通过“签名”(Signed)来实现。(用户能力可在软件安装的时候由用户授予)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Symbian Signed 的三种签名机制:

一、Open Singed (公开签名) 下又分两种情况:
1、Open Singed Offline 离线签名
这个就是我们以往用的办法,去 Symbiansigned 网站申请证书,然后使用得到的证书在本地签名。
2008年2月底开始,这种签名方式只对拥有 Publisher ID 的用户开放,而无 Publisher ID 的用已经不能再申请开发证书了(无限期关闭)
2、Open Singed Online 在线签名
意思是把你需要签名的程序提交上 Symbiansigned 网站,同时提交你的IMEI(序列号),签好以后下载下来用就是。

Open Singed 两种方法签好的程序都受IMEI限制,只能在指定IMEI的设备上用。
Open Singed Offline 需要Symbiansigne 用户帐号,Open Singed Online 不需要帐号

二、Express signed (快速签名)
将待发布的应用程序 (sis文件) 先使用自己的 Publisher ID 签名,然后提交这个应用程序到 Symbiansigned 网站由 Symbian 使用 B型根证书再签名。
这样签好的程序没有 IMEI 限制,谁都能用。这种方式 Symbian 不负责测试,但可能随机抽检。程序没有资格使用 Symbian OS 标志。提交签名的程序每个收费20美元。

三、Certified Signed (鉴定签名)
将待鉴定的应用程序先使用自己的 Publisher ID 签名,同时包括开发该程序时的PKG文件、用户手册等一起提交 Symbiansigned 的测试室,由他们测试,通过后使用Symbian B型根证书签名。
这样签好的程序没有 IMEI限制,可以使用 Symbian OS 的标志。由测试室收取测试费(具体数目不明)。


从上面可以看出:只有 Open Signed Online(在线签名)是不需要 Publisher ID 的,其他的所有签名方式都必须 Publisher ID


名词解释:Publisher ID
即发布者ID。拥有 Publisher ID 意味着是一个被承认的商业软件发布者。Publisher ID 需要购买,费用是 200美元/年。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按照 Symbian 的意思,第一种 Open Singed (公开签名) 是提供给软件开发者作为测试之用,所以签名后的程序受 IMEI 的限制,只能在单台或有限数量的机器上作为“测试”之用。而所有的公开发布的软件如果要使用6项“用户能力”以外的其他能力,就都应该使用第二种 Express Signed 或第三种 Certified Signed 这两种收费签名方式。Symbian 根本就没有打算让最终用户免费自己签名来获得更多的应用程序能力。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
最终用户关心的签名问题:

未经任何签名的应用程序是不能在手机上安装和运行的。但是!并不是每个应用程序都需要用户自己签名!

不需要用户自己签名的程序分下面几种情况:

  • 程序只要求用户能力(共6项)而不要求其他能力,这样的程序可以使用不包含任何权限的证书签名。比如主题制作软件UI即可以自行生成这样的“无权限证书”。还有一度讨论得热火朝天的“20年有效证书”也是无任何权限的证书。这类证书只是让这个程序变成“已签名”程序,但不授予任何权限,软件需要的6个用户能力可以在安装的时候由用户授予。
    (回忆某些程序是不是在安装的时候会提示你该软件需要读写用户数据、使用网络...,你点“继续”的时候就是授予这个程序6个用户能力了!)
  • 商业软件。即由软件开发商使用 Express Signed 或 Certified Signed 这些付费签名方式已经签名的软件。很明显这类软件不需要用户签名。

 



如果某应用程序需要使用“用户能力”以外的其他能力,但软件开发者又没有对这个程序进行付费签名(比如很多免费软件)。那么这样的程序就必须用户自己签名了。

用户签名可以使用上述三种签名机制中的第一种:Open Singed (公开签名)。其中由包括:

  • 在线签名。操作方法看 这里 但是很多应用程序受UID限制而无法使用在线签名。具体情况看 这里

  • 终于说到正题了,这就是我们现在常说的“自签名”!




名称解释:证书:
证书就是“能力”(或称“权限”)的载体。证书里包含很多信息,其中与本文相关的就是:证书里规定了该证书拥有的“能力”

参考链接:PID你了解证书吗?帮你解开证书作者:0o90o9

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
有关 Publisher ID 证书和以前的普通个人证书的问题


  • 以前无 Publisher ID 的普通个人用户可以“冒充开发者”自由申请开发证书,那种证书包含13个能力(用户能力6项+系统能力7项),并且一个证书对应唯一的一个 IMEI 号码。
  • 2008年2月的某一天 SymbianSigned 关闭了无 PublisherID 的普通个人证书申请,现在只有拥有 Publisher ID 才能申请到证书。
  • 拥有 Publisher ID 可以直接申请17项能力的证书(用户能力6项+系统能力7项+受限的系统能力4项)。一个证书里最多可以包含 1000 个 IMEI。
    实际上 Publisher ID 也可以申请另外的3项 设备制造商能力(这样就能拥有完整的 20个能力)。并且一个证书里也可以包含多于1000个IMEI。但是!这些需要说明理由并提交 SymbianSigned 严格审批,很麻烦的 ...

 



相关链接:PID证书使用上的不同之处作者:暖昧

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
证书的有效期问题:

2007年12月11日以后,所有的开发证书自颁发日前一天起有效期为3年. (之前的开发证书有效期是半年)
如果证书过期了,仍可以正常签名,只要在安装的时候把手机的日期修改为证书有效期内即可正常安装,安装后仍可以改回正常日期不影响程序运行。



相关链接:关于【证书过期】的解释及解决办法


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
总结:常见的入门问题:

  • 证书是用来签名的,用签名工具把证书签到需要签名的手机应用程序里,这个程序就可以使用了
  • 一个证书即可对所有需要签名的程序进行签名,签好的程序只能在证书里包含的IMEI那些机器上用
  • PID证书里最多可以包含1000个IMEI,所以最多可以1000个IMEI共用一个证书
  • PID证书有17个权限,高于原来的13权限的普通个人证书
  • 并不是什么程序都需要自己签名,程序发布的时候会说明的。如果没有说明就先直接安装它,遇到“证书错误”的提示再自己签名
  • 证书有效期3年,证书过期后仍可签名,但需要在安装的时候调手机日期
  • 制作证书需要用到KEY,用这个证书签名的时候要用到相同的KEY,否则无法签名
  • 本论坛推荐的签名工具已经内置本论坛的KEY,可以对本论坛申请的证书直接签名
  • 本论坛申请的证书不能用于在手机上运行的签名工具,只能在计算机上进行签名
  • 证书申请到这里 http://cer.dospy.com 提交IMEI(每天限时开放),并且请带上眼睛,仔细看如何领取证书的问题。
  • 提交IMEI后,前几批基本都当天可领,每天的最后一批第二天可领。


                                                      申明一下,这个词没有错 ↑,我说的就是“眼睛”
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


转自:http://bbs.dospy.com/thread-413794-1-1.html

分享到:
评论

相关推荐

    J2ME签名备忘

    本文将深入探讨J2ME签名的相关知识点,帮助开发者理解和实施这个过程。 1. **J2ME签名的基本概念** J2ME签名是Java应用程序在移动设备上运行前进行的一种安全认证,它通过数字签名技术确保代码的完整性和开发者...

    BlackBerry J2ME 编程指南

    - **UI设计注意事项**:考虑到设备屏幕尺寸较小,需要设计简洁直观的用户界面。 - **MIDlet介绍**:MIDlet是一种特定类型的Java应用程序,专为移动设备设计。 - **HelloWorldMIDlet**:一个简单的示例程序,展示如何...

    kjar j2me压缩工具

    在实际使用中,开发者通常会通过kjar.exe这个执行文件来运行工具,而readme.txt文件则包含了关于如何使用kjar的详细指南和注意事项。根据文档指示,开发者可以快速上手并掌握kjar的全部功能。 总结来说,kjar工具以...

    J2ME用户使用手册(PDF)

    3. **codechina.txt**:可能是代码示例、开发注意事项或其他补充信息。 总的来说,这份手册是学习和理解J2ME开发的宝贵资源,对于希望进入移动开发领域的Java程序员尤其有用。通过深入学习和实践,开发者可以利用...

    j2me安装包jar转cod软件

    5. **注意事项** - 转换过程中,确保.jar文件的兼容性与BlackBerry设备的Java版本匹配。 - 黑莓设备对资源和内存的限制可能不同于J2ME通用标准,因此在转换前需要考虑应用是否适合在BlackBerry设备上运行。 - ...

    J2ME网络编程[收集].pdf

    本文将深入探讨J2ME的网络编程,特别是通用连接框架(Generic Connection Framework,GCF)的基础知识,以及在中国环境下进行网络开发的注意事项。 **通用连接框架(GCF)** GCF是J2ME中用于实现设备间网络通信的...

    手机闪图下载 (2).pdf

    这部分可能包含开发过程中的一些注意事项、问题解决策略、设备兼容性问题以及可能遇到的常见错误。 七、附件: 提供了在MyEclipse中配置J2ME开发环境的详细步骤,包括安装必要的插件、设置模拟器等。 此外,文档还...

    WAS V6.0认证_SelfSign

    **安全注意事项**: 虽然自签名证书在内部环境中可以简化部署流程,但它们不被浏览器或设备广泛信任,可能会导致安全警告。在生产环境中,建议使用由受信任的CA签发的证书,以提供更高的安全性。 综上所述,"WAS V...

    ksoap2 android (轻量级 用于和WebService通信第三方开源库)

    6. **注意事项** - 确保Web服务的WSDL(Web服务描述语言)是可用的,这对于理解服务接口和方法签名至关重要。 - 注意处理可能的网络错误,如超时、无网络连接或解析错误。 - 在Android应用中,所有网络操作应在子...

    jar文件电脑使用模拟器

    5. **注意事项** - **兼容性**:并非所有JAR应用都能在所有模拟器上运行,因为它们可能依赖特定的硬件或API。 - **错误排查**:如果遇到运行错误,检查Java环境是否正确配置,JAR文件是否有损坏,或者模拟器设置...

    匡彬JAVA学习笔记java语言

    - **注意事项**: - 每个Java程序至少需要一个类。 - 如果一个类被声明为`public`,那么该类的文件名必须与其类名相同。 - 一个Java文件中最多只能有一个`public`类。 - `main()`方法是程序执行的起点,其签名...

Global site tag (gtag.js) - Google Analytics