S/SL75的Java软件认证方法及注意事项
前言:对于那些非西门子原装软件及游戏,它们的部份功能一旦涉及到了系统访问和调用,就会跳出提示确认框,不厌其烦。对于x65机型可以使用CertifyMidlet软件来添加认证。但大多数都不适用于S/SL75及后续机型,也有部分Java在CertifyMidlet下认证失败,大家可以参考本篇来解决一些做认证时所发生的问题。
一、使用MidletSigner5来认证S/SL75的Java
同上所述,CertifyMidlet的认证无法在S/SL75及后续机型上使用,所以就有高手写了MidletSigner5,但MidletSigner5并没有自己的shell界面无法像CertifyMidlet那样直观的使用。
使用MidletSigner5生成证书的方法我就不再叙述了拷贝一下大虾(可能是RainMoon 到底是不是我给忘了…对不起啊!)的原文:
1、打开手机上隐藏目录(可以使用OD(OpenDisc)或者其他工具软件)
(对于75系列,要写SKEY到手机)
2、从手机拷贝文件“Configpolicymanufacturer.sbp”到MidletSigner所在目录的“Configpolicy”文件夹
3、创建我们自己的认证:
3.1、运行“makecert.bat MyCertificate“命令(这里可以用我们自己的认证名字代替MyCertificate )
3.2、拷贝文件 “ConfigCertificate StoreMyCertificate.der” 和 “Configpolicymanufacturer.sbp” 到手机的相应目录。
4、现在可以做我们自己的认证应用程序了:
4.1、拷贝我们自己的应用程序到MidletSigner所在目录(整个文件夹,必须包括JAR和JAD文件,没有JAD的用JADgen生成一个)
4.2、编辑 certify.bat, 设置你所想要的权限
4.3、运行“certify.bat MyCertificate(3.1步所建的认证的名字) midlet_folder_name(你拷贝到MidletSigner所在目录的JAVA的文件夹的名称)” 命令
注:
对于 3.1、运行“makecert.bat MyCertificate“命令 和 4.3、运行“certify.bat MyCertificate midlet_folder_name” 命令 我已经写了两个bat文件,分别为GOMakeCert.bat(对应3.1操作)和GOCertify.bat(对应4.3操作),大家只要更改一下里面的路径信息以及DER文件的名字既可,我用的是MyCertificate。然后双击BAT文件就是执行相应的操作
对GOMakeCert.bat和GOCertify.bat做修改还是比较容易的,这里我给出例子方便没有经历过DOS时代的机油
在Windows下右键点击GOMakeCert.bat选择编辑会在记事本中看到一下内容”c:MidletSigner5makecert.bat MyCertificate”,其中”c:MidletSigner5″是你的MidletSigner5所在的路径,要根据你的MidletSigner5所在的路径做出相应的修改。”MyCertificate”是认证的名称,在这里可以修改成你喜欢的名称,但是注意:在这里如果修改的了认证的名称,在使用GOCertify.bat时也要做出相应的修改
接下来看GOCertify.bat,用相同的方法打开可以看到如下内容”certify.bat MyCertificate IdSoft24″,其中的”MyCertificate”是认证的名称,注意:如果在GOMakeCert.bat中你修改了认证的名称这里也要做相应的修改。”IdSoft24″项则是你拷贝到MidletSigner5文件夹中的JAVA的文件夹的名称,需要根据你所拷贝到MidletSigner5文件夹中的JAVA的文件夹的名称做出相应的修改
二、一些大家比较关心的问题
1、如何选择自己需要的免认证选项。
使用记事本打开certify.bat文件看到如下位置:
set FILE_READ=1 文件读取权限
set FILE_READ_X65=0 文件读取权限( x65 使用)
set FILE_WRITE=1 文件写入权限
set FILE_WRITE_X65=0 文件写入权限( x65 使用)
set INTERNET=1 GPRS 网络访问权限
set SMS=0 短信发送权限
set MMS_X65=0 彩信发送权限( x65 使用)
set COMM=1 * 不详,可能是手机接口使用权限
set BLUETOOTH=0 蓝牙使用权限
set PHONECALL=0 电话拨打权限
set PUSHREGISTRY=1 * 不详,也许是 push 信息什么的
set MEDIA=1 * 不详,也许是媒体管理器什么的或摄像头?
set MEDIA_X65=0 * 不详,也许是媒体管理器什么的或摄像头?( x65 使用)
set ADDRESSBOOK_READ=1 通讯录读取权限
set ADDRESSBOOK_WRITE=1 通讯录写入权限
set EVENTLIST_READ=1 * 不详,可能是重要记事之类的的读取权限
set EVENTLIST_WRITE=1 * 不详,可能是重要记事之类的的写入权限
对于不详的地方,是我不理解也没试过的选项(没那么全的Java让我试啊~~希望知道的机油说一下)。
因为x65和x75的权限指令部分有所不同所以也有x65使用的选项。
等于号后面的0和1即代表关闭和开启该项免认证。为1则java使用过程中不再出现该项的提示确认,直接默认允许。0为需要选择是否允许,也就是出现提示确认框。建议将SMS、PHONECALL等关乎Money的选项改为0,不然有些java随便发个短信(指使用手机功能发送短信与GPRS短信类软件无关,不要混淆了)、拨个电话都不会提示你了(那都是钱啊~!)
选择需要免认证的功能之后保存就可以了。而后就可以根据上面的方法进行免认证了。
2、对于部分免认证失败的软件。
如果你是通过手机下载的Java软件(点击jad下载的方式)的话,默认被下载的Java的jad文件会被添加诸如此类的一行:(图为Messenger的jad)
这种情况下使用MidletSigner5来认证就会出现如下错误:
解决方法很简单只要删除这被添加一行再保存就可以了。
对于部分Java,可以使用删除jad文件使用JADgen重新生成jad的方法进行免认证。
有时候,无论你使用什么方法都无法认证的情况下(包括以前可以成功免认证的Java软件也无法免认证),你可以试着删除MidletSigner5目录下的keystore.dat文件并重新拷贝原版manufacturer.sbp文件重新制作证书再进行免认证(如果证书名称和之前的相同,这个证书和manufacturer.sbp文件就不用再拷贝到手机了。对以前免认证过的和当前新免认证的Java都通用。但如果用了新的证书名称,则需要从新拷贝证书和修改后的manufacturer.sbp,以前认证过的也都要重新认证,否则无法使用)。
3、对于免认证成功但装入手机后启动失败的问题。
以Messenger3.2.0来说。用以上方法终于免认证成功,但装入手机后却:
太失望了…该怎么办?其实也很简单。
用记事本打开Messenger的jad文件,再用WinRAR打开jar文件下的META-INF下的MANIFEST.MF文件对比一下看出不同了吗??多了MIDlet-Certificate-1-1项和MIDlet-Jar-RSA-SHA1项??废话!这些就是免认证要用的!其实只要具体看看MIDlet-Permissions项就可以了,将MANIFEST.MF文件的MIDlet-Permissions这一项全部复制覆盖jad文件的MIDlet-Permissions项(可能jad的MIDlet-Permissions项会很长很长,注意一下不要少了也不要多了。)保存后就可以了
(MANIFEST.MF文件)
(messenger.jad文件)
这样就可以了,如图:
其实,Java启动失败都会有提示,注意观察就可以知道错在哪,而后进行修改。
MS5下载:midletsigner5
后叙:这是一篇很久以前在0110 上发过的文章,现在翻出来贴在自己什么都没有的博客上,虽然很久没玩西门子了单依旧感触颇多,一代王者的没落…曾经的辉煌曾经的SiemensMoblie
原创文章 转载请注明出处 Soilliu
本文地址:http://cms.xisix.com:8880/post-60.html
添加新评论