Android开发系统应用(一)
2015-02-04 14:50
204 查看
修改Android系统APK(DownloadProvider)完成后, 运行报错:
[2012-05-07 19:45:54 - DownloadProviderUI] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
[2012-05-07 19:45:54 - DownloadProviderUI] Please check logcat output for more details.
[2012-05-07 19:45:54 - DownloadProviderUI] Launch canceled!
到网上搜索验证后, 发现在 AndroidManifest.xml的头文件中多了这个属性"android:sharedUserId="android.media" , 网上 , 有人说只要把这个属性删除就行了. 删除这个属性确实能够安装成功, 但是运行会报错. 然后继续搜索, 发现要想成功安装该apk, 必须对其进行签名.
以下是签名步骤:
1、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
2、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。
首先,找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。
然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下,这时得为下面的编译工作做些准备:
<1>、编译jar
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s\com\android\signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s\ .
注意:"s\"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
<2>、用目标系统的platform密钥签名
将platform.pk8和platform.x509.pem文件(注意: 这两个文件根据AndroidManifest.xml头文件属性android:sharedUserId="android.media"来决定使用哪个签名.)复制到"D:\myandroid_mx27\build\tools\signapk"目录下,即signapk.jar和SignApk.mf所在的目录。
java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\ClockSettingSigned.apk
我的未签名(ClockSetting.apk)和已签名(ClockSettingSigned.apk)apk文件都放在D盘,这样就得到了用Android源码编译的文件。
系统签名部分转载网友: elao520 的文章(详情: http://www.eoeandroid.com/thread-46074-1-1.html)
转载自:/article/1971905.html
[2012-05-07 19:45:54 - DownloadProviderUI] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
[2012-05-07 19:45:54 - DownloadProviderUI] Please check logcat output for more details.
[2012-05-07 19:45:54 - DownloadProviderUI] Launch canceled!
到网上搜索验证后, 发现在 AndroidManifest.xml的头文件中多了这个属性"android:sharedUserId="android.media" , 网上 , 有人说只要把这个属性删除就行了. 删除这个属性确实能够安装成功, 但是运行会报错. 然后继续搜索, 发现要想成功安装该apk, 必须对其进行签名.
以下是签名步骤:
1、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
2、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。
首先,找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。
然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下,这时得为下面的编译工作做些准备:
<1>、编译jar
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s\com\android\signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s\ .
注意:"s\"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
<2>、用目标系统的platform密钥签名
将platform.pk8和platform.x509.pem文件(注意: 这两个文件根据AndroidManifest.xml头文件属性android:sharedUserId="android.media"来决定使用哪个签名.)复制到"D:\myandroid_mx27\build\tools\signapk"目录下,即signapk.jar和SignApk.mf所在的目录。
java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\ClockSettingSigned.apk
我的未签名(ClockSetting.apk)和已签名(ClockSettingSigned.apk)apk文件都放在D盘,这样就得到了用Android源码编译的文件。
系统签名部分转载网友: elao520 的文章(详情: http://www.eoeandroid.com/thread-46074-1-1.html)
转载自:/article/1971905.html
相关文章推荐
- Android应用开发——系统自带样式Android:theme
- 做Android 系统/应用开发怎么可以不懂自动化测试
- Android系统的应用开发与运行环境构建
- Android 应用开发笔记 - Android的系统构架
- 一步一步的学习android应用开发到系统底层开发之android开发层次及所需技术
- Android应用开发——系统自带样式Android:theme
- 做Android 系统/应用开发怎么可以不懂自动化测试
- Android 开发之系统应用Launcher详解,简单添加和删除快捷方式及常见问题
- 一步一步的学习android应用开发到系统底层开发之android数据解析JSON篇
- Android 应用开发笔记 - Android的系统构架
- Android应用开发——系统自带样式Android:theme
- WindRiver开发出Android系统多应用窗口显示
- Android应用开发——系统自带样式Android:theme
- Eclipse中开发Android系统的内置应用
- 在Eclipse+ADT中开发Android系统的内置应用
- 做Android 系统/应用开发怎么可以不懂自动化测试
- 做Android 系统/应用开发怎么可以不懂自动化测试
- Android开发--在应用中调用系统的“应用程序信息(Application Info)”界面
- Android应用开发——系统自带样式Android:theme
- Android应用开发——系统自带样式Android:theme