apk提取
使用场景
已安装应用,但是原有的apk已删除或无法找到,这时可以通过apk提取工具在已安装应用的手机上提取出原有的apk文件。
推荐应用
图标 | App 名称 | App 提供功能路径 | 特色功能 |
---|---|---|---|
apk 提取(免费) |
点击需要提取的 app,在弹出的页面中选择【提取 apk】或【发送 apk】 | 【发送 apk】功能可以把【提取】和【发送】2个步骤结合,直接一步到位 | |
实用工具箱(免费) |
设备工具 - 应用管理 - 点击需要提取的应用 - 选择【提取安装包】 | 除了提取 apk,还集成了许多其他功能,是功能强大的综合应用。 | |
开发助手(收费) | 应用相关-Apk提取 | 可以直接在手机反编译,但是该功能目前比较鸡肋,反编译的无法回编译,属于半成品 |
apk反编译、回编译与签名
主要参考文献1,工具也是由文献1提供。该工具可以通过csdn下载,不过需要下载积分,已经下载一份并备份至百度云。
以下内容在文献1中都有,这里主要是做一些简化。以修改其中某个按钮的链接为例(将链接改为本地的网址链接,方便调试),不涉及功能实现或大的修改。
apk反编译
解压工具后,有3个文件夹,将待反编译的apk放在Apktool文件夹中。
点击cmd.bat,在打开的cmd窗口中输入 apktool -f [待反编译的 apk] -o [反编译之后存放文件夹]
apktool.bat d -f test.apk -o test
生成的文件夹就是反编译后的文件夹,如这里就是test文件夹
apk回编译
使用vscode打开test,全局搜索到需要替换的链接,全部改掉以后开始回编译。
再次打开上面的cmd.bat文件,输入 apktool.bat b [反编译之后存放的文件夹]
apktool.bat b test
在反编译之后存放的文件夹中,如test文件夹,可以看到生成了dist文件夹,dist中就是编译后的apk文件,但是这里面的apk还不能直接安装。
签名
将上面dist中生成的待签名的apk放到这个文件夹下,在该目录下运行cmd,输入 java -jar signapk.jar testkey.x509.pem testkey.pk8 [待签名的apk] [签名的apk文件名]
java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk
最后拿到生成的签名后的apk,即可在android上安装。