Merge "Remove isAppStartModeDisabled binder entry point" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f59bf68628
@@ -508,7 +508,6 @@ interface IActivityManager {
|
|||||||
boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd);
|
boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd);
|
||||||
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
|
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
|
||||||
void suppressResizeConfigChanges(boolean suppress);
|
void suppressResizeConfigChanges(boolean suppress);
|
||||||
boolean isAppStartModeDisabled(int uid, in String packageName);
|
|
||||||
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
|
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
|
||||||
boolean unlockUser(int userid, in byte[] token, in byte[] secret,
|
boolean unlockUser(int userid, in byte[] token, in byte[] secret,
|
||||||
in IProgressListener listener);
|
in IProgressListener listener);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import android.accounts.AccountManagerInternal;
|
|||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.UserIdInt;
|
import android.annotation.UserIdInt;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManagerInternal;
|
||||||
import android.app.AppGlobals;
|
import android.app.AppGlobals;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
@@ -323,6 +323,8 @@ public class SyncManager {
|
|||||||
|
|
||||||
private final PackageManagerInternal mPackageManagerInternal;
|
private final PackageManagerInternal mPackageManagerInternal;
|
||||||
|
|
||||||
|
private final ActivityManagerInternal mAmi;
|
||||||
|
|
||||||
private List<UserInfo> getAllUsers() {
|
private List<UserInfo> getAllUsers() {
|
||||||
return mUserManager.getUsers();
|
return mUserManager.getUsers();
|
||||||
}
|
}
|
||||||
@@ -643,6 +645,7 @@ public class SyncManager {
|
|||||||
mAccountManager = (AccountManager) mContext.getSystemService(Context.ACCOUNT_SERVICE);
|
mAccountManager = (AccountManager) mContext.getSystemService(Context.ACCOUNT_SERVICE);
|
||||||
mAccountManagerInternal = LocalServices.getService(AccountManagerInternal.class);
|
mAccountManagerInternal = LocalServices.getService(AccountManagerInternal.class);
|
||||||
mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
|
mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
|
||||||
|
mAmi = LocalServices.getService(ActivityManagerInternal.class);
|
||||||
|
|
||||||
mAccountManagerInternal.addOnAppPermissionChangeListener((Account account, int uid) -> {
|
mAccountManagerInternal.addOnAppPermissionChangeListener((Account account, int uid) -> {
|
||||||
// If the UID gained access to the account kick-off syncs lacking account access
|
// If the UID gained access to the account kick-off syncs lacking account access
|
||||||
@@ -1115,15 +1118,11 @@ public class SyncManager {
|
|||||||
}
|
}
|
||||||
final int owningUid = syncAdapterInfo.uid;
|
final int owningUid = syncAdapterInfo.uid;
|
||||||
final String owningPackage = syncAdapterInfo.componentName.getPackageName();
|
final String owningPackage = syncAdapterInfo.componentName.getPackageName();
|
||||||
try {
|
if (mAmi.isAppStartModeDisabled(owningUid, owningPackage)) {
|
||||||
if (ActivityManager.getService().isAppStartModeDisabled(owningUid, owningPackage)) {
|
Slog.w(TAG, "Not scheduling job " + syncAdapterInfo.uid + ":"
|
||||||
Slog.w(TAG, "Not scheduling job " + syncAdapterInfo.uid + ":"
|
+ syncAdapterInfo.componentName
|
||||||
+ syncAdapterInfo.componentName
|
+ " -- package not allowed to start");
|
||||||
+ " -- package not allowed to start");
|
return AuthorityInfo.NOT_SYNCABLE;
|
||||||
return AuthorityInfo.NOT_SYNCABLE;
|
|
||||||
}
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
/* ignore - local call */
|
|
||||||
}
|
}
|
||||||
if (checkAccountAccess && !canAccessAccount(account, owningPackage, owningUid)) {
|
if (checkAccountAccess && !canAccessAccount(account, owningPackage, owningUid)) {
|
||||||
Log.w(TAG, "Access to " + logSafe(account) + " denied for package "
|
Log.w(TAG, "Access to " + logSafe(account) + " denied for package "
|
||||||
|
|||||||
Reference in New Issue
Block a user