Magisk/native/jni
topjohnwu 810d27a618 Use /data as tmpfs mount point in 2SI setup
Design credit to @yujincheng08
Close #5146. Fix #5491, fix #3752

Previously, Magisk changes the mount point from /system to /system_root
by patching fstab to prevent the original init from changing root.
The reason why we want to prevent the original init from switching the
root directory is because it will then be read-only, making patching
and injecting magiskinit into the boot chain difficult.

This commit (ab)uses the fact that the /data folder will never be part
of early mount (because it is handled very late in the boot by vold),
so that we can use it as the mount point of tmpfs to store files.

Some advantages of this method:

- No need to switch root manually
- No need to modify fstab, which significantly improves compatibility
  e.g. avoid hacks for weird devices like those using oplus.fstab,
  and avoid hacking init to bypass fstab in device trees
- Supports skip_mount.cfg
- Support DSU
2022-03-13 05:06:08 -07:00
..
core Initialize local variables 2022-03-09 20:43:42 -08:00
external Update selinux 2022-01-30 08:18:04 -08:00
include Move all permission check into daemon.cpp 2022-03-01 03:15:38 -08:00
init Use /data as tmpfs mount point in 2SI setup 2022-03-13 05:06:08 -07:00
magiskboot Support multiple CPIO concatenated 2022-03-13 04:23:00 -07:00
magiskpolicy Update selinux 2022-01-30 08:18:04 -08:00
resetprop Rename persist_properties.cpp -> persist.cpp 2021-11-30 01:58:31 -08:00
su Reduce C++ wizardry 2022-03-01 03:15:38 -08:00
utils Revert "Directly use getrandom system call if possible" 2022-03-02 19:50:47 -08:00
zygisk Check null before dereferencing fds_to_ignore 2022-03-03 21:34:53 -08:00
.gitignore Add entrypoint to build test 2019-04-01 02:46:09 -04:00
Android.mk Use /data as tmpfs mount point in 2SI setup 2022-03-13 05:06:08 -07:00
Application.mk Add runtime FORTIFY support 2022-01-31 01:49:37 -08:00
lto_fix.lds Update to NDK r23b 2022-01-30 07:11:51 -08:00