blob: 6a9d655dae09b2a95668c5cb5356015d5c75bf91 [file] [log] [blame]
Gabriele M5b33c6c2017-01-22 22:50:02 +01001ui_print("Installing su addon...");
2ifelse(is_mounted("/system"), unmount("/system"));
3package_extract_file("mount-system.sh", "/tmp/mount-system.sh");
Christopher N. Hesse1f94c932018-06-11 21:56:24 +02004package_extract_file("unmount-system.sh", "/tmp/unmount-system.sh");
Gabriele M5b33c6c2017-01-22 22:50:02 +01005set_metadata("/tmp/mount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
Christopher N. Hesse1f94c932018-06-11 21:56:24 +02006set_metadata("/tmp/unmount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
Gabriele M5b33c6c2017-01-22 22:50:02 +01007run_program("/tmp/mount-system.sh") == 0 || abort("Could not mount /system");
8
LuK1337fd798c52018-07-05 13:40:09 +02009if getprop("ro.build.system_root_image") != "true" then
10 package_extract_dir("system", "/system");
11 set_metadata("/system/addon.d/51-addonsu.sh", "uid", 0, "gid", 0, "mode", 0755, "selabel", "u:object_r:system_file:s0");
12 set_metadata("/system/etc/init/superuser.rc", "uid", 0, "gid", 0, "mode", 0644, "selabel", "u:object_r:system_file:s0");
13 set_metadata("/system/xbin/su", "uid", 0, "gid", 2000, "mode", 0755, "selabel", "u:object_r:su_exec:s0");
14 symlink("/system/xbin/su", "/system/bin/su");
15else
16 package_extract_dir("system", "/system/system");
17 set_metadata("/system/system/addon.d/51-addonsu.sh", "uid", 0, "gid", 0, "mode", 0755, "selabel", "u:object_r:system_file:s0");
18 set_metadata("/system/system/etc/init/superuser.rc", "uid", 0, "gid", 0, "mode", 0644, "selabel", "u:object_r:system_file:s0");
19 set_metadata("/system/system/xbin/su", "uid", 0, "gid", 2000, "mode", 0755, "selabel", "u:object_r:su_exec:s0");
20 symlink("/system/xbin/su", "/system/system/bin/su");
21endif;
Gabriele M5b33c6c2017-01-22 22:50:02 +010022
Christopher N. Hesse1f94c932018-06-11 21:56:24 +020023run_program("/tmp/unmount-system.sh") == 0 || ui_print("Could not unmount /system");
Gabriele M5b33c6c2017-01-22 22:50:02 +010024ui_print("Done");
25set_progress(1.000000);