Stop embedding stub.apk in magiskinit

This commit is contained in:
vvb2060
2022-10-31 22:31:15 +08:00
committed by John Wu
parent a4a734458b
commit ad0e6511e1
10 changed files with 55 additions and 79 deletions

View File

@ -1,5 +1,3 @@
#include <binaries.h>
#if defined(__arm__)
#include <armeabi-v7a_binaries.h>
#elif defined(__aarch64__)

View File

@ -61,10 +61,6 @@ void restore_ramdisk_init() {
}
}
int dump_manager(const char *path, mode_t mode) {
return dump_bin(manager_xz, sizeof(manager_xz), path, mode);
}
int dump_preload(const char *path, mode_t mode) {
return dump_bin(init_ld_xz, sizeof(init_ld_xz), path, mode);
}
@ -87,12 +83,6 @@ int main(int argc, char *argv[]) {
if (name == "magisk"sv)
return magisk_proxy_main(argc, argv);
if (argc > 1 && argv[1] == "-x"sv) {
if (argc > 2 && argv[2] == "manager"sv)
return dump_manager(argv[3], 0644);
return 1;
}
if (getpid() != 1)
return 1;

View File

@ -36,7 +36,6 @@ bool check_two_stage();
void setup_klog();
const char *backup_init();
void restore_ramdisk_init();
int dump_manager(const char *path, mode_t mode);
int dump_preload(const char *path, mode_t mode);
/***************

View File

@ -151,6 +151,7 @@ static void patch_socket_name(const char *path) {
static void extract_files(bool sbin) {
const char *m32 = sbin ? "/sbin/magisk32.xz" : "magisk32.xz";
const char *m64 = sbin ? "/sbin/magisk64.xz" : "magisk64.xz";
const char *stub_xz = sbin ? "/sbin/stub.xz" : "stub.xz";
if (access(m32, F_OK) == 0) {
auto magisk = mmap_data(m32);
@ -172,7 +173,13 @@ static void extract_files(bool sbin) {
xsymlink("./magisk32", "magisk");
}
dump_manager("stub.apk", 0);
{
auto stub = mmap_data(stub_xz);
unlink(stub_xz);
int fd = xopen("stub.apk", O_WRONLY | O_CREAT, 0);
unxz(fd, stub.buf, stub.sz);
close(fd);
}
}
#define ROOTMIR MIRRDIR "/system_root"