153 Commits

Author SHA1 Message Date
topjohnwu
32faa4ced6 Redesign test APK architecture
The test APK and the main APK share the same process and classloader,
and in the non-hidden case, the test APK's classes take precedence over
the ones in the main APK. This causes issues because the test APK and
main APK share some dependencies, but don't always use the same
version. This is especially problematic for the Kotlin stdlib and
AndroidX dependencies.

The solution here is to rely on R8's obfuscation feature and repackage
all potentially conflicting classes into a separate package in the test
APK. To ensure that the test classes are always using the same classes
as the main APK, we have to directly implement all tests inside the main
APK, making the test APK purely a "test runner with test dependencies".

As a result, the test APK can only be used when built in release mode,
because R8 no longer allow class obfuscation to be enabled when building
for debug versions.
2024-12-25 20:17:57 -08:00
topjohnwu
3414415907 Support zip files with unsupported compresssion method 2024-12-12 02:50:19 -08:00
topjohnwu
10cd13bf80 Update ONDK r28.1 2024-12-09 18:26:39 -08:00
topjohnwu
df6b808f49 Cleanup DesugarClassVisitorFactory 2024-12-03 19:52:39 -08:00
LoveSy
06616659b8 Only desugar ZipEntry's methods 2024-12-02 19:55:28 -08:00
topjohnwu
b32d7bfafd Update gradle version 2024-11-21 21:05:35 -08:00
topjohnwu
082330808f Fix building APK 2024-11-19 20:25:10 -08:00
topjohnwu
024da05888 Move several stuff into buildSrc 2024-11-09 20:08:12 -08:00
LoveSy
377b6d0cc2 avoid desugar the Desugar class 2024-11-09 19:41:06 -08:00
topjohnwu
f4502f8be8 Add our own API desugaring
Some checks failed
Magisk Build / Build Magisk artifacts (push) Has been cancelled
Magisk Build / Test building on ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
Magisk Build / Test building on ${{ matrix.os }} (windows-latest) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 23) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 24) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 25) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 26) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 27) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 28) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 29) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 30) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 31) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 32) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 33) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (, 34) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86_64) (google_apis, 35) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (23) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (24) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (25) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (26) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (27) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (28) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (29) (push) Has been cancelled
Magisk Build / Test API ${{ matrix.version }} (x86) (30) (push) Has been cancelled
Magisk Build / Test ${{ matrix.device }} (aosp-main, aosp_cf_x86_64_phone) (push) Has been cancelled
Magisk Build / Test ${{ matrix.device }} (aosp-main-throttled, aosp_cf_x86_64_phone_pgagnostic) (push) Has been cancelled
Fix #8452
2024-10-29 12:13:22 -07:00
topjohnwu
44fb7dbcbe Update Busybox
Fix #8403
2024-10-06 01:47:13 -07:00
LoveSy
a9f8c20703 Upgrade AGP 2024-09-05 21:50:56 -07:00
vvb2060
dcd3bc58a3 app: target api 35 2024-09-05 21:50:46 -07:00
topjohnwu
5f27a62221 Use gradle version catalog 2024-08-18 13:12:23 -07:00
topjohnwu
98c258df93 Update AGP 2024-08-11 04:30:01 -07:00
topjohnwu
c578cccfd5 Update to ONDK r27.4 2024-08-11 04:16:19 -07:00
topjohnwu
1539cfe888 Support setting custom ABI list
Also stop building riscv64 by default
2024-08-01 14:33:08 -07:00
topjohnwu
33aebb5976 Stop embedding executables 2024-07-24 22:49:48 -07:00
topjohnwu
021ae891a9 Update dependencies 2024-07-24 16:53:15 -07:00
topjohnwu
ef81cdab4f Prebuild Busybox
Prebuild with tools in ndk-box-kitchen
2024-07-17 02:58:31 -07:00
topjohnwu
b38ab2a7d6 Use K2 to compile buildSrc
Make all Kotlin source code build with K2.
K2 seems to have bugs with lazy property assignment, revert it to set().
2024-07-12 15:27:04 -07:00
LoveSy
a97191052b Upgrade gradle 2024-07-12 13:46:06 -07:00
topjohnwu
7ff4d7608e Update dependencies 2024-07-11 23:28:01 -07:00
LoveSy
ea4cabdfc5 Use simple property assignment 2024-07-11 22:28:59 -07:00
LoveSy
0185ddf577 Fix building on higher version of jdk 2024-07-11 22:28:59 -07:00
topjohnwu
6b81716440 Update stub implementation 2024-07-11 02:44:38 -07:00
topjohnwu
a6e65f9a7e Fix building release builds 2024-07-06 01:55:09 -07:00
topjohnwu
b168163ef0 Move :stub to :app:stub 2024-07-04 00:21:34 -07:00
topjohnwu
3e38b8fed1 Separate core codebase into its own module
- Separate UI specific code and resources outside of the core
  application logic
- Allow most of the code to move forward and use KSP for annotation
  processing and isolate rotton code that is stuck with databinding
- Make full UI rewrite more feasible
2024-07-04 00:02:42 -07:00
LoveSy
a07b9315a5 Add riscv64 support 2024-07-02 14:34:22 -07:00
topjohnwu
59f40d5fe5 Move manager.sh to app_functions.sh 2024-07-01 18:42:05 -07:00
topjohnwu
52063b3652 Update to Kotlin 2.0.0 2024-06-29 17:04:40 -07:00
topjohnwu
23ed275614 Update to ONDK r27.2 2024-06-18 14:34:30 -07:00
topjohnwu
cfd1e0cf22 Update libsu and dependencies 2024-06-18 11:26:18 -07:00
LoveSy
08ad0e74dd
Upgrade deps
Co-authored-by: vvb2060 <vvb2060@gmail.com>
2024-06-06 21:11:52 -07:00
LoveSy
090cb4b0f9 Upgrade AGP to 8.4.0 2024-05-09 09:42:27 -07:00
topjohnwu
b678afa4b6 Update to ONDK r27.0
Co-authored-by: LoveSy <shana@zju.edu.cn>
2024-04-26 03:09:44 -07:00
topjohnwu
fb5ee86615 Install one single ABI in ramdisk 2024-03-31 22:01:22 -07:00
Js0n
000a2e4d59 Upgrade AGP to 8.3.1 2024-03-22 17:02:18 -07:00
Js0n
7abe635de9 fix: AGP 8.3.X 2024-03-22 17:02:18 -07:00
LoveSy
19ea25a9d0
Upgrade AGP 2024-03-08 17:12:46 -08:00
topjohnwu
dbf6e40dfe Ensure stub APK is expected
Fix #7884
2024-03-08 17:09:54 -08:00
topjohnwu
7e9abe6e90 Update ONDK 2024-02-22 20:58:40 -08:00
topjohnwu
472c7878b2 Update AGP 2024-02-06 17:04:48 -08:00
topjohnwu
1206179580 Update dependencies 2024-01-10 15:46:30 -08:00
LoveSy
d47e70cfaa Fix native symbol strips
`ndkVersion` is also needed by app for striping native symbols.
Set it in `setupCommon` instead.
2023-12-04 00:37:09 +08:00
LoveSy
4e99997013 Upgrade AGP 2023-12-02 15:25:58 +08:00
topjohnwu
a6d1803105 Update dependencies 2023-11-26 23:09:20 +08:00
topjohnwu
28770b9a32 Support baseline profiles 2023-10-26 15:56:51 -07:00
vvb2060
09bb2fe8dc Update dependencies 2023-10-25 14:58:02 -07:00