很好的软件安全小组作业,使我的电脑自动安装安卓逆向环境
参考:
https://bbs.kanxue.com/thread-285906.htm
https://www.freebuf.com/articles/mobile/285861.html
这个是好东西:https://www.androiddevtools.cn/,就是网页有点抽象
Android Studio 下载:https://www.androiddevtools.cn/#android-studio
版本:Android Studio Otter 3 Feature Drop | 2025.2.3 Canary 4 December 8, 2025
这个组件就算跳过了后面用的时候也得下来着,我选择一直retry。try了一晚上总算好了
配置 Android SDK SDK包含了安卓开发和调试所需的各类工具及系统镜像(包括adb)
打开设置-language&frameworks,查看SDK的路径
把SDK路径以及\platform-tools子目录(ADB工具所在目录)加到环境变量里。
测试:
默认项目路径 默认在C盘吓死了
修改.android和.gradle路径 参考:https://blog.gremlins-book.com/docs/app/androidstudio1.html
.android 文件夹:存放 Android 开发环境的配置文件和缓存文件,包括 Android SDK。 .gradle 文件夹:类似于 maven 的 .m2 文件夹,用来存放依赖包。
默认.android 和.gradle 文件夹的存放路径:
1 2 C:\Users\用户名\.android C:\Users\用户名\.gradle
先关闭所有项目和android studio,把这俩文件夹移动,然后配置环境变量(还没做)
1 2 ANDROID_SDK_HOME=D:\software\Android GRADLE_USER_HOME=D:\software\Android\.gradle
修改android studio设置,Settings->Build,Execution,Deployment->Build Tools->Gradle
使用 参考:
https://www.freebuf.com/articles/mobile/285861.html
android emulator 部署外部apk
新建虚拟设备 这一步是选硬件模板,长宽啥的应该是,随便挑
选系统镜像
选了android14,没有已下载的镜像,点击下载。然后漫长的等待,好了之后点完成
安装外部apk
可以直接把apk拖进来。但是发现会自动检查16kb对齐
adb命令 列出连接的设备,包括正在运行的模拟器
安装apk。-r是replace,重装的意思,即使有这个包名也装
1 adb install /path/to/your/app.apk
(adb shell这边,感觉就是后面接一个命令带进设备shell里执行)
按关键字查找包名
1 adb shell pm list packages | findstr <关键字>
启动应用。使用 Monkey 工具启动
1 adb shell monkey -p com.example.myapp -c android.intent.category.LAUNCHER 1
卸载应用
重启设备
进入设备shell
获取设备root权限
说明这台设备是 user (production) 版系统,Google 把 adbd 的 root 能力阉掉了,正规途径无法 adb root。
在device manager中选中设备,点开三个点,show on disk
打开config.ini找image.sysdir.1=system-images/android-34/google_apis/*,如果是google_apis_playstore,说明是user版,得重装一个设备
好的重装吧。系统镜像这一步选Google APIs ,不要选Google Play
再试就OK了
jadx 参考:https://www.cnblogs.com/gqv2009/p/16791864.html
JDK与JRE
正式名
包含内容
Java
语言规范 + 语法
JDK (Java Development Kit)
JRE + 编译器(javac) + 调试器(jdb) + 打包工具(jar) + 头文件等
JRE (Java Runtime Environment)
JVM + 核心类库 + 支持文件
JDK包含JRE
JDK(Java Development Kit) 参考:https://blog.csdn.net/ACE_U_005A/article/details/114840497
下载:https://www.oracle.com/java/technologies/downloads/#jdk21-windows
下的压缩包版,解压到Java文件夹。然后在加系统变量,在Path里加jdk的bin路径
验证。这里我用--version报错了,得用-version,改版了?
jadx安装 下载:https://github.com/skylot/jadx/releases
下了这个:jadx-gui-1.5.3-win.zip - jadx-gui Windows executable (system JRE must be installed)
进lib目录运行
1 java -jar jadx-gui-1.5.3-all.jar
说我的java版本太老了
查看java路径,是先识别到了oracle的java8了
可以在系统变量里把jdk21的路径提前,或者卸载oracle java8。选择卸载,包括:卸载,删除这个文件夹,以及删除相应的环境变量
再试成功
配置 字体 首选项-界面
快速启动 批处理 新建一个批处理文件jadx_gui.bat
1 2 @echo off java -jar "%~dp0\lib\jadx-gui-1 .5 .3 -all.jar"
双击这个bat文件就可以打开jadx
添加到右键 可以直接使用命令用jadx打开文件
1 java -jar jadx-gui-1.5.3-all.jar "111.jar"
修改注册表项,在计算机\HKEY_CLASSES_ROOT\*\shell\下添加一项,默认值:
1 "D:\Tool\Java\jdk-21.0.9\bin\java.exe" -jar "D:\CTFTools\jadx-gui-1.5.3-win\lib\jadx-gui-1.5.3-all.jar" "%1"
这里注意路径全部都要写死
icon设置成jadx的exe路径。嗯…icon好像不太行
问gemini,它说你可以用java的图标。我去,天才
使用 复制完整类名 什么?你说这个不用教?对不起我就需要这种东西
jadx-ai-mcp 项目地址:https://github.com/zinja-coder/jadx-ai-mcp
release:https://github.com/zinja-coder/jadx-ai-mcp/releases
把jadx-ai-mcp-<version>.jar and jadx-mcp-server-<version>.zip都下载,然后解压zip。这个布局:
1 2 3 4 5 6 7 ├jadx-mcp-server/ ├── jadx_mcp.py ├── requirements.txt ├── README.md ├── LICENSE ├jadx-ai-mcp-<version>.jar
jadx里安装插件 首选项里找到,点安装然后保存
菜单栏点插件-安装插件-选择jar
CherryStudio 官方给的又是用uvx,不想用,改用python。首先需要在python环境里安装fastmcp和httpx包
验证:
OK的,那就在cherry Studio里添加服务器。类型选stdio,命令输python解释器路径,参数输jadx_mcp_server.py的路径,保存,启动
cherry Studio对话里选择对应的mcp服务器
成功
配置 jadx的插件选项里可以查看和修改服务器端口
下载 下载地址:https://github.com/iBotPeaches/Apktool/releases
引用:https://apktool.org/docs/install
Download the Windows wrapper script . (Right click, Save Link As apktool.bat)
Download the latest version of Apktool.
Rename downloaded jar to apktool.jar.
Move both apktool.jar and apktool.bat to your Windows directory. (Usually C://Windows)
If you do not have access to C://Windows, you can place the two files anywhere and add that directory to your Environment Variables System PATH variable.
Try running apktool via the command prompt.
wrapper script 这里是个bat文件,结合这个bat文件可以在命令行中直接使用apktool而不是都要使用java -jar。这个bat文件和下载的apktool.jar要放在同一个目录
使用 参考:https://www.cnblogs.com/clnchanpin/p/19397048#_apktool_25
解包 1 apktool d myapp.apk -o myapp_decoded
堆不够用
先设置堆给到 8 G,再运行。还不行,加上-j,限制使用的线程数。-f是覆盖(因为之前执行过有这个目录了)
1 java -Xmx8g -jar apktool.jar d f -j 1 myapp.apk -o myapp_decoded
终于成了
重打包 1 apktool b myapp_decoded -o my_new.apk
加上-d允许调试
Frida 项目地址:https://github.com/frida/frida/releases
参考:
https://blog.csdn.net/qq_40037555/article/details/154522204 好详细,但是只有一部分
Frida是一款动态 instrumentation 工具,可用于在运行时Hook应用程序的函数/方法,需分别在设备端(Frida-Server)和本地端(Frida-Client)配置。
服务器 Frida-Server 是运行在 Android 设备上的服务器端组件,允许 Frida 客户端与设备进行通信。
选择版本:
注意拉到下面选择frida-server开头的
模拟器的架构通常为x86_64,选择android-x86_64.xz结尾的二进制包;
真机通常为ARM架构,选择android-arm64.xz结尾的二进制包。
获取设备的架构。进设备shel然后执行
1 getprop ro.product.cpu.abi
所以本例就是应该下载 frida-server-17.5.2-android-x86_64.xz
下载对应版本后解压,推送到设备
1 2 3 4 5 6 7 8 # 推送到设备 adb push frida-server /data/local/tmp/ # 换个名字方便 adb shell mv /data/local/tmp/frida-server-17.5.2-android-x86_64 /data/local/tmp/frida-server # 设置执行权限 adb shell "chmod 755 /data/local/tmp/frida-server"
获取设备root权限,然后运行
1 2 3 4 adb root # 以 root 权限运行 adb shell "su 0 sh -c '/data/local/tmp/frida-server &'"
su 0
切换到 root 用户(uid=0) ,否则没权限监听低端口
sh -c '...'
启动一个 shell,把单引号里的内容当成完整脚本执行(Android 的 su 没有 -c,用 sh 包一层实现)
/data/local/tmp/frida-server
真正要运行的可执行文件路径
&
在 设备端 shell 里把 frida-server 放后台,这样 adb 会话断开后进程不会被杀
然后没输出是正常的
客户端 需要python和nodejs环境(编译js的hook脚本)
Frida-Tool 是命令行工具,通常与 Frida 版本相对应。
安装。得和frida server版本匹配。因为用的就是最新版的所以没关系
步骤 先push Server到设备并且启动
1 2 adb root adb shell "su 0 sh -c '/data/local/tmp/frida-server &'"
这里如果报端口被占用的话,可能是上次没关()也能用
验证
1 2 3 4 5 # 列出设备上运行的进程 frida-ps -U # 列出已安装的应用 frida-ps -Ua
安装apk到虚拟设备
使用monkey启动
1 adb shell monkey -p com.ting.android -c android.intent.category.LAUNCHER 1
编写和运行hook脚本
1 frida -U -f com.你的应用包名 -l hook.js
实战流程 后面参考一下这个吧:https://bbs.kanxue.com/thread-285906.htm
用jadx打开APK文件,打开manifest.xml,找入口点。应该是WelcomeScreen.Alias0,需要enabled=”true”,同时WelcomeScreen
打开Android Studio,点new project
正常流程是apktool d解包apk,然后b -d给manifest加debug参数,然后keystone生成新签名,jarsigner重签名apk就可以了。
可能是一些tips apk启动错误排查 比如说这个卡在了启动界面,或者直接黑屏了
在logcat里查找
1 2 3 4 5 6 7 8 9 10 11 12 2026-01-16 11:43:05.325 11737-11737 System.err com.ximalaya.ting.android W Caused by: java.lang.NoSuchMethodException: dalvik.system.VMRuntime.setHiddenApiExemptions [class [Ljava.lang.String;] 2026-01-16 11:43:06.184 11737-11850 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.mm.memoryinfo.ApmMemoryInfoModule" on path: DexPathList[[zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.194 11737-11850 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.mm.leak.ApmMemoryLeakModule" on path: DexPathList[[zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.212 11737-11850 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.mm.oom.ApmOOMModule" on path: DexPathList[[zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.374 11737-11887 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.huawei.system.BuildEx" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.379 11737-11850 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.iomonitor.ApmIOModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.391 11737-11856 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.ad.ARouter$$Root$$AdModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.507 11737-11850 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.xmbootmonitor.ApmBootNetMonitorModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.624 11737-11855 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.main.ARouter$$Root$$MainModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.633 11737-11855 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.main.ARouter$$Providers$$MainModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:06.647 11737-11855 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.main.ARouter$$Interceptors$$MainModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 11:43:09.040 11737-12200 System.err com.ximalaya.ting.android W Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
后来是进去了但是无响应了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.40 (port 443) from /10.0.2.16 (port 55302) after 29998ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:11:26.411 16105-16148 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:12:51.205 16105-16148 System.err com.ximalaya.ting.android W Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.40 (port 443) from /10.0.2.16 (port 40800) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:12:51.214 16105-16148 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:13:33.863 16105-16148 System.err com.ximalaya.ting.android W Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.14 (port 443) from /10.0.2.16 (port 56144) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:13:33.866 16105-16148 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:14:16.551 16105-16148 System.err com.ximalaya.ting.android W Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.14 (port 443) from /10.0.2.16 (port 39838) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:14:16.556 16105-16148 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:15:24.981 16105-20411 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.mylisten.ARouter$$Root$$MyListenModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/radio/origin/radio.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/chat/origin/chat.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 23:15:26.466 16105-16105 System.err com.ximalaya.ting.android W Caused by: java.lang.NullPointerException: itemView.findViewById(R.id.listen_v_root) must not be null 2026-01-16 23:15:33.105 16105-20415 System.err com.ximalaya.ting.android W Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ximalaya.ting.android.record.ARouter$$Root$$RecordModule" on path: DexPathList[[zip file "/data/user/0/com.ximalaya.ting.android/app_dex/record/origin/record.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/radio/origin/radio.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/chat/origin/chat.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/kid/origin/kid.apk", zip file "/data/user/0/com.ximalaya.ting.android/app_dex/ad/origin/ad.apk", zip file "/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk"],nativeLibraryDirectories=[/data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/lib/arm64, /data/app/~~LhWkTAekNeLdyVfbUl_l1Q==/com.ximalaya.ting.android-GN4AVz4NtRzZb2B0a-rhPA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] 2026-01-16 23:17:32.676 16699-16883 System.err com.ximalaya.ting.android W Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.40 (port 443) from /10.0.2.16 (port 58734) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:17:32.688 16699-16883 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:18:15.388 16699-16883 System.err com.ximalaya.ting.android W Caused by: java.net.ConnectException: failed to connect to mermaid.test.ximalaya.com/10.146.3.40 (port 443) from /10.0.2.16 (port 44662) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused) 2026-01-16 23:18:15.392 16699-16883 System.err com.ximalaya.ting.android W Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)