Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7459281f authored by Martijn Coenen's avatar Martijn Coenen Committed by Android (Google) Code Review
Browse files

Merge changes from topic 'vendorbinder'

* changes:
  Add vndservicemanager.
  Allow ProcessState to use another binder dev node.
parents a70a075b 69b0515d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -34,3 +34,15 @@ cc_binary {
    shared_libs: ["libcutils", "libselinux"],
    init_rc: ["servicemanager.rc"],
}

cc_binary {
    name: "vndservicemanager",
    defaults: ["servicemanager_flags"],
    proprietary: true,
    srcs: [
        "service_manager.c",
        "binder.c",
    ],
    shared_libs: ["libcutils", "libselinux"],
    init_rc: ["vndservicemanager.rc"],
}
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ int main(int argc, char **argv)
    uint32_t svcmgr = BINDER_SERVICE_MANAGER;
    uint32_t handle;

    bs = binder_open(128*1024);
    bs = binder_open("/dev/binder", 128*1024);
    if (!bs) {
        fprintf(stderr, "failed to open binder driver\n");
        return -1;
+4 −4
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ struct binder_state
    size_t mapsize;
};

struct binder_state *binder_open(size_t mapsize)
struct binder_state *binder_open(const char* driver, size_t mapsize)
{
    struct binder_state *bs;
    struct binder_version vers;
@@ -105,10 +105,10 @@ struct binder_state *binder_open(size_t mapsize)
        return NULL;
    }

    bs->fd = open("/dev/binder", O_RDWR | O_CLOEXEC);
    bs->fd = open(driver, O_RDWR | O_CLOEXEC);
    if (bs->fd < 0) {
        fprintf(stderr,"binder: cannot open device (%s)\n",
                strerror(errno));
        fprintf(stderr,"binder: cannot open %s (%s)\n",
                driver, strerror(errno));
        goto fail_open;
    }

+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ typedef int (*binder_handler)(struct binder_state *bs,
                              struct binder_io *msg,
                              struct binder_io *reply);

struct binder_state *binder_open(size_t mapsize);
struct binder_state *binder_open(const char* driver, size_t mapsize);
void binder_close(struct binder_state *bs);

/* initiate a blocking binder call
+10 −3
Original line number Diff line number Diff line
@@ -360,14 +360,21 @@ static int audit_callback(void *data, __unused security_class_t cls, char *buf,
    return 0;
}

int main()
int main(int argc, char** argv)
{
    struct binder_state *bs;
    union selinux_callback cb;
    char *driver;

    bs = binder_open(128*1024);
    if (argc > 1) {
        driver = argv[1];
    } else {
        driver = "/dev/binder";
    }

    bs = binder_open(driver, 128*1024);
    if (!bs) {
        ALOGE("failed to open binder driver\n");
        ALOGE("failed to open binder driver %s\n", driver);
        return -1;
    }

Loading