Android 对APK进行系统签名

第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:

   1. 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。
   2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
   3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。

第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:

   1. 同上,加android:sharedUserId="android.uid.system"这个属性。
   2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
   3. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,首先找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。然后用Android提供的Signapk工具来签名,signapk的源代码是在"build\tools\signapk"下,用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。

1 创建一个目录

2 整理必须的文件:

密钥文件:进入build/target/product/security ,找到【platform.pk8】和【platform.x509.pem】系统默认使用的密钥。

signapk工具:进入build\tools\signapk找到SignApk.java,运行 javac或者直接mm编译。

signapk.jar的源码位置build/tools/signapk,编译以后生成的文件路径:out/host/linux-x86/framework/signapk.jar

3.执行命令: java -jar signapk.jar platform.x509.pem platform.pk8 your.apk your_signed.apk

这条命令的意义是:通过signapk.jar这个可执行jar包,以“platform.x509.pem”这个公钥文件和“platform.pk8”这个私钥文件对“your.apk”进行签名,签名后的文件保存为“your_signed.apk”。

最后解释一下原理,首先加入android:sharedUserId=”android.uid.system”这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。

时间: 2024-11-09 18:00:51

Android 对APK进行系统签名的相关文章

Android实践 -- 对apk进行系统签名

对apk进行系统签名 签名工具 网盘下载 ,需要Android系统的签名的文件 platform.x509.pem 和 platform.pk8 这个两个文件在Android源码中的 ./build/target/product/security 目录下 具体的使用方法: java -jar signapk.jar platform.x509.pem platform.pk8 unsign.apk signed.apk 最后生成的apk就是已经进行系统签名的apk

给第三方apk进行系统签名的几种方式

---------------------------------------------------------------------------- 此文章仅作为学习交流所用 转载或引用请务必注明原文地址: http://blog.csdn.net/luzhenrong45/article/details/47733053 或联系作者:[email protected] 谢谢! ---------------------------------------------------------

给第三方apk进行系统签名的几种方式【转】

本文转载自:http://blog.csdn.net/luzhenrong45/article/details/47733053 版权声明:本文为博主原创文章,未经博主允许不得转载. ---------------------------------------------------------------------------- 此文章仅作为学习交流所用转载或引用请务必注明原文地址:http://blog.csdn.net/luzhenrong45/article/details/4773

android集成apk到系统中常遇到的一些问题

1.集成的APK必须确认是否为release版本,否则会导致CTS测试失败. 处理方法:反编译apk,查看manifest.xml文件,看<application>中是否有debug属性:android:debuggable. 值为true,就是debug版本.值为false或者未设置,就是release版本 2.集成的APK,不可更改其签名,否则会造成该APK应用升级时出现签名冲突的问题 3.集成的APK,签名不可为android的默认签名:[email protected].否则会导致CT

Android应用程序如何进行系统签名

有时写一个程序需要调用系统的库,如果权限不够,是用不了库里面一些方法的 .这时就需要将apk进行系统签名了. 简单常用的方法: 1,在apk的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system" 2,运行或打包得到apk 3,使用目标系统的platform密钥来给apk文件签名: 在系统android\build\target\product\security目录下找到platform.x

有的系统区apk需要对其系统签名,才能正常使用。

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 向方案公司索要platform.x509.pem 和platform.pk8这两个文件.然后用signapk 对apk 进行系统签名=====signapk platform.x509.pem platform.pk8 input.apk output.apk java -jar signapk.jar platform.x509.pem platform.pk8 input.apk

Android : apk系统签名的多种方法

方法一:使用自己的Android签名工具给apk重新签名: (1)该目录下有 media.pk8.media.x509.pem.platform.pk8.platform.x509.pem.shared.pk8.shared.x509.pem.testkey.pk8.testkey.x509.pem等签名文件,不同的签名文件,对应不同的权限.Android默认的签名文件为testkey.pk8.testkey.x509.pem. (2) Android自带的签名工具为 signapk.jar,

Android APP使用系统签名

Android M平台在写APP测试使用MediaRecoder通过AudioSource.VOICE_CALL来录制通话上下行音的时候,需要权限 <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses

Android 发布Apk签名

1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装). 2.签名的步骤 a.创建key b.使用步骤a中产生的key对apk签名 3.具体操作 方法一: 命令行下对apk签名(原理) 创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对a