首页 > 其他分享 >通过网址或html生成一个简单apk

通过网址或html生成一个简单apk

时间:2025-01-04 13:11:01浏览次数:6  
标签:修改 代码 apk html apkEditor 复制 网址

GitHub - pzx521521/apk-editor

通过网址或html生成一个简单apk

之前发过一个使用apktool版本的,简单来说就是一个对apk反编译和编译的过程
相比使用apktool有以下优点:

  • [x] 没有环境依赖,完全不需要 jdk/jre
  • [x] 无需中间调用apktool,容易部署到服务器/docker

使用

pEpYK4s.png
Online Demo

修改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
    • 如果不需要修改代码的话是aapt2+zipflinger
    • aapt2会对一些资源做特殊处理,如AndroidManifest.xml会变为一个二进制文件,所以只使用zip是不行的
  • 签名apk
    • v1签名 jarsigner
    • v2签名 (Android11+) apksigner,
    • 必须先 zipalign 在 apksigner,否则会导致签名失效
    • 对于签名v1、v2、zipalign对齐的顺序是:v1----zipalign对齐----v2
  • zipalign对齐  
    • Android12+(API31+)必须的
    • 源码cpp

apktool 相当于把重新打包apk简化了,并多了解析dex文件

实现原理

由于并不需要修改dex中的东西
解压->修改->压缩->对齐->签名  

参考引用:

zipmerge
signv2

todo

  • [ ] 包名的修改
  • [ ] 图标修改
  • [ ] 桌面App(UI)
  • [ ] 对其他的app的修改

下载

github
windows

github
windows
macos

标签:修改,代码,apk,html,apkEditor,复制,网址
From: https://www.cnblogs.com/gnz48/p/18651797

相关文章