通过网址或html生成一个简单apk
之前发过一个使用apktool版本的,简单来说就是一个对apk反编译和编译的过程
相比使用apktool有以下优点:
- [x] 没有环境依赖,完全不需要 jdk/jre
- [x] 无需中间调用 apktool,容易部署到服务器/docker
使用截图

修改apk显示的网页
- 在线网址 复制代码 隐藏代码
./apkEditor -o="/Users/parapeng/Downloads/app-new.apk" https://www.example.com
- 指定输出路径 复制代码 隐藏代码
./apkEditor -o=demo.apk https://www.example.com
- 本地文件 仅一个index.html 复制代码 隐藏代码
apkEditor <yourpath>/index.html
- 本地文件夹 包含html+css+js 复制代码 隐藏代码
apkEditor <your-dir>
- 本地zip文件 包含html+css+js的zip文件 复制代码 隐藏代码
apkEditor <your-dir>/demo.zip
修改其他信息
在修改显示的网页的基础上添加
- label
对应application.label
用于显示软件名 - versionCode
对应manifest.android:versionCode
版本号用于更新软件 - versionName
对应manifest.android:versionName
用于显示软件版本号 - package
~~对应manifest.android:package
软件包名~~
修改这个要改的东西太多了,请使用apktool - 生成默认的webview并修改信息 复制代码 隐藏代码
./apkEditor -versionCode=222 -versionName="2.2.2" -label="NewApp" -o="/Users/parapeng/Downloads/app-new.apk" https://www.example.com
原理
反编译apk正常的流程是:
- 解压apk :
unzip origin.apk -d origin/
- 修改文件:
echo "1234" > /tmp/cpid cp /tmp/cpid origin/
- 重新打包apk:aapt2+aidl+Renderscript+Javac+DEX+zipflinger
- 签名apk
- v1签名 jarsigner
- v2签名 (Android11+) apksigner,
- 必须先 zipalign 在 apksigner,否则会导致签名失效
- 对于签名v1、v2、zipalign对齐的顺序是:v1----zipalign对齐----v2
- zipalign对齐
Apktool 相当于把重新打包apk
简化了,并多了解析dex文件
实现原理
- 由于并不需要修改dex中的东西
- 解压->修改->压缩->对齐->签名
下载地址
Online Demo(支持作者:https://www.52pojie.cn/thread-1996856-1-1.html)
暂无评论内容