大部分的permission开启enforing后可以解决

call ipc find pty permission

chmod 666 /dev/ptmx
chown root:root /dev/ptmx

netlink find permission

# AI 生成的代码
extern "C" JNIEXPORT jstring JNICALL
Java_com_jee_test_MainActivity_netlinkCheck(JNIEnv* env, jobject /* this */) {
    int sock;
    struct sockaddr_nl addr;

    sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
    if (sock < 0) {
        LOGD("socket failed: %s", strerror(errno));
        return env->NewStringUTF("Netlink socket creation failed");
    }

    addr.nl_family = AF_NETLINK;
    addr.nl_pad = 0;
    addr.nl_pid = getpid();
    addr.nl_groups = 0;

    if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
        if (errno == EPERM) {
            close(sock);
            return env->NewStringUTF("Permission denied");
        } else {
            close(sock);
            return env->NewStringUTF("Netlink bind failed");
        }
    }

    close(sock);
    return env->NewStringUTF("Netlink accessible");
}

permissive下实际检测效果image

开启enforcing后

imageimage

hunter 从原本的跳两个netlink变成一个,继续修改policy,将untrusted_app_all:netlink_route_socket 排除在外 不然下边咋删allow全都没效果 剩余的其他权限可以自己allow调整

image

allow {netdomain -untrusted_app_all} self:netlink_route_socket { create read getattr write setattr lock append connect getopt setopt shutdown nlmsg_read };

imageimage