Commit caa67657 authored by Administrator's avatar Administrator

RDP 功能

parent 9948b076
# RDP
RDP(Ratel Decompile Project)是类似APKTool的一套android apk代码修改工具,构建在ratel framework之上,通过重打包的方法修改apk代码文件,但是RDP和apktool有很大不同。RDP主要关注在java代码的修改和注入,对资源文件、AndroidManifest的修改并不支持。和APKtool对比如下
1. 弱化功能,RDP的功能类似APKTool ``-r,--no-res Do not decode resources.``参数,所以apk修改范围是APKTool功能子集,另一方面这也是强化功能。RDP相比APKtool来说,不存在``资源混淆对抗``,理论上不会重打包失败。就目前而言,绝大部分头部app由于APKtool资源混淆对抗问题无法构建成功
2. RDP不需要考虑签名问题,一般来说APKtool修改之后,需要手动bypass signature check,RDP工作之前已经被ratel改包,之后已经完成apk常规检查的破解
3. ratel插件机制,还是因为RDP工作在ratel framework之上,所以依然享受ratel本身提供的所有功能。包括一机多号、设备指纹、hook插件
所以,如果你只是想修改apk的java代码逻辑,那么RDP相比APKtool更加适合你,但是如果你还想修改资源文件,或者添加新的activity之类的,那么只能使用apktool。
## 使用
在ratel构建过程中,使用``-D --decompile``即可产生RDP项目,此时参数``-o --output``指向输出的RDP的输出文件夹,无``-o``会自动计算。如果使用RatelWebAPI操作,那么在``extend parameter``中加入上述参数即可
产生的文件夹包括,所有非代码文件解压文件、所有dex反编译为smali文件、apk重编译脚本文件。使用AndroidStudio或者idea打开这个文件夹,并标记所有smali文件夹为``source directory``,即可通过IDE进行代码修改,甚至可通过``smali idea``插件进行源码调试
代码修改完成后,执行apk重编译脚本文件夹下的脚本,即可产生新的apk,该apk可以直接安装
## 其他
1. 如果想类似apktool一样开启debug,ratel本身就指出开启debug,在ratel构建过程加入``-d --debug``参数即可。
......@@ -33,6 +33,7 @@ ratel 大概分为以下模块
## [虚拟化相关](5.virtual_env.md)
## [扩展开发包](7.ratelExtension.md)
## [ratel调度任务](8ratelScheduler.md)
## [RDP](9.RDP.md)
## [常见问题处理](6.faq.md)
# 基本使用流程
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment