mirror of
https://github.com/topjohnwu/Magisk.git
synced 2026-01-05 01:07:52 -08:00
Support compressing during cpio backup
This commit is contained in:
@@ -217,8 +217,24 @@ bool check_two_stage() {
|
||||
return init.contains("selinux_setup");
|
||||
}
|
||||
|
||||
void unxz_init(const char *init_xz, const char *init) {
|
||||
LOGD("unxz %s -> %s\n", init_xz, init);
|
||||
int fd = xopen(init, O_WRONLY | O_CREAT, 0777);
|
||||
fd_channel ch(fd);
|
||||
unxz(ch, mmap_data{init_xz});
|
||||
close(fd);
|
||||
clone_attr(init_xz, init);
|
||||
unlink(init_xz);
|
||||
}
|
||||
|
||||
const char *backup_init() {
|
||||
if (access("/.backup/init.real", F_OK) == 0)
|
||||
return "/.backup/init.real";
|
||||
if (access("/.backup/init.real.xz", F_OK) == 0) {
|
||||
unxz_init("/.backup/init.real.xz", "/.backup/init.real");
|
||||
return "/.backup/init.real";
|
||||
}
|
||||
if (access("/.backup/init.xz", F_OK) == 0)
|
||||
unxz_init("/.backup/init.xz", "/.backup/init");
|
||||
return "/.backup/init";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user