IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> window apktool反编译 使用 -> 正文阅读

[移动开发]window apktool反编译 使用

安装apktool

1.apktool 下载https://ibotpeaches.github.io/Apktool/install/

2.新建文件apktool.bat 写入下面代码

@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul

set java_exe=java.exe

if defined JAVA_HOME (
set java_exe="%JAVA_HOME%\bin\java.exe"
)

rem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd "%~dp0"
if exist apktool.jar (
    set BASENAME=apktool
    goto skipversioned
)
set max=0
for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion

rem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repack
if "%~1"=="" goto load
if not "%~2"=="" goto load
set ATTR=%~a1
if "%ATTR:~0,1%"=="d" (
    rem Directory, rebuild
    set fastCommand=b
)
if "%ATTR:~0,1%"=="-" if "%~x1"==".apk" (
    rem APK file, unpack
    set fastCommand=d
)

:load
%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*

rem Pause when ran non interactively
for /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause

3.将下载apktool_x.x.x.jar 改为apktool.jar,把?apktool.bat和apktool.jar放在一个文件夹

?放在任意一个盘位置,然后配置环境变量

apktool配置完成

打开cmd 命令输入apktool -version 即可查看配置环境是否成功,如果以前有配置过,请重启电脑后再输入命令查看

反编译开始

1.反编译

输入

apktool d apk文件的路径? ? ? #【C:\Users\10544\Desktop\反编译\test.apk】 反编译

反编译成功后会在apk所在文件目录下生成apk名称命名的文件

如报错下图

?apktool d apk文件的路径?--only-main-classes   #即可忽略错误

成功反编译生成的目录结构如下图

如何修改内容此不做详细描述了,替换 res/string 文件中的 app_name 的值可以修改app名称

2.重新打包

输入

apktool b [反编译的文件夹] #反编译时生成的以apk名称命名的文件夹

重新打包的apk在dist文件下面

此时的apk是没有签名的,无法安装使用的

3.重新对apk进行签名

1.支持v1签名:?jarsigner给apk签名,只支持V1签名

?jks 签名:jarsigner -verbose -keystore xxx.jks -signedjar xxx.apk(签名后的apk名字) xxx.apk(需要签名的apk) xxx(keystore别名)

2.同时使用v1和v2签名??

apksigner:?

这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android7.0后才推出的,所以只有版本>25的SDK\build-tools\中才能找到apksigner.jar。
打开cmd,把目录切到SDK\build-tools\版本号\lib下(例如E:\SDK\build-tools\25.0.2\lib),执行

java -jar apksigner.jar sign           //执行签名操作
 --ks 你的jks路径                       //jks签名证书路径
--ks-key-alias 你的alias                //生成jks时指定的alias
--ks-pass pass:你的密码                 //KeyStore密码
--key-pass pass:你的密码                //签署者的密码,即生成jks时指定alias对应的密码
--out output.apk                        //输出路径
input.apk                               //被签名的apk

示例

java -jar apksigner.jar sign  --ks key.jks  --ks-key-alias releasekey  --ks-pass pass:pp123456  --key-pass pass:pp123456  --out output.apk  input.apk    

验证是否签名成功

java -jar apksigner.jar verify -v my.apk

一般使用apksigner签名,防止没有v2签名无法安装apk

v2签名方法引用:https://www.jianshu.com/p/e1e2fd05bb62???????

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:56:29  更:2021-09-07 10:58:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:31:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码