Skip to content

Commit 1d49e0a

Browse files
committed
build: add x86_64 and x86 Android targets
Extends from 2 ABIs to all 4 Android ABIs so emulator users and x86 devices get prebuilt binaries too.
1 parent 65d1433 commit 1d49e0a

5 files changed

Lines changed: 28 additions & 6 deletions

File tree

.cargo/config.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,9 @@ linker = "aarch64-linux-android26-clang"
33

44
[target.armv7-linux-androideabi]
55
linker = "armv7a-linux-androideabi26-clang"
6+
7+
[target.x86_64-linux-android]
8+
linker = "x86_64-linux-android26-clang"
9+
10+
[target.i686-linux-android]
11+
linker = "i686-linux-android26-clang"

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ jobs:
1616
artifact: resetprop-arm64-v8a
1717
- target: armv7-linux-androideabi
1818
artifact: resetprop-armeabi-v7a
19+
- target: x86_64-linux-android
20+
artifact: resetprop-x86_64
21+
- target: i686-linux-android
22+
artifact: resetprop-x86
1923
steps:
2024
- uses: actions/checkout@v4
2125

.github/workflows/release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ jobs:
2020
artifact: resetprop-arm64-v8a
2121
- target: armv7-linux-androideabi
2222
artifact: resetprop-armeabi-v7a
23+
- target: x86_64-linux-android
24+
artifact: resetprop-x86_64
25+
- target: i686-linux-android
26+
artifact: resetprop-x86
2327
steps:
2428
- uses: actions/checkout@v4
2529

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ It also introduces `--hexpatch-delete` — a stealth operation that no existing
8484
**You need:**
8585
1. Android 10 or above
8686
2. Root access (KernelSU, Magisk, APatch, or equivalent)
87-
3. ARM64 or ARMv7 device
87+
3. ARM64, ARMv7, x86_64, or x86 device/emulator
8888

8989
---
9090

@@ -162,10 +162,12 @@ export ANDROID_NDK_HOME=/path/to/ndk
162162

163163
Outputs stripped binaries to `out/`:
164164

165-
| ABI | Binary | Size |
166-
|-----|--------|------|
167-
| arm64-v8a | `resetprop-arm64-v8a` | ~320KB |
168-
| armeabi-v7a | `resetprop-armeabi-v7a` | ~240KB |
165+
| ABI | Binary |
166+
|-----|--------|
167+
| arm64-v8a | `resetprop-arm64-v8a` |
168+
| armeabi-v7a | `resetprop-armeabi-v7a` |
169+
| x86_64 | `resetprop-x86_64` |
170+
| x86 | `resetprop-x86` |
169171

170172
The build uses `opt-level=s`, LTO, `panic=abort`, strip, and single codegen unit for minimal binary size.
171173

@@ -226,7 +228,7 @@ After: ro.codec.charger = "0"
226228
| | Status |
227229
|---|---|
228230
| **Android** | 10 – 15 |
229-
| **Architecture** | ARM64, ARMv7 |
231+
| **Architecture** | ARM64, ARMv7, x86_64, x86 |
230232
| **Value format** | Short (≤91B) + Long (Android 12+, >92B) |
231233
| **Root** | KernelSU, Magisk, APatch, any `su` |
232234

build.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ OUT_DIR="$SCRIPT_DIR/out"
77
declare -A ABI_TARGET=(
88
[arm64-v8a]=aarch64-linux-android
99
[armeabi-v7a]=armv7-linux-androideabi
10+
[x86_64]=x86_64-linux-android
11+
[x86]=i686-linux-android
1012
)
1113

1214
find_ndk() {
@@ -47,8 +49,12 @@ NDK_BIN="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin"
4749
export PATH="$NDK_BIN:$PATH"
4850
export CC_aarch64_linux_android="$NDK_BIN/aarch64-linux-android26-clang"
4951
export CC_armv7_linux_androideabi="$NDK_BIN/armv7a-linux-androideabi26-clang"
52+
export CC_x86_64_linux_android="$NDK_BIN/x86_64-linux-android26-clang"
53+
export CC_i686_linux_android="$NDK_BIN/i686-linux-android26-clang"
5054
export AR_aarch64_linux_android="$NDK_BIN/llvm-ar"
5155
export AR_armv7_linux_androideabi="$NDK_BIN/llvm-ar"
56+
export AR_x86_64_linux_android="$NDK_BIN/llvm-ar"
57+
export AR_i686_linux_android="$NDK_BIN/llvm-ar"
5258

5359
echo "NDK: $NDK_HOME"
5460

0 commit comments

Comments
 (0)