Merge 25Q1 (ab/BP1A.250305.020) to AOSP main
Bug: 385190204
Merged-In: Ibc6513ba88f2de0a39661fb5d5219be2bfef7d58
Change-Id: If8ae7daed5314bac501f6b14bc14dfa3ea9ffd60
diff --git a/src/com/android/ons/OpportunisticNetworkService.java b/src/com/android/ons/OpportunisticNetworkService.java
index 3e9a52a..771a21b 100644
--- a/src/com/android/ons/OpportunisticNetworkService.java
+++ b/src/com/android/ons/OpportunisticNetworkService.java
@@ -20,6 +20,7 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.ActivityManager;
import android.app.Service;
import android.app.compat.CompatChanges;
import android.compat.Compatibility;
@@ -40,6 +41,7 @@
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.TelephonyServiceManager.ServiceRegisterer;
+import android.os.UserHandle;
import android.os.UserManager;
import android.telephony.AvailableNetworkInfo;
import android.telephony.CarrierConfigManager;
@@ -210,7 +212,7 @@
private boolean hasOpportunisticSubPrivilege(String callingPackage, int subId) {
return mTelephonyManager.hasCarrierPrivileges(subId)
- || mSubscriptionManager.canManageSubscription(
+ || canManageSubscription(
mProfileSelector.getOpprotunisticSubInfo(subId), callingPackage);
}
@@ -831,6 +833,15 @@
}
}
+ private boolean canManageSubscription(SubscriptionInfo subInfo, String packageName) {
+ if (Flags.hsumPackageManager() && UserManager.isHeadlessSystemUserMode()) {
+ return mSubscriptionManager.canManageSubscriptionAsUser(subInfo, packageName,
+ UserHandle.of(ActivityManager.getCurrentUser()));
+ } else {
+ return mSubscriptionManager.canManageSubscription(subInfo, packageName);
+ }
+ }
+
private void log(String msg) {
Rlog.d(TAG, msg);
}