如何安装系统认证签名过的APK
2015-05-13 18:33
190 查看
如果你的App因为权限原因需要设置 android:sharedUserId="android.uid.system" 那么IDE编译出的包通常是无法直接安装的,查看控制台会发现报 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误。这是必须的,随随便便一个App声明一下就可以和系统用户共享ID,岂不乱套了?
解决方法有如下两种:
第一种
如果你 repo sync 了 android 的整个源码,那么可以直接把你的 app 放到 /packages/apps 下面去 mm ,不过要记得在 Android.mk 中增加 LOCAL_CERTIFICATE 属性,这个属性具体有三个值:
系统中所有使用 android.uid.system 作为共享 UID 的 APK ,都会首先在 manifest 节点中增加android:sharedUserId=“android.uid.system”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := platform。可以参见 Settings 等
系统中所有使用android.uid.shared作为共享 UID 的 APK,都会在 manifest 节点中增加android:sharedUserId=“android.uid.shared”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := shared。可以参见 Launcher 等
系统中所有使用 android.media 作为共享 UID 的 APK,都会在 manifest 节点中增加android:sharedUserId=“android.media”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := media。可以参见 Gallery 等。
第二种
当然,毕竟不是每个人都有机会,或者有必要下载整个源码的。 简单地,当你用 IDE 编出 apk 之后,可以去 /build/tools/signapk/ 找到 signapk.jar 文件;再去 /build/target/product/security/ 里找到 platform.pk8 、 platform.x509.pem 这两个文件。把它们连同你的 apk 扔进一个文件夹,然后 cd 到该文件夹下执行 java -jar signapk.jar platform.x509.pem platform.pk8 Origin.apk Signed.apk,得到的 Signed.apk 就可以直接 adb install了。
解决方法有如下两种:
第一种
如果你 repo sync 了 android 的整个源码,那么可以直接把你的 app 放到 /packages/apps 下面去 mm ,不过要记得在 Android.mk 中增加 LOCAL_CERTIFICATE 属性,这个属性具体有三个值:
系统中所有使用 android.uid.system 作为共享 UID 的 APK ,都会首先在 manifest 节点中增加android:sharedUserId=“android.uid.system”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := platform。可以参见 Settings 等
系统中所有使用android.uid.shared作为共享 UID 的 APK,都会在 manifest 节点中增加android:sharedUserId=“android.uid.shared”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := shared。可以参见 Launcher 等
系统中所有使用 android.media 作为共享 UID 的 APK,都会在 manifest 节点中增加android:sharedUserId=“android.media”,然后在 Android.mk 中增加 LOCAL_CERTIFICATE := media。可以参见 Gallery 等。
第二种
当然,毕竟不是每个人都有机会,或者有必要下载整个源码的。 简单地,当你用 IDE 编出 apk 之后,可以去 /build/tools/signapk/ 找到 signapk.jar 文件;再去 /build/target/product/security/ 里找到 platform.pk8 、 platform.x509.pem 这两个文件。把它们连同你的 apk 扔进一个文件夹,然后 cd 到该文件夹下执行 java -jar signapk.jar platform.x509.pem platform.pk8 Origin.apk Signed.apk,得到的 Signed.apk 就可以直接 adb install了。
相关文章推荐
- 如何安装系统认证签名过的APK
- 如何安装系统认证签名过的APK
- adb install -r 安装应用 报错[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] 和 如何给APK 系统签名
- 如何在Android7.0系统下通过Intent安装apk
- 在android中如何调用系统的程序安装器来安装apk
- 如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android 如何读取未安装的APK 签名信息
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android 应用程序(APK) 如何获得系统签名权限 强制关闭程序(后台进程)
- Android 应用程序(APK) 如何获得系统签名权限 强制关闭程序(后台进程)
- 如何获取未安装的APK的签名
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android 源码编译的系统apk如何安装到手机
- 如何对自己的App进行系统签名,并安装到手机运行
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- 如何在Android7.0系统下通过Intent安装apk
- 如何在Android7.0系统下通过Intent安装apk
- 如何在Android7.0系统下通过Intent安装apk
- 如何利用Eclipse工具打包签名AndroidApk文件
- 如何禁用驱动程序签名认证