工具
- signapk.jar
//其代码位于安卓源码目录下的/build/tools/signapk/SignApk.java文件中。经编译后,可以在/out//host/linux-x86/framework目录下找到 - testkey.x509.pem
//安卓源码中提供的签名文件,位于build/target/product/security目录下 - testkey.pk8
- //安卓源码中提供的签名文件,位于build/target/product/security目录下
操作方法
- 将以上三个文件复制到同一目录下。如 C:\Android\signapk 目录下
- 将 C:\Android\signapk 添加到path环境变量中去
- 在C:\Android\signapk目录下编写一个批处理脚本signapk.bat,可以方便地使用signapk.jar。批处理脚本内容如下:
cd C:\Android\signapk
java -jar signapk.jar testkey.x509.pem testkey.pk8 %1 new_apk_signed.apk
- 将要签名的文件(如crackme.apk)放到 C:\Android\signapk 目录下
- 打开DOS窗口,执行命令
signapk crackme.apk
或者
signapk.bat crackme.apk
- 在 C:\Android\signapk 目录下将会生成一个新的文件new_apk_signed.apk,这个文件就是已经签名完成的APK文件。
注意
如果是使用rar对反编译的APK文件进行压缩,则会报错找不到ZIP文件。如下:
java.io.FileNotFoundException: crackme.apk (系统找不到指定的文件。)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at com.android.signapk.SignApk.main(SignApk.java:320)
务必使用Win-zip进行压缩