如何安装系统认证签名过的APK

如果你的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了。

时间: 2024-10-26 13:49:45

如何安装系统认证签名过的APK的相关文章

RHCE7认证学习笔记17——KickStart安装系统

一.自动化安装系统工具 1.Cobbler    另一个自动化安装工具: 2.Kickstart 二.使用kickstart自动化安装系统 服务器安装的软件: 1.dhcp服务   [[email protected] ~]# yum install dhcp -y dhcpd的配置文件:  1 subnet 192.168.10.0 netmask 255.255.255.0 {   2  range 192.168.10.100 192.168.10.120;   3  option dom

解决重装Mac系统时“安装器有效负载签名检查失败”的错误

昨天通过U盘重装MacOS 10.12系统时,在最后将要安装完成时,报错"安装器有效负载签名检查失败",进行第二次安装也是同样报错,如下: 查阅资料得知是当前系统时间和显示时间不同步所致,所以修改为当前正确的时间即可解决. 通过如下方式修改时间: 语法:date  MMDDHHmmYY.SS 如:date  110910032017.50 表示修改时间为2017年11月09日,10点03分50秒: 注:修改的时间和当前实际时间相差不应超过1分钟. 以上修改完毕后,退出终端,再进行重新安

Gradle实现自动打包,签名,自定义apk文件名

Gradle实现自动打包,签名,自定义apk文件名 什么是签名,签名有什么用 Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行时到手机上时,是AS会自动用默认的密钥和证书来进行签名:但是我们实际发布编译时,则不会自动签名,这个时候我们就需要进行手动签名了!为我们的APK签名有以下好处: 1.应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名.这是由于只有以同一个证书签名,系统才会允许安装升级的应

kickstart安装系统原理详解

前言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有什么? 光盘安装系统===>一个服务器DVD内置光驱百千块,百台服务器都配光驱就浪费了,因为一台服务器也就开始装系统能用的上,以后用的机会屈指可数.用USB外置光驱,插来插去也醉了. U盘安装系统===>还是同样的问题,要一台一台服务器插U盘. 网络安装系统(ftp,http,nfs) ===>这个方法不错,只要服务器能联网就可以装系统了

Android手机出现"已安装了存在签名冲突的同名数据包"的原因及解决办法

http://blog.csdn.net/dyllove98/article/details/8830264 如果你不是开发者:如果你在android上更新一个已经安装过较早版本软件时,安装到最后一步提示你:已安装了存在签名冲突的同名数据包,然后安装失败.这是因为旧版软件的签名信息与新版不一致造成的.你可以卸载这个软件,然后安装新版软件. 如果无法卸载,可能手机(pad)在发售前将该软件内置在手机中无法卸载.如果是这个原因的话,你可以尝试“root”系统,然后卸载掉该软件的旧版本,然后安装. 如

linux命令:kickstart 无人值守安装系统

kickstart:分三部分 命令段: 必备命令:1.指定键盘类型 2.指定语言: lang=ZH_CN 3.指定时区: timezone Asia/Shanghai 4.指定管理员密码: rootpw --iscrpted 指定加密管理员密码 5.selinux --disabled|--permissive 建议selinux --permissive 6.指定认证方式: authconfig --usershadow  7.装载引导加载器bootloader --location 8.指定

根据SIM卡安装系统应用

根据SIM卡安装系统应用 功能: 1:如何安装系统应用,apk放在system/app系统分区下面. 2:根据SIM卡的归属国家选择性的安装应用. 一:本人使用方法: 在开机的服务里面添加接口(PackageManagerService.java),检测到SIM卡的信息调用该接口. 下面是具体的方法: 系统服务PackageManager服务调用的是aidl接口,所以添加接口要添加两个地方,一个是IpackageManager.aidl,还有一个是PackageManagerService.ja

导出已安装到手机中程序的apk文件

查看该手机所有安装包的包名, 输入adb shell pm list packages 找到你要导出的包名 获取该安装apk的路径, 输入adb shell pm path com.pfoc.myacurite 得到包所在路径: 导出文件, adb pull /data/app/com.pfoc.myacurite-1/base.apk /Users/myuser/Downloads 扩展一下pm命令:pm 命令是Android里面packageManage的命令行,用于安装包的操作.使用pm命

Cobbler实现无人值守安装系统

防伪码:没有相当程度的孤独是不可能有内心的平和. 1.概述 本文部分图片源自网络,侵删. 1.1 介绍 官网地址 http://cobbler.github.io/ 官网介绍:Cobbleris a Linux installation server that allows for rapid setup of networkinstallation environments. It glues together and automates many associatedLinux tasks