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

Commit 38542b0d authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "servicemanager: log missing service requestor pid" am: d5b7fbec

parents 346bb593 d5b7fbec
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -301,7 +301,7 @@ sp<IBinder> ServiceManager::tryGetService(const std::string& name, bool startIfN
    }
    }


    if (!out && startIfNotFound) {
    if (!out && startIfNotFound) {
        tryStartService(name);
        tryStartService(ctx, name);
    }
    }


    if (out) {
    if (out) {
@@ -651,10 +651,11 @@ void ServiceManager::binderDied(const wp<IBinder>& who) {
    }
    }
}
}


void ServiceManager::tryStartService(const std::string& name) {
void ServiceManager::tryStartService(const Access::CallingContext& ctx, const std::string& name) {
    ALOGI("Since '%s' could not be found, trying to start it as a lazy AIDL service. (if it's not "
    ALOGI("Since '%s' could not be found (requested by debug pid %d), trying to start it as a lazy "
          "configured to be a lazy service, it may be stuck starting or still starting).",
          "AIDL service. (if it's not configured to be a lazy service, it may be stuck starting or "
          name.c_str());
          "still starting).",
          name.c_str(), ctx.debugPid);


    std::thread([=] {
    std::thread([=] {
        if (!base::SetProperty("ctl.interface_start", "aidl/" + name)) {
        if (!base::SetProperty("ctl.interface_start", "aidl/" + name)) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -67,7 +67,7 @@ public:
    void clear();
    void clear();


protected:
protected:
    virtual void tryStartService(const std::string& name);
    virtual void tryStartService(const Access::CallingContext& ctx, const std::string& name);


private:
private:
    struct Service {
    struct Service {
+1 −1
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ public:
class MockServiceManager : public ServiceManager {
class MockServiceManager : public ServiceManager {
 public:
 public:
    MockServiceManager(std::unique_ptr<Access>&& access) : ServiceManager(std::move(access)) {}
    MockServiceManager(std::unique_ptr<Access>&& access) : ServiceManager(std::move(access)) {}
    MOCK_METHOD1(tryStartService, void(const std::string& name));
    MOCK_METHOD2(tryStartService, void(const Access::CallingContext&, const std::string& name));
};
};


static sp<ServiceManager> getPermissiveServiceManager() {
static sp<ServiceManager> getPermissiveServiceManager() {