From f97866a9614e22a69eb203771c8444fff0181a36 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Sat, 9 Apr 2022 17:12:42 +0800 Subject: [PATCH] Close stub fd --- native/jni/core/bootstages.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/native/jni/core/bootstages.cpp b/native/jni/core/bootstages.cpp index f1eca6a91..3f1f646c1 100644 --- a/native/jni/core/bootstages.cpp +++ b/native/jni/core/bootstages.cpp @@ -375,15 +375,18 @@ void boot_complete(int client) { if (access(SECURE_DIR, F_OK) != 0) xmkdir(SECURE_DIR, 0700); - if (stub_fd > 0 && !get_manager()) { - // Install stub - struct stat st{}; - fstat(stub_fd, &st); - int dfd = xopen("/data/stub.apk", O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0600); - xsendfile(dfd, stub_fd, nullptr, st.st_size); + if (stub_fd > 0) { + if (!get_manager()) { + // Install stub + struct stat st{}; + fstat(stub_fd, &st); + char apk[] = "/data/stub.apk"; + int dfd = xopen(apk, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0600); + xsendfile(dfd, stub_fd, nullptr, st.st_size); + close(dfd); + install_apk(apk); + } close(stub_fd); - close(dfd); stub_fd = -1; - install_apk("/data/stub.apk"); } }