Android系统应用静默升级/安装
2014-08-10 14:58
281 查看
第一步,配置AndroidManifest.xml文件。
首先,加入:android:sharedUserId="android.uid.system"
通过shareUserId,拥有同一个User id的多个APK就可以配置成运行在同一个进程中,那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就可以拥有系统权限。
升级要记得版本号要比旧版本大!
然后,配置应用需要的权限:
顺便说一句,笔者做的这个应用是直接烧入到ROM的,所以是系统应用。
如果通过root,或者是其他方法,只要你的应用是安装在系统根目录system/app/就OK。
第二步:编写安装代码。
我是通过Android的pm命令来安装的。代码如下:
这个方法不单单可以自己更新,也可以以静默的形式,安装其他的应用。
第三步:签名。
完成以上步骤后编译出来的apk文件是不能使用的,这个签名是编译器默认的Debug签名,而不是系统签名。Android系统有的权限是基于签名的,签名不对,也就不能获取相应的权限。那么怎样获取系统签名呢?
1、找到目标系统的源代码,进入build/target/product/security ,找到platform.pk8和platform.x509.pem这两个文件,这是系统默认使用的密钥。
2、已经有密钥了,现在需要签名的工具:signapk.jar文件。signapk.jar的源码位置build/tools/signapk,你可以自己编译成jar文件。或者你如果懒得做,还可以直接在目录中搜索“signapk.jar”,反正我就是这么找到的。。。
3、最好将这几个文件和未签名的apk文件放在一个目录,然后执行命令: java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk。
这条命令的意思是:通过signapk.jar签名工具,以“platform.x509.pem”这个公钥文件和“platform.pk8”这个私钥文件对“old.apk”进行签名,签名后的文件保存为“new.apk”。搞定!
首先,加入:android:sharedUserId="android.uid.system"
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xxxxxx" android:sharedUserId="android.uid.system" android:versionCode="1" android:versionName="1.0" >
通过shareUserId,拥有同一个User id的多个APK就可以配置成运行在同一个进程中,那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就可以拥有系统权限。
升级要记得版本号要比旧版本大!
然后,配置应用需要的权限:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.DELETE_PACKAGES" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />会提醒:“Permission is only granted to system apps”的错误,意思是“权限只对系统应用授权”,不用担心,只需要project->clean,点击确定提醒就消失了。
顺便说一句,笔者做的这个应用是直接烧入到ROM的,所以是系统应用。
如果通过root,或者是其他方法,只要你的应用是安装在系统根目录system/app/就OK。
第二步:编写安装代码。
我是通过Android的pm命令来安装的。代码如下:
这个方法不单单可以自己更新,也可以以静默的形式,安装其他的应用。
第三步:签名。
完成以上步骤后编译出来的apk文件是不能使用的,这个签名是编译器默认的Debug签名,而不是系统签名。Android系统有的权限是基于签名的,签名不对,也就不能获取相应的权限。那么怎样获取系统签名呢?
1、找到目标系统的源代码,进入build/target/product/security ,找到platform.pk8和platform.x509.pem这两个文件,这是系统默认使用的密钥。
2、已经有密钥了,现在需要签名的工具:signapk.jar文件。signapk.jar的源码位置build/tools/signapk,你可以自己编译成jar文件。或者你如果懒得做,还可以直接在目录中搜索“signapk.jar”,反正我就是这么找到的。。。
3、最好将这几个文件和未签名的apk文件放在一个目录,然后执行命令: java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk。
这条命令的意思是:通过signapk.jar签名工具,以“platform.x509.pem”这个公钥文件和“platform.pk8”这个私钥文件对“old.apk”进行签名,签名后的文件保存为“new.apk”。搞定!
相关文章推荐
- Android系统应用静默升级/安装
- android系统级应用静默升级及注意事项
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- [Android实例] android应用静默升级,安装完成后自动启动该应用
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- android系统级应用静默升级及注意事项
- android重新安装系统应用
- Android应用获得root权限,静默后台安装与卸载 批量安装与卸载
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- android应用后台安装,静默安装的代码实现方法
- android 过滤掉系统 安装的应用
- Android软件包静默安装小应用- 附源码
- android应用后台安装,静默安装的代码实现方法
- Android区分系统应用和安装应用
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- android 应用升级 下载安装包 完成后 自动安装apk文件
- 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序