mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-10-24 09:08:40 +00:00
Reduce C++ wizardry
This commit is contained in:
@@ -32,12 +32,10 @@ void denylist_handler(int client, const sock_cred *cred) {
|
||||
return;
|
||||
}
|
||||
|
||||
DenyResponse res = DenyResponse::ERROR;
|
||||
int req = read_int(client);
|
||||
int res = DenyResponse::ERROR;
|
||||
|
||||
int code = read_int(client);
|
||||
auto req = static_cast<DenyRequest>(code);
|
||||
|
||||
if (code < 0 || code >= DenyRequest::END) {
|
||||
if (req < 0 || req >= DenyRequest::END) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -58,14 +56,14 @@ void denylist_handler(int client, const sock_cred *cred) {
|
||||
ls_list(client);
|
||||
return;
|
||||
case DenyRequest::STATUS:
|
||||
res = (zygisk_enabled && denylist_enforced) ? DenyResponse::ENFORCED
|
||||
: DenyResponse::NOT_ENFORCED;
|
||||
res = (zygisk_enabled && denylist_enforced)
|
||||
? DenyResponse::ENFORCED : DenyResponse::NOT_ENFORCED;
|
||||
break;
|
||||
case DenyRequest::END:
|
||||
default:
|
||||
__builtin_unreachable();
|
||||
}
|
||||
done:
|
||||
write_int(client, static_cast<int>(res));
|
||||
write_int(client, res);
|
||||
close(client);
|
||||
}
|
||||
|
||||
@@ -73,7 +71,7 @@ int denylist_cli(int argc, char **argv) {
|
||||
if (argc < 2)
|
||||
usage();
|
||||
|
||||
DenyRequest req;
|
||||
int req;
|
||||
if (argv[1] == "enable"sv)
|
||||
req = DenyRequest::ENFORCE;
|
||||
else if (argv[1] == "disable"sv)
|
||||
@@ -97,16 +95,17 @@ int denylist_cli(int argc, char **argv) {
|
||||
}
|
||||
|
||||
// Send request
|
||||
int fd = deny_request(req);
|
||||
int fd = connect_daemon(MainRequest::DENYLIST);
|
||||
write_int(fd, req);
|
||||
if (req == DenyRequest::ADD || req == DenyRequest::REMOVE) {
|
||||
write_string(fd, argv[2]);
|
||||
write_string(fd, argv[3] ? argv[3] : "");
|
||||
}
|
||||
|
||||
// Get response
|
||||
int code = read_int(fd);
|
||||
auto res = (code < 0 || code >= DenyResponse::END) ? DenyResponse::ERROR
|
||||
: static_cast<DenyResponse>(code);
|
||||
int res = read_int(fd);
|
||||
if (res < 0 || res >= DenyResponse::END)
|
||||
res = DenyResponse::ERROR;
|
||||
switch (res) {
|
||||
case DenyResponse::NOT_ENFORCED:
|
||||
fprintf(stderr, "Denylist is not enforced\n");
|
||||
@@ -131,7 +130,7 @@ int denylist_cli(int argc, char **argv) {
|
||||
return -1;
|
||||
case DenyResponse::OK:
|
||||
break;
|
||||
case DenyResponse::END:
|
||||
default:
|
||||
__builtin_unreachable();
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
#define ISOLATED_MAGIC "isolated"
|
||||
|
||||
enum class DenyRequest : int {
|
||||
namespace DenyRequest {
|
||||
enum : int {
|
||||
ENFORCE,
|
||||
DISABLE,
|
||||
ADD,
|
||||
@@ -20,8 +21,10 @@ enum class DenyRequest : int {
|
||||
|
||||
END
|
||||
};
|
||||
}
|
||||
|
||||
enum class DenyResponse: int {
|
||||
namespace DenyResponse {
|
||||
enum : int {
|
||||
OK,
|
||||
ENFORCED,
|
||||
NOT_ENFORCED,
|
||||
@@ -33,13 +36,13 @@ enum class DenyResponse: int {
|
||||
|
||||
END
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// CLI entries
|
||||
DenyResponse enable_deny();
|
||||
DenyResponse disable_deny();
|
||||
DenyResponse add_list(int client);
|
||||
DenyResponse rm_list(int client);
|
||||
int enable_deny();
|
||||
int disable_deny();
|
||||
int add_list(int client);
|
||||
int rm_list(int client);
|
||||
void ls_list(int client);
|
||||
|
||||
// Utility functions
|
||||
@@ -49,9 +52,3 @@ void revert_unmount();
|
||||
|
||||
extern std::atomic<bool> denylist_enforced;
|
||||
extern std::atomic<int> cached_manager_app_id;
|
||||
|
||||
inline int deny_request(DenyRequest req) {
|
||||
int fd = connect_daemon(DaemonRequest::DENYLIST);
|
||||
write_int(fd, static_cast<std::underlying_type_t<DenyRequest>>(req));
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ error:
|
||||
return false;
|
||||
}
|
||||
|
||||
static DenyResponse add_list(const char *pkg, const char *proc) {
|
||||
static int add_list(const char *pkg, const char *proc) {
|
||||
if (proc[0] == '\0')
|
||||
proc = pkg;
|
||||
|
||||
@@ -252,13 +252,13 @@ static DenyResponse add_list(const char *pkg, const char *proc) {
|
||||
return DenyResponse::OK;
|
||||
}
|
||||
|
||||
DenyResponse add_list(int client) {
|
||||
int add_list(int client) {
|
||||
string pkg = read_string(client);
|
||||
string proc = read_string(client);
|
||||
return add_list(pkg.data(), proc.data());
|
||||
}
|
||||
|
||||
static DenyResponse rm_list(const char *pkg, const char *proc) {
|
||||
static int rm_list(const char *pkg, const char *proc) {
|
||||
{
|
||||
mutex_guard lock(data_lock);
|
||||
if (!ensure_data())
|
||||
@@ -298,7 +298,7 @@ static DenyResponse rm_list(const char *pkg, const char *proc) {
|
||||
return DenyResponse::OK;
|
||||
}
|
||||
|
||||
DenyResponse rm_list(int client) {
|
||||
int rm_list(int client) {
|
||||
string pkg = read_string(client);
|
||||
string proc = read_string(client);
|
||||
return rm_list(pkg.data(), proc.data());
|
||||
@@ -342,7 +342,7 @@ static void update_deny_config() {
|
||||
db_err(err);
|
||||
}
|
||||
|
||||
DenyResponse enable_deny() {
|
||||
int enable_deny() {
|
||||
if (denylist_enforced) {
|
||||
return DenyResponse::OK;
|
||||
} else {
|
||||
@@ -377,7 +377,7 @@ DenyResponse enable_deny() {
|
||||
return DenyResponse::OK;
|
||||
}
|
||||
|
||||
DenyResponse disable_deny() {
|
||||
int disable_deny() {
|
||||
if (denylist_enforced) {
|
||||
denylist_enforced = false;
|
||||
LOGI("* Disable DenyList\n");
|
||||
|
||||
Reference in New Issue
Block a user