今天拿到VeriSign的签名,使用过程中碰到几个问题
1 备份和导入签名数据,密钥备份就是保存C:\Documents and Settings\登陆用户\j2mewtk\2.5.2\appdb目录下的keystore.ks,还原同样也是很简单,覆盖掉这个文件即可,而不是在签署工具中导入,这是我一开始就误解的,弄了老半天,大概文档的作者以为这是很明白的道理,不屑于说吧。
2 签名的步骤很重要,一开始我直接签eclipse项目下的jad,提示没有对应的jar文件,于是签到.eclipseme.tmp\emulation下的打包文件,再把jad覆盖回来项目,这样打包的程序在安装后提示“证书错误,请与程序提供商联系”。正确的方法是打包(混淆)后直接给打包好的jad签名,项目有修改的话发布时都需要重新签名。
3 签了名和未签名的Midlet有很大的不同,不是签了名就有所有权限的,而是需要在MIDlet-Permissions写明你有的权限,否则签名之后你连提示都没有,直接就不给你调用,这个好像也是没有在书或者教程上提到的。要了解需要授权的Midlet权限可以打开Wireless toolkit,打开一个项目,选择设置按钮,选择“权限”,点填加。
为了简化用户管理操作, MIDlet 把一些类似功能分组,这样,用户只需对功能组设置许可即可。如:
许可 “Net Access”( 网络访问 ) 组来代替许可 javax.microedition.io.Connector.http ,这对于简化
手机的交互操作非常有用。
MIDP 2.0 和 JTWI 定义了如下 7 个功能组:
(1) Net Access: 包括所有网络连接许可;
(2) Messaging: 包括所有与发送和接收短消息 ( 短信和彩信 等 ) 相关的许可;
(3) Auto Invocation : 包括与自动启动 MIDlet 相关的许可,如: Push Registration
(4) Local Connectivity : 包括与本地连接相关的许可,如: IrDA 或 蓝牙;
(5) Multimedia Recording : 包括与允许录音、照相、摄像等相关的许可;
(6) Read User Data : 包括读取用户数据相关的许可,如:通讯录、日程表等;
(7) Write User Data : 包括写用户数据相关的许可。
untrusted 的 MIDlets 只能调用一个不需要许可保护的 API ,如:
java.util
java.lang
java.io
javax.microedition.rms
javax.microedition.midlet
javax.microedition.lcdui
javax.microedition.lcdui.game
javax.microedition.media
javax.microedition.media.control
4 VeriSign申请中使用的公司名称必须是英文名,而Thawte可是使用中文名,不知道卖签名的公司会不会因为怕麻烦忽悠我,不过安装时显示的公司名是在jad中填写的,这似乎没有太大的影响。
引用:MIDP2.0安全机制与MIDlet数字签名
关于签名的效果(就不开另外的帖子了):
1 Nokia S60的机子上不签名无法使用https协议,签名后才可以,其他手机上未发现这个情况,测试的S40手机无法支持Https协议,而且本身不支持个人证书导入。(未签名前会崩溃报空指针错,签名后可以,但如果地址写错也会报空指针,注意到S60的符号键盘里面就有两个冒号,一个是全角的--c它大爷的,浪费我好多时间)
2 (据说只有部分)S60机上不用签名就可以获得串号,S40则需要签名,而且部分s40的机器签名也不能获取串号,mobile签了名也无法获取串号。
3 S60上签名对sms-push和写文件都有效,而mobile测试结果对sms-push无效,奇怪的是安装的时候如果以前版本不删除会提示资源被占用(就是sm port),无法安装。
4 在se610c上测试发现签名的包无法安装,询问销售商的结果是部分手机不支持java签名证书,只支持server签名证书,也就是说购买的签名在这些手机上无法安装,会报告“安装错误”
分享到:
相关推荐
在J2ME备忘录应用中: 1. **模型(Model)**:负责处理数据和业务逻辑。在这个案例中,模型可能包括对RMS(Record Management System)的访问,用于存储备忘录内容和元数据,如创建日期、修改日期等。 2. **视图...
【基于J2ME的手机备忘录源码】是一个典型的移动应用开发项目,它使用Java Micro Edition (J2ME) 技术实现了一个简单的备忘录功能。J2ME是Java平台的一个子集,用于开发在资源有限的设备上运行的应用程序,如早期的...
本程序实现了在J2ME中的备忘录的增加记录、删除记录、修改记录以及查询记录的功能。
在本文中,我们将深入探讨基于J2ME的RMS(Record Management System)记录管理系统,特别关注如何在S60及更高版本的移动设备上实现一个备忘录应用。这个系统对于初学者来说是一个很好的学习资源,因为它展示了如何...
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...
j2me数字签名入门文档(欢迎交流)
- **证书签名**:应用通常需要被合法签名才能在设备上安装和运行,签名过程验证开发者身份并确保代码完整性。 8. **性能优化** - **代码尺寸优化**:由于资源有限,J2ME开发者需要关注代码的大小和效率,利用...
《J2ME飞机游戏开发详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为移动设备、嵌入式系统等资源有限的环境设计。本篇文章将深入探讨如何利用J2ME技术开发一款简单的飞机游戏,以此帮助初学者理解...
在J2ME(Java 2 Micro Edition)平台上开发游戏时,地图的设计与绘制是至关重要的一个环节。J2ME作为一种轻量级的Java平台,广泛应用于移动设备,如早期的智能手机和平板电脑,用于实现各种应用程序,特别是游戏。本...
10. **应用发布与签名**:J2ME应用发布前需要进行数字签名,以确保安全性和防止恶意篡改。开发者需要了解如何获取并使用数字证书进行应用签名。 通过"j2me例子大全"中的各种示例,开发者可以深入学习J2ME的各个方面...
**J2ME中文版教程——全面解读移动设备编程** J2ME(Java 2 Micro Edition)是Java平台的一个重要组成部分,专为嵌入式设备、移动电话和其他资源有限的设备设计。这个J2ME中文版教程是针对初学者和有一定经验的...
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
j2me 开发框架介绍 j2me 是一种用于开发无线应用程序的平台,它提供了一个灵活、强大和开放的开发环境。随着 j2me 的普及,出现了许多开源框架,旨在简化开发过程,提高开发效率。下面将介绍这些框架,並分析它们的...
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
**J2ME教材:J2ME&Gaming中文版** J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、智能手表等。这个“J2ME&Gaming中文版”教材主要针对的是Java在游戏开发领域的...
Java 2 Micro Edition (J2ME) 是一种Java平台,专为嵌入式设备和移动设备,特别是手机设计。在2000年代初期,J2ME是许多非智能手机上实现互联网浏览的主要技术,其中“j2me手机浏览器”就是这样一个应用。这个应用...
Java 2 Micro Edition(J2ME)是一种针对嵌入式设备和移动设备的Java平台,主要用于开发手机游戏、应用程序和服务。"j2me游戏.rar"很可能是包含了一系列使用J2ME技术开发的游戏资源包。在本文中,我们将深入探讨J2ME...