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

Commit 39e602b6 authored by Zhen Zhang's avatar Zhen Zhang
Browse files

Introduce BinderSpamSignalCollector

Also moved signal collector service related code to its own directory
with a sparate build target to put it under the same build flag as the
anomaly detector service.

Bug: 419590607
Flag: android.os.profiling.anomaly.flags.anomaly_detector_core
Test: atest FrameworksServicesTests
Change-Id: I08c29b5e6da71f44b5bc8784d127d5d3f47c3430
parent 6f65392d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -367,6 +367,9 @@ java_library {
    ] + select(release_flag("RELEASE_MOVE_VCN_TO_MAINLINE"), {
        true: [],
        default: ["service-connectivity-b-platform"],
    }) + select(release_flag("RELEASE_ANOMALY_DETECTOR"), {
        true: ["services.signal-collectors"],
        default: [],
    }),

    libs: [
+0 −1
Original line number Diff line number Diff line
@@ -249,7 +249,6 @@ java_library_static {
        "android.adpf.sessionmanager_aidl-java",
        "uprobestats_flags_java_lib",
        "clipboard_flags_lib",
        "signal_collector_flags_lib",
        "aconfig_adbdauth_flags_java_lib",
    ],
    javac_shard_size: 50,
+0 −11
Original line number Diff line number Diff line
aconfig_declarations {
    name: "signal_collector_flags",
    package: "com.android.server.signalcollector",
    container: "system",
    srcs: ["flags.aconfig"],
}

java_aconfig_library {
    name: "signal_collector_flags_lib",
    aconfig_declarations: "signal_collector_flags",
}
+0 −9
Original line number Diff line number Diff line
package: "com.android.server.signalcollector"
container: "system"

flag {
    name: "enable_binder_call_signal_collector"
    namespace: "backstage_power"
    description: "Enable binder call signal collector for anomaly detection."
    bug: "421243909"
}
+10 −14
Original line number Diff line number Diff line
@@ -267,7 +267,6 @@ import com.android.server.selinux.SelinuxAuditLogsService;
import com.android.server.sensorprivacy.SensorPrivacyService;
import com.android.server.sensors.SensorService;
import com.android.server.serial.SerialManagerService;
import com.android.server.signalcollector.SignalCollectorService;
import com.android.server.signedconfig.SignedConfigService;
import com.android.server.slice.SliceManagerService;
import com.android.server.smartspace.SmartspaceManagerService;
@@ -465,6 +464,8 @@ public final class SystemServer implements Dumpable {
            "/apex/com.android.profiling/javalib/service-profiling.jar";
    private static final String ANOMALY_DETECTOR_SERVICE_CLASS =
            "com.android.os.profiling.anomaly.AnomalyDetectorService";
    private static final String SIGNAL_COLLECTOR_SERVICE_CLASS =
            "com.android.server.signalcollector";

    private static final String RANGING_APEX_SERVICE_JAR_PATH =
            "/apex/com.android.uwb/javalib/service-ranging.jar";
@@ -2961,6 +2962,14 @@ public final class SystemServer implements Dumpable {
            t.traceBegin("StartAnomalyDetectorService");
            mSystemServiceManager.startService(ANOMALY_DETECTOR_SERVICE_CLASS);
            t.traceEnd();

            t.traceBegin("StartSignalCollectorService");
            try {
                mSystemServiceManager.startService(SIGNAL_COLLECTOR_SERVICE_CLASS);
            } catch (Throwable e) {
                reportWtf("starting SignalCollectorService", e);
            }
            t.traceEnd();
        }

        if (safeMode) {
@@ -3520,19 +3529,6 @@ public final class SystemServer implements Dumpable {
        }
        t.traceEnd();

        // TODO(b/421229308): The collector service should only be running if
        // the anomaly detection service APIs are enabled.
        // Replace this flag with the exported API flag after it's ready.
        if (com.android.server.signalcollector.Flags.enableBinderCallSignalCollector()) {
            t.traceBegin("StartSignalCollectorService");
            try {
                mSystemServiceManager.startService(SignalCollectorService.class);
            } catch (Throwable e) {
                reportWtf("starting SignalCollectorService", e);
            }
            t.traceEnd();
        }

        t.traceEnd(); // startOtherServices
    }

Loading