反编译不能debug的apk并签名

将一个不可调试的APK转化成可调式的APK,

需要的工具和环境

jdk

apktool

android studio

apksigner

需要以下步骤

1.反编译APK

使用工具apktool来反编译

1.1 APKTOOL下载

下载Windows 包装器脚本(右键单击,将链接另存为apktool.bat

下载apktool.jar, 链接:iBotPeaches / Apktool / Downloads — Bitbucket

下载完之后放在一个文件夹下,并将下载的带有版本号的.jar文件重命名为apktool.jar,因为bat脚本中也可以看到是用apktool.jar文件去处理

1.2 将该文件夹的路径加入系统环境变量

cmd检查是否成功添加

ps:安装这个工具之前要先安装jdk

1.3 反编译

apktool d your_app.apk

2.修改反编译文件夹中的AndroidManifest.xml文件

可以使用android studio打开apk文件,找到AndroidManifest.xml,添加android:debuggable="true"<application>标签中。

<application
    android:debuggable="true"
    ... >
    ...
</application>

3.重新打包APK

使用apktool将反编译后的 APK 重新构建并生成新的 APK 文件。

C:\Users\zhangxinyu>apktool b "D:\debug_apk" -o qiuqiu_debug.apk

其中 "D:\debug_apk" 是你反编译后得到的文件夹路径,qiuqiu_debug.apk 是你输出的新 APK 文件名称。

执行成功之后, qiuqiu_debug.apk 会保存在 C:\Users\zhangxinyu你的当前 目录中

但是,此时还不能下载这个apk,会报错没有签名

4.签名APK

这里使用apksigner

需要先安装android studio,并检查apksigner 是否包含在 Android SDK Tools 中,可通过 android studio 中 Tools -> Android -> SDK Manager -> SDK Tools 查看是否安装。
安装了 SDK Tools 后并配置两个环境变量D:\AndroidStudioSDK\platform-tools,D:\AndroidStudioSDK\build-tools\35.0.0

4.1 生成一个新的密钥库(如果你没有的话)

C:\Users\zhangxinyu>keytool -genkeypair -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
输入密钥库口令:
密钥库口令太短 - 至少必须为 6 个字符

其中,

  • -keystore my-release-key.jks:指定密钥库文件的名称和路径。这里是 my-release-key.jks
  • -keyalg RSA:指定密钥算法,这里选择了 RSA。
  • -keysize 2048:指定密钥的大小,这里选择了 2048 位。
  • -validity 10000:指定证书的有效期(单位为天)。这里是 10000 天。
  • -alias my-key-alias:为你的密钥对指定一个别名。这个别名是你以后引用密钥对时用的名称。

4.2 使用 apksigner 签名 APK:

C:\Users\zhangxinyu>apksigner sign --ks my-release-key.jks --ks-key-alias my-key-alias --key-pass pass:123456 --ks-pass pass:123456 "C:\Users\zhangxinyu\qiuqiu_debug.apk"

其中:

  • apksigner sign:使用 apksigner 进行 APK 签名操作。
  • --ks my-release-key.jks:指定 Java 密钥存储文件(keystore)的路径,这里是 my-release-key.jks,存放了私钥和证书信息。
  • --ks-key-alias my-key-alias:指定密钥库(keystore)中的密钥别名(alias),用于找到正确的密钥进行签名。
  • --key-pass pass:<your-key-password>:指定用于解锁密钥的密码(<your-key-password> 需要替换为真实密码)。
  • --ks-pass pass:<your-keystore-password>:指定用于解锁密钥库(keystore)的密码(<your-keystore-password> 需要替换为真实密码)。
  • "C:\Users\zhangxinyu\Downloads\qiuqiu_debug.apk":需要签名的 APK 文件的路径。

5.连接设备 安装上可以debug的apk包啦

C:\Users\zhangxinyu>adb install -r "C:\Users\zhangxinyu\qiuqiu_debug.apk"
Performing Incremental Install
Serving...
Success
Install command complete in 8318 ms

success!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值