Cancel recursive bind

This commit is contained in:
vvb2060
2023-04-07 01:54:40 +08:00
committed by John Wu
parent 9f7d410959
commit ee50da566f
3 changed files with 16 additions and 15 deletions

View File

@@ -15,12 +15,13 @@ void MagiskInit::patch_sepolicy(const char *in, const char *out) {
sepol->magisk_rules();
// Custom rules
if (auto dir = xopen_dir(PREINITMIRR)) {
if (auto dir = xopen_dir("/data/" PREINITMIRR)) {
for (dirent *entry; (entry = xreaddir(dir.get()));) {
auto rule = PREINITMIRR "/"s + entry->d_name + "/sepolicy.rule";
auto name = "/data/" PREINITMIRR "/"s + entry->d_name;
auto rule = name + "/sepolicy.rule";
if (xaccess(rule.data(), R_OK) == 0 &&
access((PREINITMIRR "/"s + entry->d_name + "/disable").data(), F_OK) != 0 &&
access((PREINITMIRR "/"s + entry->d_name + "/remove").data(), F_OK) != 0) {
access((name + "/disable").data(), F_OK) != 0 &&
access((name + "/remove").data(), F_OK) != 0) {
LOGD("Loading custom sepolicy patch: [%s]\n", rule.data());
sepol->load_rule_file(rule.data());
}
@@ -96,12 +97,13 @@ bool MagiskInit::hijack_sepolicy() {
// Read all custom rules into memory
string rules;
if (auto dir = xopen_dir(PREINITMIRR)) {
if (auto dir = xopen_dir("/data/" PREINITMIRR)) {
for (dirent *entry; (entry = xreaddir(dir.get()));) {
auto rule_file = PREINITMIRR "/"s + entry->d_name + "/sepolicy.rule";
auto name = "/data/" PREINITMIRR "/"s + entry->d_name;
auto rule_file = name + "/sepolicy.rule";
if (xaccess(rule_file.data(), R_OK) == 0 &&
access((PREINITMIRR "/"s + entry->d_name + "/disable").data(), F_OK) != 0 &&
access((PREINITMIRR "/"s + entry->d_name + "/remove").data(), F_OK) != 0) {
access((name + "/disable").data(), F_OK) != 0 &&
access((name + "/remove").data(), F_OK) != 0) {
LOGD("Load custom sepolicy patch: [%s]\n", rule_file.data());
full_read(rule_file.data(), rules);
rules += '\n';