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

Commit 8cf7b119 authored by Kalesh Singh's avatar Kalesh Singh Committed by Automerger Merge Worker
Browse files

Merge "Add memtrackproxy system server service" am: 6157f7be

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1656390

Change-Id: Ib30e08c4f8eba339f40e05e9c25769ed0155bca2
parents 8637b71f 6157f7be
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -102,6 +102,7 @@ cc_defaults {
        "libaudioclient",
        "libaudioclient",
        "libbase",
        "libbase",
        "libappfuse",
        "libappfuse",
        "libbinder_ndk",
        "libbinder",
        "libbinder",
        "libcutils",
        "libcutils",
        "libcrypto",
        "libcrypto",
@@ -110,6 +111,7 @@ cc_defaults {
        "libhardware",
        "libhardware",
        "libhardware_legacy",
        "libhardware_legacy",
        "libhidlbase",
        "libhidlbase",
        "libmemtrackproxy",
        "libmtp",
        "libmtp",
        "libnativehelper",
        "libnativehelper",
        "libprocessgroup",
        "libprocessgroup",
@@ -154,6 +156,7 @@ cc_defaults {
        "android.hardware.input.classifier@1.0",
        "android.hardware.input.classifier@1.0",
        "android.hardware.ir@1.0",
        "android.hardware.ir@1.0",
        "android.hardware.light@2.0",
        "android.hardware.light@2.0",
        "android.hardware.memtrack-V1-ndk_platform",
        "android.hardware.power@1.0",
        "android.hardware.power@1.0",
        "android.hardware.power@1.1",
        "android.hardware.power@1.1",
        "android.hardware.power-V1-cpp",
        "android.hardware.power-V1-cpp",
+20 −0
Original line number Original line Diff line number Diff line
@@ -23,11 +23,14 @@
#include <jni.h>
#include <jni.h>
#include <nativehelper/JNIHelp.h>
#include <nativehelper/JNIHelp.h>


#include <android/binder_manager.h>
#include <android/binder_stability.h>
#include <android/hidl/manager/1.2/IServiceManager.h>
#include <android/hidl/manager/1.2/IServiceManager.h>
#include <binder/IServiceManager.h>
#include <binder/IServiceManager.h>
#include <hidl/HidlTransportSupport.h>
#include <hidl/HidlTransportSupport.h>
#include <incremental_service.h>
#include <incremental_service.h>


#include <memtrackproxy/MemtrackProxy.h>
#include <schedulerservice/SchedulingPolicyService.h>
#include <schedulerservice/SchedulingPolicyService.h>
#include <sensorservice/SensorService.h>
#include <sensorservice/SensorService.h>
#include <sensorservicehidl/SensorManager.h>
#include <sensorservicehidl/SensorManager.h>
@@ -57,6 +60,21 @@ static void android_server_SystemServer_startSensorService(JNIEnv* /* env */, jo


}
}


static void android_server_SystemServer_startMemtrackProxyService(JNIEnv* env,
                                                                  jobject /* clazz */) {
    using aidl::android::hardware::memtrack::MemtrackProxy;

    const char* memtrackProxyService = "memtrack.proxy";

    std::shared_ptr<MemtrackProxy> memtrack_proxy = ndk::SharedRefBase::make<MemtrackProxy>();
    auto binder = memtrack_proxy->asBinder();

    AIBinder_forceDowngradeToLocalStability(binder.get());

    const binder_exception_t err = AServiceManager_addService(binder.get(), memtrackProxyService);
    LOG_ALWAYS_FATAL_IF(err != EX_NONE, "Cannot register %s: %d", memtrackProxyService, err);
}

static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /* clazz */) {
static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /* clazz */) {
    using ::android::frameworks::schedulerservice::V1_0::ISchedulingPolicyService;
    using ::android::frameworks::schedulerservice::V1_0::ISchedulingPolicyService;
    using ::android::frameworks::schedulerservice::V1_0::implementation::SchedulingPolicyService;
    using ::android::frameworks::schedulerservice::V1_0::implementation::SchedulingPolicyService;
@@ -121,6 +139,8 @@ static void android_server_SystemServer_setIncrementalServiceSystemReady(JNIEnv*
static const JNINativeMethod gMethods[] = {
static const JNINativeMethod gMethods[] = {
        /* name, signature, funcPtr */
        /* name, signature, funcPtr */
        {"startSensorService", "()V", (void*)android_server_SystemServer_startSensorService},
        {"startSensorService", "()V", (void*)android_server_SystemServer_startSensorService},
        {"startMemtrackProxyService", "()V",
         (void*)android_server_SystemServer_startMemtrackProxyService},
        {"startHidlServices", "()V", (void*)android_server_SystemServer_startHidlServices},
        {"startHidlServices", "()V", (void*)android_server_SystemServer_startHidlServices},
        {"initZygoteChildHeapProfiling", "()V",
        {"initZygoteChildHeapProfiling", "()V",
         (void*)android_server_SystemServer_initZygoteChildHeapProfiling},
         (void*)android_server_SystemServer_initZygoteChildHeapProfiling},
+11 −0
Original line number Original line Diff line number Diff line
@@ -392,6 +392,11 @@ public final class SystemServer {
     */
     */
    private static native void startSensorService();
    private static native void startSensorService();


    /**
     * Start the memtrack proxy service.
     */
    private static native void startMemtrackProxyService();

    /**
    /**
     * Start all HIDL services that are run inside the system server. This may take some time.
     * Start all HIDL services that are run inside the system server. This may take some time.
     */
     */
@@ -830,6 +835,12 @@ public final class SystemServer {
        mSystemServiceManager.startService(UriGrantsManagerService.Lifecycle.class);
        mSystemServiceManager.startService(UriGrantsManagerService.Lifecycle.class);
        t.traceEnd();
        t.traceEnd();


        // Start MemtrackProxyService before ActivityManager, so that early calls
        // to Memtrack::getMemory() don't fail.
        t.traceBegin("MemtrackProxyService");
        startMemtrackProxyService();
        t.traceEnd();

        // Activity manager runs the show.
        // Activity manager runs the show.
        t.traceBegin("StartActivityManager");
        t.traceBegin("StartActivityManager");
        // TODO: Might need to move after migration to WM.
        // TODO: Might need to move after migration to WM.