Commit Graph

20 Commits

Author SHA1 Message Date
LoveSy
af01a36296 Refactor magic mount to support overlayfs
Previously, magic mount creates its own mirror devices and mount
mirror mount points. With these mirror mount points, magic mount
can get the original files and directory trees. However, some
devices use overlayfs to modify some mount points, and thus after
magic mount, the overlayed files are missing because the mirror
mount points do not contain the overlayed files. To address this
issue and make magic mount more compatible, this patch refactors
how magic mount works.

The new workflows are as follows:
1. make MAGISKTMP a private mount point so that we can create the
   private mount points there
2. for mirror mount points, we instead of creating our own mirror
   devices and mount the mirror mount points, we "copy" the
   original mount points by recursively mounting /
3. to prevent magic mount affecting the mirror mount points, we
   recursively set the mirror mount points private
4. to trace the mount points we created for reverting mounts, we
   again make the mirror mount points shared, and by this way we
   create a new peer group for each mirror mount points
5. as for tracing the newly created tmpfs mount point by magic
   mount, we create a dedicated tmpfs mount point for them, namely
   worker mount point, and obviously, it is shared as in a newly
   created peer group for tracing
6. when reverting mount points by magic mount, we can then trace
   the peer group id and unmount the mount points whose peer group
   ids are created by us

The advantages are as follows:
1. it is more compatible, (e.g., with overlayfs, fix #2359)
2. it can mount more partitions for which previous implementation
   cannot create mirror mount points (fix #3338)
2023-02-25 18:19:46 -08:00
LoveSy
5763a3d908
Support replacing existing .rc by overlay.d
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2022-12-26 03:28:10 -08:00
topjohnwu
a94268329c Update developer guide 2022-01-25 23:05:03 -08:00
topjohnwu
f6274d94f6 Add setprop warnings 2022-01-25 03:52:46 -08:00
topjohnwu
2bb074a5ad Update developer guides 2022-01-25 03:04:23 -08:00
topjohnwu
3b2db56243 Update documentation 2022-01-25 02:32:52 -08:00
topjohnwu
9164bf22c2 Update terminology 2021-02-23 23:56:58 -08:00
Chris Renshaw
5ac0e64edb Update guides.md for system_ext 2021-02-23 03:27:36 -08:00
nkh0472
d8f0b66fe1 Improve Correctness and Clarity of guides.md 2020-12-22 23:30:37 -08:00
topjohnwu
2d5cf8a6fe Push release notes 2020-11-13 04:32:20 -08:00
topjohnwu
fbb4f85ef0 Update documentation 2020-10-03 02:53:10 -07:00
GaryOderNichts
e3c8d723e3
Add linebrake notice for module.prop
This made some trouble when creating a module.prop on Windows. The file could not be read properly by magisk manager and my module folder had an \r at the end which made it unremovable through Magisk Manager.
2020-03-12 00:34:56 -07:00
topjohnwu
eb26e62889 Update documentation 2019-12-29 03:28:03 +08:00
topjohnwu
9329094a4e Update documentations 2019-09-19 05:00:29 -04:00
topjohnwu
be7e737253 Add a small notice for migration 2019-03-28 08:37:23 -04:00
topjohnwu
c85a5cae88 Update links 2019-03-28 05:45:58 -04:00
topjohnwu
66eb1078fe Update docs for module devs 2019-03-28 04:48:46 -04:00
topjohnwu
006d28abd5 Minor documentation fix 2018-12-12 06:10:11 -05:00
topjohnwu
e62630cf3e Add MagiskHide tutorials 2018-10-15 18:04:51 -04:00
topjohnwu
36fe7846c0 Update documentations
Still WIP
2018-10-15 04:33:42 -04:00