mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-26 11:37:39 +00:00
43146b8316
Due to changes in ec3705f2ed187863efc34af5415495e1ee7775d2, the app can no longer communicate with the dameon through a socket opened on the daemon side due to SELinux restrictions. The workaround here is to have the daemon decide a socket name, send it to the app, have the app create the socket server, then finally the daemon connects to the app through the socket.
22 lines
699 B
C++
22 lines
699 B
C++
#pragma once
|
|
|
|
#include <sys/un.h>
|
|
#include <sys/socket.h>
|
|
|
|
socklen_t setup_sockaddr(sockaddr_un *sun, const char *name);
|
|
int create_app_socket(sockaddr_un *sun);
|
|
int socket_accept(int sockfd, int timeout);
|
|
void get_client_cred(int fd, struct ucred *cred);
|
|
int recv_fd(int sockfd);
|
|
void send_fd(int sockfd, int fd);
|
|
int read_int(int fd);
|
|
int read_int_be(int fd);
|
|
void write_int(int fd, int val);
|
|
void write_int_be(int fd, int val);
|
|
char *read_string(int fd);
|
|
char *read_string_be(int fd);
|
|
void write_string(int fd, const char *val);
|
|
void write_string_be(int fd, const char *val);
|
|
void write_key_value(int fd, const char *key, const char *val);
|
|
void write_key_token(int fd, const char *key, int tok);
|