【Android源码 栏目提醒】:网学会员为广大网友收集整理了,Android android uid shared MK编译或eclipse编译后签名 - 讲义教程,希望对大家有所帮助!
在windows平台通过eclipse编译
android源码中如果编译Settings或者android manifest XML中 shared user id 包含android.uid.shared等系统权限的时候则会报以下错误。
Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE INSTALL_FAILED_UPDATE_INCOMPATIBLE 1、由于卸载没有完全可以使用设置中卸载相应应用或者adb uninstall com.android. INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 主要是由于使用了android.uid.shared导致的问题。
解决方案如下 第一个方法简单点不过需要在Android系统源码的环境下用make来编译 1. 修改Android.mk文件加入LOCAL_CERTIFICATE : platform这一行 2. 使用mm命令来编译生成的apk就可以在模拟器中运行了。
第二个方法麻烦点不过不用开虚拟机跑到源码环境下用make来编译 1. 使用eclipse编译出apk文件但是这个apk文件是不能用的。
2. 查看Android.mk文件加入LOCAL_CERTIFICATE : 这一行根据这行的内容选择相应的签名。
platform-----platform.pk8和platform.x509.pem shared -----shared.pk8和shared.x509.pem 3. 使用目标系统的platform密钥来重新给apk文件签名。
这步比较麻烦 首先找到密钥文件在我的
Android源码目录中的位置 是buildtargetproductsecurity下面的platform.pk8和platform.x509.pem 两个文件。
然后用Android提供的Signapk工具来签名signapk的源代码是 在buildtoolssignapk下 用法为java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk 文件名最好使用绝对路径防止找不到也可以修改源代码直接使用。
4.其他的APPS应用也是按照该方法可以正常运行 不过这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用因为这样的系统才可以拿到platform.pk8和 platform.x509.pem两个文件。
要是别家公司做的Android上连安装都安装不了。
试试原始的Android中的key来签名程序在模拟器上运行OK不过放到G3上安装直接提示Package ... has no signatures that match those in shared user android.uid.system这样也是保护了系统的安全。
最最后还说下这个android:sharedUserId属性不只可以把apk放到系统进程中也可以配置多个APK运行在一个进程中这样可以共享数据应该会很有用的。
上一篇:
基于Android操作系统的GPS无线定位系统设计
下一篇:
7*30m公路预应力混凝土连续梁桥上部结构设计