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

(cherry picked from commit 31bde16393)

Change-Id: I3345bdcdf57e1f60970c85572e503d7b33af7148
Merged-In: I707a2624a254a80391cdae277dd59daa503d055f
This commit is contained in:
Andrei Onea
2019-02-15 13:50:47 +00:00
committed by Andrei-Valentin Onea
parent f2cf09c945
commit 3513d3c8b0

View File

@@ -319,13 +319,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:
@@ -356,6 +368,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) {