topjohnwu
893821ad88
Skip all tests on master push
2025-03-02 02:30:11 -08:00
topjohnwu
6b80fbfa99
Fix cache save condition
2025-03-02 02:30:11 -08:00
topjohnwu
8c3c7d0194
Build on master push
2025-03-02 01:51:42 -08:00
topjohnwu
b94a3d9f2f
Do not store cache on pull request
2025-03-02 01:51:42 -08:00
Wang Han
442d0b5ddc
Delete bootctl binary if execution fails
...
New devices may use AIDL bootctrl HAL, so if bootctl hal-info fails,
simply remove the temp file and return.
2025-03-01 22:43:55 -08:00
topjohnwu
494615d9a0
Support ./build.py emulator with an APK argument
2025-02-28 17:17:24 -08:00
vvb2060
afbfb81837
docs: add avd_magisk.sh to faq
2025-02-28 17:17:24 -08:00
vvb2060
3ed4e258a3
avd_magisk: add general usage
2025-02-28 17:17:24 -08:00
vvb2060
dddd41c95b
avd_magisk: support rootfs without sbin
2025-02-28 17:17:24 -08:00
topjohnwu
5f2ca81e86
Update AGP
2025-02-28 13:19:16 -08:00
topjohnwu
c9eac0c438
Introduce new sepolicy strategy for legacy devices
...
The existing sepolicy patching strategy looks like this:
1. 2SI: use LD_PRELOAD to hijack `security_load_policy`
2. Split policy: devices using split policy implies it also needs to
do early mount, which means fstab is stored in device tree.
So we do the following:
- Hijack the fstab node in the device tree in sysfs
- Wait for init to mount selinuxfs for us
- Hijack selinuxfs to intercept sepolicy loading
3. Monolithic policy: directly patch `/sepolicy`
Method #1 and #2 both has the magiskinit pre-init daemon handling
the sepolicy patching and loading process, while method #3 gives us
zero control over sepolicy loading process. Downsides:
a. Pre-init daemon bypasses the need to guess which sepolicy init
will load, because the original init will literally send the stock
sepolicy file directly to us with this approach.
b. If we want to add more features/functionalities during the sepolicy
patching process, we will leave out devices using method #3
In order to solve these issues, we completely redesign the sepolicy
patching strategy for non-2SI devices. Instead of limiting usage of
pre-init daemon to early mount devices, we always intercept the
sepolicy loading process regardless of the Android version and device
setup. This will give us a unified implementation for sepolicy patching,
and will make it easier to develop further new features down the line.
2025-02-28 09:39:10 -08:00
topjohnwu
b6b34f7612
Fix overlay.d context preservation
2025-02-27 01:57:25 -08:00
LoveSy
e55c413261
Correctly handle truncated dtb
2025-02-23 20:31:55 -08:00
topjohnwu
0399cde50a
Cleanup logcat.log for each invocation
2025-02-18 01:04:19 -08:00
topjohnwu
019eb03823
Hide or remove mut constructors for Utf8CStr
2025-02-17 11:38:11 -08:00
topjohnwu
363410e1c0
Introduce cstr_buf helper functions
2025-02-17 11:32:21 -08:00
topjohnwu
fc2ef21660
Introduce path! macro for FsPath
2025-02-17 01:46:19 -08:00
topjohnwu
18cb659ff3
Run clippy through build.py
2025-02-17 01:31:59 -08:00
topjohnwu
63231d97ce
Properly handle db downgrades
2025-02-16 17:01:36 -08:00
topjohnwu
9ac81a8a25
Skip module tests on API < 26
2025-02-16 16:20:09 -08:00
topjohnwu
79af2787ae
Workaround potential OOM when signing APKs
2025-02-16 16:20:09 -08:00
topjohnwu
f5f9b285c0
Add module tests
2025-02-16 16:20:09 -08:00
topjohnwu
6c05f2ae85
Test processing Shamiko module zip
2025-02-16 16:20:09 -08:00
topjohnwu
29043e1684
Consolidate setup methods
2025-02-16 16:20:09 -08:00
topjohnwu
b73d4a7022
Fix log_ok()
2025-02-16 12:01:25 -08:00
topjohnwu
ad95e8951b
Skip download in lsposed setup test
...
Download the zip during build time
2025-02-16 01:26:40 -08:00
topjohnwu
bf591fca12
Fix Utf8CString constructor and add more comments
2025-02-16 01:17:48 -08:00
topjohnwu
dcf027884d
Update FsPathBuf
2025-02-15 18:27:45 -08:00
topjohnwu
584f3820fe
Make all Utf8CStrWrite Utf8CStrBuf
2025-02-15 18:27:45 -08:00
topjohnwu
3c7c46307a
Partially cleanup MagiskInit code
2025-02-15 18:27:45 -08:00
vvb2060
4d80361805
core: search for first available dir in PATH
2025-02-15 15:08:26 -08:00
LoveSy
9a74e19117
Add log_ok()
for log().ok()
2025-02-14 14:24:13 -08:00
LoveSy
b1e17706a4
Format code
2025-02-14 14:24:13 -08:00
LoveSy
caad129d69
Move MagiskInit::patch_sepolicy to rust
2025-02-14 14:24:13 -08:00
LoveSy
da58571ce5
Remove redundant rust export
2025-02-14 14:24:13 -08:00
LoveSy
2aa7f1c094
Move MagiskInit::check_two_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
823e31a91b
Use linker to link vfprintf as tiny_vfprintf
2025-02-14 14:24:13 -08:00
LoveSy
fb926ae302
Move MagiskInit::redirect_second_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
e0489eeffd
Move MagiskInit::first_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
dc9d5a4cac
Move MagiskInit::second_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
143743d0b0
Refactor init.cpp to init.rs
2025-02-14 14:24:13 -08:00
LoveSy
563f0d5ad5
Move BootConfig::print to rust
2025-02-14 14:24:13 -08:00
LoveSy
c99f4a591b
Move MagiskInit::exec_init to rust
2025-02-14 14:24:13 -08:00
LoveSy
449204e380
Move MagiskInit::prepare_data to rust
2025-02-14 14:24:13 -08:00
LoveSy
a85c4c6528
Move MagiskInit::MagiskInit to rust
2025-02-14 14:24:13 -08:00
LoveSy
d203a6fff6
Move MagiskInit to rust
2025-02-14 14:24:13 -08:00
LoveSy
6c612d66d7
Move BootConfig to rust
2025-02-14 14:24:13 -08:00
topjohnwu
540253a55b
Remove unnecessary FFI
2025-02-14 11:24:46 -08:00
topjohnwu
15b7c4ccd1
Fix tmpfs mounts in avd_magisk.sh
2025-02-14 10:17:31 -08:00
topjohnwu
442d5335ea
Consolidate get_module_fds implementation
...
Close #8767
2025-02-12 02:55:27 +08:00