From f8f20df1319dcae0cde599269db3463bbb15f994 Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Thu, 24 Jun 2021 14:52:44 +0800 Subject: [PATCH] profcollectd: Avoid hard-coding Betterbug name Use vendor config file to provide the uploader package name and action name, so that OEMs can implement their own uploaders. Test: manual Bug: 178561556 Bug: 183487233 Change-Id: Ib398f34825233db1b9a9f2e4da78c7ce35953164 Merged-In: Ib398f34825233db1b9a9f2e4da78c7ce35953164 (cherry picked from commit 2d17c2844d9f3030e06d4b6a3230d3ecd186539d) --- core/res/res/values/config.xml | 9 ++++++ core/res/res/values/symbols.xml | 5 ++++ .../ProfcollectForwardingService.java | 28 +++++++++++++++++-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 6f5fbae65be65..da37898e430f9 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -4310,6 +4310,15 @@ + + false + + + + + + + + + + + diff --git a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java index 9706d7f5f78d6..e3e2708eb7882 100644 --- a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java +++ b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java @@ -37,6 +37,7 @@ import android.os.UserManager; import android.provider.DeviceConfig; import android.util.Log; +import com.android.internal.R; import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemService; @@ -302,8 +303,15 @@ public final class ProfcollectForwardingService extends SystemService { return; } + if (!getUploaderEnabledConfig(getContext())) { + return; + } + new Thread(() -> { try { + Context context = getContext(); + final String uploaderPkg = getUploaderPackageName(context); + final String uploaderAction = getUploaderActionName(context); String reportUuid = mIProfcollect.report(); final int profileId = getBBProfileId(); @@ -317,13 +325,12 @@ public final class ProfcollectForwardingService extends SystemService { } Intent uploadIntent = - new Intent("com.google.android.apps.betterbug.intent.action.UPLOAD_PROFILE") - .setPackage("com.google.android.apps.internal.betterbug") + new Intent(uploaderAction) + .setPackage(uploaderPkg) .putExtra("EXTRA_DESTINATION", "PROFCOLLECT") .putExtra("EXTRA_PACKAGE_NAME", getContext().getPackageName()) .putExtra("EXTRA_PROFILE_PATH", reportPath) .addFlags(Intent.FLAG_RECEIVER_FOREGROUND); - Context context = getContext(); List receivers = context.getPackageManager().queryBroadcastReceivers(uploadIntent, 0); @@ -356,4 +363,19 @@ public final class ProfcollectForwardingService extends SystemService { } return UserHandle.USER_SYSTEM; } + + private boolean getUploaderEnabledConfig(Context context) { + return context.getResources().getBoolean( + R.bool.config_profcollectReportUploaderEnabled); + } + + private String getUploaderPackageName(Context context) { + return context.getResources().getString( + R.string.config_defaultProfcollectReportUploaderApp); + } + + private String getUploaderActionName(Context context) { + return context.getResources().getString( + R.string.config_defaultProfcollectReportUploaderAction); + } }