当前位置: 首页 > 工具软件 > ReDex > 使用案例 >

Redex 集成踩坑

董新觉
2023-12-01

一. 配置环境(MacOS)

xcode-select --install

brew install autoconf automake libtool python3

brew install boost jsoncpp

 

二. 安装Redex

方式一: Homebrew 有直接可体验版本,但比较老,不支持D8编译器产生的APK

brew install redex

 

方式二: Clone源码编译最新版本,支持D8编译器

1)git clone https://github.com/facebook/redex.git

 

2)安装老版本的boost, 最新版本1.70有bug,导致源码编译失败,看issue描述boost会在1.71版本修复这个bug。 1.70以后的releaes版本应该不需要安装旧版本了

 

PS:不要用brew install boost@1.69这种带版本号的方式安装其他版本,会导致环境路径有误,编译还是会出错。

 

brew uninstall boost

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/b4de2e1ce084ec249ca61c3eff6f96617e38c081/Formula/boost.rb

 

3)编译源码

cd redex

autoreconf -ivf && ./configure && make

 

4)如果之前通过homebrew安装过redex,先卸载

brew uninstall redex

然后

sudo make install

 

至此,Redex应该是正确安装了。

 

三. 使用

1. 源码中的/config文件夹下有两个配置,可以使用defalut.config来使用一下Redex

 

redex /path/to/apk/ -c default.config -o path/to/output/apk/

 

2. 如果处理的是proguard过的apk,需要在配置文件中配置proguard的mapping文件,帮助redex识别混淆的代码

 

"proguard_map":"/Path/to/proguard_mapping_release.txt"

 

3. 可以通过-P指定一个Proguard rule, 使Redex遵循Prouard的rule防止误删类

-P common.cfg

 

4. 如果执行时有报错,可以根据实际情况修改default.config中的passes节点,关闭导致错误的pass配置

 

5. 经过Redex处理过的apk需要重新签名

1)简单debug自动签名可用--sign处理,不然无法安装

2)用-s 指定keystore文件 -s path/to/android/keystore --sign

 类似资料: