APK 解包及签名


以修改Settings.apk 为例
以 /home/a/apk 为工作目录

一 初始化
    1. 从  http://code.google.com/p/android-apktool/downloads/list   下载 apktool.jar 到工作目录

     2. 复制工程下文件到 工作目录
      out\host\linux-x86\bin\aapt
     out\host\linux-x86\framework\signapk.jar
      build\target\product\security\platform.pk8 
     build\target\product\security\platform.x509.pem
     out\target\product\rk30sdk\system\framework\framework-res.apk
     
     3.  临时将工作目录增加到 PATH 中
       export PATH=$PATH:/home/a/apk
     
      4.  安装系统资源
         java -jar  apktool.jar if  /home/a/apk/ framework-res.apk

三 解压包
      java -jar apktool.jar d Settings.apk  Settings
 
四 进行修改资源文件等操作


五 再打包
      java -jar apktool.jar b Settings Settings_u.apk

六 签名 (APK 中 AndroidManifest.xml  有 <manifest android:sharedUserId="android.uid.system" 才需要系统级别签名  )
     java  - jar  signapk.jar  platform .x509.pem    platform .pk8  Settings_u.apk   Settings_n.apk

     Settings_n.apk 为修改后的apk 改名 再放系统之中打包 就可以了。




apktool 下载地址:


apktool反编译工具使用详解


linux 解包
java -jar apktool.jar d Settings.apk  Setttings

再打包
java -jar apktool.jar b Settings Settings.apk


错误处理:
报 aapt 命令不能执行:
...could not exec command: [aapt, p  ...

需要 复制  out\host\linux-x86\bin\aapt

临时将当前目录增加到 PATH 中
 export PATH=$PATH:/home/fibo/apk 
不然 同样不能调用aapt

报告少资源
复制 out\target\product\rk30sdk\system\framework\framework-res.apk

使用以下代码进行安装

java -jar apktool.jar if framework-res.apk

apktool if tzframework-res.apk



签名命令:
java -jar signapk.jar platform.x509.pem  platform.pk8 update.apk update_signed.apk 

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


使用目标系统的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",文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。

build\target\product\security\platform.pk8 
build\target\product\security\platform.x509.pem


out\host\linux-x86\framework\signapk.jar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值