MCPcopy Index your code
hub / github.com/dyglcc/reverseToy

github.com/dyglcc/reverseToy @1.0.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0.7 ↗ · + Follow
2,070 symbols 6,076 edges 207 files 212 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

安卓reverseToy使用说明

打包成功之后使用高版本设备9.0安装apk,暂时发现7.0以下手机会出现classNotfoundException

简单使用

Apktool 使用说明请参考这里
java -jar apktool-reverseToy.jar m abc.apk libs reverse_code_json_default-adhoc.txt

参数说明:libs是文件夹路径,路径下面是SDK的jar

注意:包缺少包可能引起app崩溃启动

abtest_core_*.jar

abtest_visual.jar

abc.apk是被合并的宿主apk文件,加固apk未测试,是否支持未知

reverse_code_json_default-adhoc.txt是初始化代码描述文件,该描述文件默认是Appadhoc 吆喝科技的初始化代码描述文件,想使用用户可以参考模版,设置自己的描述文件初始化描述文件。

设置参数

 java -jar apktool-reverseToy*.jar m  -sde  host.apk abc.jar|libs/|sdk.aar reverse_code_json_default-adhoc.txt

合并aar文件

reverse m abc.apk abtest-v1.2.2.aar reverse_code_json_default-adhoc.txt

参数查看

usage: reverse m[erge] [options] <file_apk> <[AAR]_file>|<[LIB]_dir> <init_code_file>
             -codePath,--dir-to-del-before-inject-sdk    用于代码更新,合并之前要删除指定的路径下的代码文件 例如:com.adhoc:com.adhocsdk,多个目录分号隔开
             -keepDir,--del-code-path-keep-dir           用于代码更新,删除旧代码,但是想保留的子目录 例如:visual(将会保留com.adhoc和com.adhocsdk下面的visual目录)
             -sde,--set-debug-enable                          设置debuggable true 默认:false

配置全局变量(MacOS)

cd /usr/local/bin/
touch reverse
echo '#!bin/bash' >> reverse
echo 'exec java -jar {你自己的apktool-reversetoy jar包路径}.jar "$@"' >> reverse
chmod +x reverse

运行环境(MacOS)

  • java7+
  • MacOS(10.12+)

项目打开

IntelliJ IDEA(2019-2版本)

支持其他SDK

主要步骤

    1. 修改初始化描述文件reverse_code_json_default-adhoc.txt

Windows用户使用

在apktool-lib/src/main/resources/prebuilt/路径下面添加文件:

  • jar.exe
  • javac.exe

打包

gradle路径

  • brut.apktool/apktool-cli/build.gradle

Task 名称

  • proguard

jar生成位置 :

  • brut.apktool/apktool-cli/build/libs/apktool-reverseToy-*.jar

Extension points exported contracts — how you extend this code

ResStreamDecoder (Interface)
@author Ryszard Wiśniewski [15 implementers]
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResStreamDecoder.java
Directory (Interface)
(no doc) [1 implementers]
brut.j.dir/src/main/java/brut/directory/Directory.java
ResValuesXmlSerializable (Interface)
@author Ryszard Wiśniewski [14 implementers]
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResValuesXmlSerializable.java
XmlResourceParser (Interface)
The XML parsing interface returned for an XML resource. This is a standard XmlPullParser interface, as well as an extend [12 …
brut.apktool/apktool-lib/src/main/java/android/content/res/XmlResourceParser.java
ResXmlEncodable (Interface)
@author Ryszard Wiśniewski [3 implementers]
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncodable.java
ExtXmlSerializer (Interface)
@author Ryszard Wiśniewski [2 implementers]
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/util/ExtXmlSerializer.java

Core symbols most depended-on inside this repo

equals
called by 176
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResID.java
get
called by 122
brut.apktool/apktool-lib/src/main/java/brut/androlib/ApktoolProperties.java
write
called by 121
brut.apktool/apktool-lib/src/main/java/com/appadhoc/reversetoy/aar/WriterArsc.java
readInt
called by 98
brut.apktool/apktool-lib/src/main/java/luyao/parser/utils/Reader.java
getName
called by 86
brut.apktool/apktool-lib/src/main/java/luyao/parser/xml/bean/Attribute.java
log
called by 53
brut.apktool/apktool-lib/src/main/java/luyao/parser/utils/Reader.java
build
called by 52
brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java
format
called by 51
brut.apktool/apktool-lib/src/main/java/luyao/parser/xml/XmlParser.java

Shape

Method 1,808
Class 252
Interface 9
Enum 1

Languages

Java100%

Modules by API surface

brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/AXmlResourceParser.java79 symbols
brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt1/BuildAndDecodeTest.java78 symbols
brut.apktool/apktool-lib/src/main/java/com/appadhoc/reversetoy/utils/Utils.java57 symbols
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResPackage.java50 symbols
brut.apktool/apktool-lib/src/main/java/com/appadhoc/reversetoy/inject/AbstractSmaliOper.java46 symbols
brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java46 symbols
brut.apktool/apktool-lib/src/main/java/org/xmlpull/renamed/MXSerializer.java40 symbols
brut.apktool/apktool-lib/src/main/java/com/appadhoc/reversetoy/aar/WriterArsc.java40 symbols
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java40 symbols
brut.apktool/apktool-lib/src/main/resources/brut/androlib/src_code/Utils.java37 symbols
brut.apktool/apktool-lib/src/main/resources/brut/androlib/src_code/MultiDex.java37 symbols
brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java37 symbols

For agents

$ claude mcp add reverseToy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact