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

Commit 31bde163 authored by Andrei Onea's avatar Andrei Onea
Browse files

Use sampled value in hidden api logger

The hidden api logger interface also receives the actual sampled value.
This is an intermediate step before a new logging method is added.

Test: m
Bug: 119217680
Change-Id: I707a2624a254a80391cdae277dd59daa503d055f
parent e4f26ef2
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -338,13 +338,25 @@ class ZygoteConnection {

        private final MetricsLogger mMetricsLogger = new MetricsLogger();
        private static HiddenApiUsageLogger sInstance = new HiddenApiUsageLogger();
        private int mHiddenApiAccessLogSampleRate = 0;

        public static void setHiddenApiAccessLogSampleRate(int sampleRate) {
            sInstance.mHiddenApiAccessLogSampleRate = sampleRate;
        }

        public static HiddenApiUsageLogger getInstance() {
            return HiddenApiUsageLogger.sInstance;
        }

        public void hiddenApiUsed(String packageName, String signature,
        public void hiddenApiUsed(int sampledValue, String packageName, String signature,
                int accessMethod, boolean accessDenied) {
            if (sampledValue < mHiddenApiAccessLogSampleRate) {
                logUsage(packageName, signature, accessMethod, accessDenied);
            }
        }

        private void logUsage(String packageName, String signature, int accessMethod,
                                  boolean accessDenied) {
            int accessMethodMetric = HiddenApiUsageLogger.ACCESS_METHOD_NONE;
            switch(accessMethod) {
                case HiddenApiUsageLogger.ACCESS_METHOD_NONE:
@@ -375,6 +387,7 @@ class ZygoteConnection {
    private void handleHiddenApiAccessLogSampleRate(int samplingRate) {
        try {
            ZygoteInit.setHiddenApiAccessLogSampleRate(samplingRate);
            HiddenApiUsageLogger.setHiddenApiAccessLogSampleRate(samplingRate);
            ZygoteInit.setHiddenApiUsageLogger(HiddenApiUsageLogger.getInstance());
            mSocketOutStream.writeInt(0);
        } catch (IOException ioe) {