获取所需的软件
- Java的SDK(JDK)从太阳(你应该已经有此)
- Java无线工具包(WTK)也从太阳
- (可选)获取并安装Ant和Antenna,以使您的构建自动化(强烈建议您这样做)
导入现有证书(如果有的话)
- 如果您是从Verisign(或其他提供商)购买的证书,则需要将该证书导入到J2SE密钥库中。
- 尝试使用以下命令
keytool -import -alias {myalias} -file {mycertificate}
(由于我没有适当的证书,因此我无法对其进行测试) - 运行
keytool -list
以查看您的新证书 - 接下来,您必须导出证书,以便可以将其导入到手机中
- 跑
keytool -export -alias {myalias} -file mycertificate.crt
- 将证书导入手机(有关详细信息,请参见下文)
创建并导入新的(测试)证书
- 您需要使用keytool(来自JDK)
- 我使用以下命令
keytool -genkey -alias {myalias} -keyalg RSA -validity 365
- 这将提示您输入密钥库密码,输入密钥库密码(如果您已有密钥库),或者输入您想使用的密钥库(如果您还没有)
- 填写有关位置/公司名称等的所有提示。
- 运行
keytool -list
以查看您的新证书 - 接下来,您必须导出证书,以便可以将其导入到手机中
- 跑
keytool -export -alias {myalias} -file mycertificate.crt
将证书导入手机(有关详细信息,请参见下文)
C:j2sdk1.4.2_08bin>keytool -genkey -alias company -keyalg RSA -validity 365
Enter keystore password: password
What is your first and last name? [Unknown]: My Name
What is the name of your organizational unit? [Unknown]: company
What is the name of your organization? [Unknown]: company
What is the name of your City or Locality? [Unknown]: location
What is the name of your State or Province? [Unknown]: location2
What is the two-letter country pre for this unit? [Unknown]: GB
Is CN=My Name, OU=company, O=company, L=location, ST=location2, C=GB correct? [no]: yes
Enter key password for (RETURN if same as keystore password):
构建并打包应用程序
- 使用
javac
来构建你的MIDlet要特别注意你的classpath和启动类路径的选项(否则预验证会失败)。我还将目标设置为1.1,将源设置为1.3 - 生成您的JAD文件JAD中的关键属性是MIDlet-Jar-URL,MIDlet-Jar-Size,MIDlet-Permissions,我们还包括MIDlet-Icon,MicroEdition-Configuration,MicroEdition-Profile,MIDlet-Name,MIDlet-Push-1 ,MIDlet图标,MIDlet描述和MIDlet版本
- 根据您的JAD生成MANIFEST.MF文件,您必须删除MIDlet-Jar-Size和
MIDlet-Jar-URL
- 这两项任务都可以使用wtkJad Antenna任务完成
- 使用wtkPackage Antenna Task打包和预验证应用程序,您必须正确设置classpath和bootclasspath属性,否则预验证将失败
签署申请
- 使用签署申请
jarsigner
- 跑
jarsigner -keystore {mykeystore} -storepass (mypassword} {myjar} {myalias}
- 现在您有了一个签名的jar,需要更新
MIDlet-Jar-Size
JAD中的 - 现在使用
JadTool.jar
WTK 将证书添加到JAD中 - 跑
java -jar JadTool.jar -addcert -alias {myalias} -storepass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}
- 现在使用再次将签名添加到JAD
JadTool.jar
- 跑
java -jar JadTool.jar -addjarsig -alias {myalias} -jarfile {myjar} -storepass {mypassword} -keypass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}
部署方式
- 将其部署到正确设置了MIME类型的Web服务器上,然后将其下载到您的手机中,它将成为受信任的第三方应用程序
- 您还可以根据手机的功能,通过蓝牙,红外或电缆将JAR和JAD发送到手机,从而将应用程序部署到手机。在诺基亚手机上,文件显示在您的短信收件箱中
在手机上安装证书
- 将证书导入到手机中,在Windows XP SP2中,我可以通过右键单击文件并选择“发送到蓝牙设备”来执行此 *** 作,您也应该能够通过电缆或红外(IR)发送文件。注意:我仍然找不到在40系列电话上导入证书的方法
- 证书一旦安装,就需要被授权进行“应用程序安装”。在我的手机(诺基亚6680)上,这是在“工具”->“设置”->“证书管理”->“信任设置”下,我打开了所有内容,但我认为“应用程序安装”是您所需要的
常见问题
- 未使用JAD安装应用程序:只有使用JAD安装的应用程序才是受信任的应用程序,该应用程序仍将通过jar安装,但不会被信任。
- 未设置应用程序信任设置:安装应用程序后,您需要指定给予信任的程度(默认情况下不会获得所有权限)。在诺基亚60系列手机上,可以在应用程序下找到这些内容。经理。
- 电话中缺少根证书:某些电话中缺少Java验证的证书和/或Verisign证书,请在“工具”->“设置”->“证书管理”下检查相关证书
- 授权失败:-这背后有很多可能的原因,这是我遇到的原因
- 电话中缺少证书,请仔细检查您的证书是否已安装,并已在证书管理中标记为可信任的应用程序安装
- 重新启动:完全卸载应用程序,然后重新启动手机,尝试也取出电池和SIM卡,通常情况会发生变化,特别是如果您在不先卸载的情况下进行了很多重新安装时
- JAD / JAR不匹配:仔细检查JAD中的应用程序大小,请记住,字节数很重要,而不是磁盘大小
- 浏览器缓存:如果要通过无线方式安装,请确保在安装之前清除浏览器缓存
- 我听说过但未验证行中的断线
MIDlet-Permissions
会导致问题,但在诺基亚6680/6630 / 6230i上对我来说似乎还可以(可能取决于固件吗?) - 该
MIDlet-Permissions
属性是导致许多问题的原因(尤其是由于文档经常是错误的/遗失的或因电话而异),请尝试先将其排除在外,然后一次添加权限。有些手机会抱怨不支持的权限,有些则会忽略它们
- 某些早期的诺基亚6600固件中存在错误,无法安装受信任的MIDlet
- 证书尚未生效:如果您自己生成了证书,则证书的开始有效日期可能是明天,如果您的PC和电话日期不同,则可能不在证书的有效期限内
- 40系列电话上没有证书管理,可以安装已签名的应用程序,但自签名证书的行为很奇怪
- JadTool问题:我还没有遇到过这些问题,但是其他很多人都遇到过
- “如果尝试手动使用jadtool,我会遇到问题。我有一个证书链,而且似乎无法使用任何WTK jadtool将第二个证书添加到JAD文件中。但是有趣的是,我可以成功签署Midlet使用任何相同的WTK GUI界面-他们正确添加了第二个证书。
- 使用1.4.2_06 jarsigner.exe对jar进行签名
- 使用WTK(2.2或2.3 beta)jadtool将certnum为1的addcert
- 如果我调用jadtool将certnum 2添加到addcert中,则将相同的证书作为cert 1-2插入,我假设我做错了,因为WTK gui似乎工作正常”
- “我在KVM新闻组上收到了有关该主题的帖子,该帖子指出jadtool中存在错误,并且作者声称已提交了错误报告并发布了补丁:http : //archives.java.sun.com/cgi -bin / wa?A2 = ind0508&L = kvm-interest&F =&S =&P = 9858还发布了一个有趣的注释,即cert JAD参数是静态的,因此一旦从WTK中正确获取它们,就可以将其静态地放在ant中。脚本。”
- “我正在尝试为诺基亚6620设备签名MIdlet。我正在使用实际上包含两个证书(用户证书和中级CA)的Verisign代码签名证书。我正在使用WTK 2.2签名工具。您知道此工具是否支持两个证书?签名时使用证书?签名是使用两个证书添加到JAD文件中的,但安装时出现安全错误,我在设备上进行了检查,并为Verisign安装了不同的根证书,但仍然失败!
- “如果需要,您可以下载sprintpcs开发人员工具包,因为它支持双重证书(http://developer.sprintpcs.com)。但是,尽管它支持诺基亚(6620 / cingular)手机,但我从未获得过该证书可用于确实适用于sprint手机(启用了开发人员root)。最终,我只能通过创建此博客中所述的证书并将其安装在手机上来工作。即使我的签名签名证书的根证书是是在6620手机上,它仍然永远不会像您认为的那样安装我的MIDlet。”
- 旧手机(6230 / i,6682)不支持x509证书,建议使用WPKI作为可能的解决方案,但我尚未对此进行调查
- 套接字连接可能会出现问题(http://discussion.forum.nokia.com/forum/showthread.php?t=68306),这可能是由于WAP基础设施和运营商提供的服务。HTTP是使用起来更安全的协议
- “联机并检查应用程序的有效性”:是/否。如果单击“是”按钮,电话将出现以下错误:“此应用程序的证书已吊销”,安装失败。要解决此问题,请转到工具->管理器->菜单->设置->在线证书检查[开/关/必填]还有一个默认地址设置。如果需要在线控制设置,则如果没有默认地址,则检查将失败。看到http://discussion.forum.nokia.com/forum/showthread.php?t=71071
信任域
MIDP2中有4个不同的信任域(制造商,运营商,受信任的第三方和不受信任的域)。可信第三方是对我们真正有用的唯一工具。它在我的诺基亚6680(英国沃达丰)上提供以下选项:
网络访问:不允许,每次询问,第一次询问消息传递:不允许,每次询问应用程序自动启动:不允许,每次询问,第一次询问连接性:不允许,每次询问,第一次询问,始终允许多媒体:不允许,每次询问,第一次询问读取用户数据:不允许,每次询问,第一次询问,始终允许编辑用户数据:不允许,每次询问,第一次询问,始终允许这些设置由运营商和电话制造商定义,因此在电话,制造商和运营商之间会有所不同。
未解决的问题
- 我设法使用J2ME WTK实用程序对此格式的JAD进行了签名,但是当尝试将其安装在设备上时,出现一条消息“应用程序身份验证失败909”。
样本JAD
MIDlet-Jar-URL: MyApp.jarMIDlet-Jar-Size: 201365MIDlet-Name: MyAppMIDlet-Vendor: EC1MMicroEdition-Profile: MIDP-2.0MicroEdition-Configuration: CLDC-1.1MIDlet-Icon: logo.pngMIDlet-Push-1: sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,*MIDlet-Description: MyApp MIDletMIDlet-Permissions: javax.microedition.io.PushRegistry,javax.microedition.io.Connector.sms...MIDlet-Version: 1.0.67 MIDlet-1: MyApp, logo.png,net.ec1m.MyApp.midp.MyAppMIDletMIDlet-Certificate-1-1: MIICODCCAaECBEKqpfswDQYJKoZIhvcNAQEEBQAwYz...=MIDlet-Jar-RSA-SHA1: EUsAch/.../hEZOsJsiCjBOhNs/3FSw4=
样品清单
清单版本:1.0MIDlet名称:MyApp 创建时间:1.4.2_05-b04(Sun Microsystems Inc.)MIDlet-Push-1:sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,*MIDlet-1:MyApp,logo.png,net.ec1m.MyApp.midp.MyAppMIDletMicroEdition配置:CLDC-1.1Ant版本:Apache Ant 1.6.2MIDlet-Icon:logo.pngMIDlet供应商:EC1MMIDlet-权限:javax.microedition ...MIDlet版本:1.0.67MicroEdition配置文件:MIDP-2.0MIDlet描述:MyApp MIDlet
样本Ant构建文件 我已经将我们的EC1M
ant构建文件放在我们的网站上,以(希望)为您简化了所有这些工作。
其他资源
此FAQ诺基亚论坛是值得一读。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)