WitAqua-tools/Root-My-Device

GitHub: WitAqua-tools/Root-My-Device

Root My Device 是一款基于内核漏洞并针对特定固件版本的 Android 一键 Root 安装工具,通过精确设备匹配实现 KernelSU 的自动化部署。

Stars: 4 | Forks: 1

# Root 我的设备 [BuSung-dev/Root-My-Galaxy](https://github.com/BuSung-dev/Root-My-Galaxy) 的 fork, 原作者为 [BuSung-dev](https://github.com/BuSung-dev)。本仓库保留了 原始的 Apache License 2.0 —— 详见 [LICENSE](LICENSE)。Payload 部分 是 [BuSung-dev/Root-My-Galaxy-Payloads](https://github.com/BuSung-dev/Root-My-Galaxy-Payloads) 的 fork。 sprout_icon_108 Root My Device 是一款针对明确支持的固件版本的一键安装工具。应用程序本身与 设备偏移量 (offsets)、原生 exploit payload 以及 KernelSU 构建产物保持分离。 [最新发布版本](https://github.com/Witaqua-tools/Root-My-Device/releases) 设备数据和原生 payload 维护在 [Root-My-Device-Payloads](https://github.com/Witaqua-tools/Root-My-Device-Payloads) 仓库中。 每次向其 `main` 分支推送代码都会构建 payload,并将其作为 GitHub release 发布在该次运行对应的唯一标签下。应用会解析该 仓库的 `releases/latest`,从中读取 `targets-v2.json` 资产,并 下载其中列出的每一个构建产物——因此,一旦发布,其安装的 payload 集合就是 不可变的,且没有任何内容会以二进制文件的形式被提交。 ## 应用程序 KakaoTalk_20260718_170922353 KakaoTalk_20260718_171127319 KakaoTalk_20260718_171030202 应用会自动为内核版本、完整构建显示 ID、SDK、ABI 和页大小 (page size) 精确匹配对应的版本。高级模式可以手动选择 配置文件,并提供独立的内核版本和构建警告。 ## 构建 环境要求: - Android Studio JBR 21 - Android SDK 37 - Android NDK 28 或更高版本 - CMake 3.22.1 APK 中包含一个并非由本仓库自身 源码构建的原生程序,因此请使用 submodule 进行克隆: ``` git clone --recurse-submodules https://github.com/Witaqua-tools/Root-My-Device # 或者,在现有的 checkout 中 git submodule update --init payloads ``` ``` $env:JAVA_HOME='C:\Program Files\Android\Android Studio\jbr' .\gradlew.bat :app:assembleDebug ``` 输出: ``` app/build/outputs/apk/debug/app-debug.apk ``` ### Bootstrap 助手 APK 中的 `lib/arm64-v8a/libcve43499root.so` 并不是一个库——它是 bootstrap 助手,一个由应用程序通过 `ProcessBuilder` 从 `nativeLibraryDir` 中运行的可执行文件。它的作用是加载已下载的 payload,并在 payload 获取 root 权限后,通过 socket 提供 `su` 服务。 它由源码通过 [`app/src/main/cpp/CMakeLists.txt`](app/src/main/cpp/CMakeLists.txt) 编译, 而不是作为二进制文件提交。不过,其源码并不在此处:payload 的 standalone 路由会从固定路径执行同一个程序,因此 payload 仓库也必须构建它,并且保持为唯一副本。本仓库 通过 `payloads` submodule 访问它,其锁定的 commit 记录了 APK 构建时所基于的确切版本。 这意味着同一份源码会被刻意构建两次。Payload 仓库在 API 35 下锁定了 NDK 29,因为其 exploit payload 是一个固定大小的 blob,其 工具链构成了其身份的一部分;而在这里,CMake 使用本模块的 `ndkVersion` 在 `minSdk` 下进行构建。该助手对两者都不依赖——无论哪种方式它都是同一个程序, 并且应用搭载的副本就是在此处构建的那个。 关于它有两点至关重要,但很容易被意外破坏:它必须是一个**可执行文件**(`add_executable` 加上 `-pie`,使其具有共享库所不具备的 `PT_INTERP` 段),并且它必须被**命名为 `lib*.so`** 且设置 `jniLibs.useLegacyPackaging = true`,因为这样才能将其作为真实文件提取到 `nativeLibraryDir` 中,并设置可执行权限位。这两点在设置它们的 位置都加了注释。 仅限在您拥有或获得明确授权进行测试的设备上使用。
标签:Android, Bash脚本, DSL, Root, Web报告查看器, 后台面板检测, 提权, 移动端工具