Improvements to system_root devices booting as recovery
This commit is contained in:
parent
e139f4fc13
commit
9159f86a9e
@ -357,6 +357,8 @@ int main(int argc, char *argv[]) {
|
|||||||
* ***********/
|
* ***********/
|
||||||
|
|
||||||
int root = open("/", O_RDONLY | O_CLOEXEC);
|
int root = open("/", O_RDONLY | O_CLOEXEC);
|
||||||
|
int mnt_system = 0;
|
||||||
|
int mnt_vendor = 0;
|
||||||
|
|
||||||
if (cmd.skip_initramfs) {
|
if (cmd.skip_initramfs) {
|
||||||
// Clear rootfs
|
// Clear rootfs
|
||||||
@ -384,12 +386,14 @@ int main(int argc, char *argv[]) {
|
|||||||
link("/.backup/init", "/init");
|
link("/.backup/init", "/init");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do not go further if system_root device is booting as recovery
|
||||||
|
if (!cmd.skip_initramfs && access("/sbin/recovery", F_OK) == 0)
|
||||||
|
goto exec_init;
|
||||||
|
|
||||||
/* ************
|
/* ************
|
||||||
* Early Mount
|
* Early Mount
|
||||||
* ************/
|
* ************/
|
||||||
|
|
||||||
int mnt_system = 0;
|
|
||||||
int mnt_vendor = 0;
|
|
||||||
struct device dev;
|
struct device dev;
|
||||||
char partname[32];
|
char partname[32];
|
||||||
|
|
||||||
@ -423,8 +427,6 @@ int main(int argc, char *argv[]) {
|
|||||||
* Ramdisk Patches
|
* Ramdisk Patches
|
||||||
* ****************/
|
* ****************/
|
||||||
|
|
||||||
// Only patch rootfs if not intended to run in recovery
|
|
||||||
if (access("/sbin/recovery", F_OK) != 0) {
|
|
||||||
// Handle ramdisk overlays
|
// Handle ramdisk overlays
|
||||||
int fd = open("/overlay", O_RDONLY | O_CLOEXEC);
|
int fd = open("/overlay", O_RDONLY | O_CLOEXEC);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
@ -464,8 +466,8 @@ int main(int argc, char *argv[]) {
|
|||||||
dump_magisk("/sbin/magisk", 0755);
|
dump_magisk("/sbin/magisk", 0755);
|
||||||
patch_socket_name("/sbin/magisk");
|
patch_socket_name("/sbin/magisk");
|
||||||
rename("/init.bak", "/sbin/magiskinit");
|
rename("/init.bak", "/sbin/magiskinit");
|
||||||
}
|
|
||||||
|
|
||||||
|
exec_init:
|
||||||
// Clean up
|
// Clean up
|
||||||
close(root);
|
close(root);
|
||||||
umount("/proc");
|
umount("/proc");
|
||||||
|
Loading…
Reference in New Issue
Block a user