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

Commit 67889067 authored by /e/ robot's avatar /e/ robot
Browse files

Merge remote-tracking branch 'origin/lineage-18.1' into v1-r

parents ddbd2a27 6e9f3b71
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -351,7 +351,17 @@ public class DreamBackend {
        if (cn != null && cn.indexOf('/') < 0) {
        if (cn != null && cn.indexOf('/') < 0) {
            cn = resolveInfo.serviceInfo.packageName + "/" + cn;
            cn = resolveInfo.serviceInfo.packageName + "/" + cn;
        }
        }
        return cn == null ? null : ComponentName.unflattenFromString(cn);
        // Ensure that the component is from the same package as the dream service. If not,
        // treat the component as invalid and return null instead.
        final ComponentName result = cn != null ? ComponentName.unflattenFromString(cn) : null;
        if (result != null
                && !result.getPackageName().equals(resolveInfo.serviceInfo.packageName)) {
            Log.w(TAG,
                    "Inconsistent package name in component: " + result.getPackageName()
                            + ", should be: " + resolveInfo.serviceInfo.packageName);
            return null;
        }
        return result;
    }
    }


    private static void logd(String msg, Object... args) {
    private static void logd(String msg, Object... args) {
+8 −2
Original line number Original line Diff line number Diff line
@@ -77,6 +77,7 @@ import com.android.systemui.Interpolators;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.InjectionInflationController;
import com.android.systemui.util.InjectionInflationController;


@@ -141,6 +142,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
    private boolean mIsDragging;
    private boolean mIsDragging;
    private float mStartTouchY = -1;
    private float mStartTouchY = -1;
    private boolean mDisappearAnimRunning;
    private boolean mDisappearAnimRunning;
    private final DeviceProvisionedController mDeviceProvisionedController;


    private final WindowInsetsAnimation.Callback mWindowInsetsAnimationCallback =
    private final WindowInsetsAnimation.Callback mWindowInsetsAnimationCallback =
            new WindowInsetsAnimation.Callback(DISPATCH_MODE_STOP) {
            new WindowInsetsAnimation.Callback(DISPATCH_MODE_STOP) {
@@ -265,6 +267,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
        mKeyguardStateController = Dependency.get(KeyguardStateController.class);
        mKeyguardStateController = Dependency.get(KeyguardStateController.class);
        mSecondaryLockScreenController = new AdminSecondaryLockScreenController(context, this,
        mSecondaryLockScreenController = new AdminSecondaryLockScreenController(context, this,
                mUpdateMonitor, mCallback, new Handler(Looper.myLooper()));
                mUpdateMonitor, mCallback, new Handler(Looper.myLooper()));
        mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class);


        PackageManager packageManager = mContext.getPackageManager();
        PackageManager packageManager = mContext.getPackageManager();
        mHasFod = packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT) &&
        mHasFod = packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT) &&
@@ -739,8 +742,11 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
                case SimPuk:
                case SimPuk:
                    // Shortcut for SIM PIN/PUK to go to directly to user's security screen or home
                    // Shortcut for SIM PIN/PUK to go to directly to user's security screen or home
                    SecurityMode securityMode = mSecurityModel.getSecurityMode(targetUserId);
                    SecurityMode securityMode = mSecurityModel.getSecurityMode(targetUserId);
                    if (securityMode == SecurityMode.None && mLockPatternUtils.isLockScreenDisabled(
                    boolean isLockscreenDisabled = mLockPatternUtils.isLockScreenDisabled(
                            KeyguardUpdateMonitor.getCurrentUser())) {
                            KeyguardUpdateMonitor.getCurrentUser())
                            || !mDeviceProvisionedController.isUserSetup(targetUserId);

                    if (securityMode == SecurityMode.None && isLockscreenDisabled) {
                        finish = true;
                        finish = true;
                        eventSubtype = BOUNCER_DISMISS_SIM;
                        eventSubtype = BOUNCER_DISMISS_SIM;
                        uiEvent = BouncerUiEvent.BOUNCER_DISMISS_SIM;
                        uiEvent = BouncerUiEvent.BOUNCER_DISMISS_SIM;
+4 −0
Original line number Original line Diff line number Diff line
@@ -120,6 +120,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind


    private static final String PREF_FILE_NAME = "companion_device_preferences.xml";
    private static final String PREF_FILE_NAME = "companion_device_preferences.xml";
    private static final String PREF_KEY_AUTO_REVOKE_GRANTS_DONE = "auto_revoke_grants_done";
    private static final String PREF_KEY_AUTO_REVOKE_GRANTS_DONE = "auto_revoke_grants_done";
    private static final int MAX_CN_LENGTH = 500;


    private static final String XML_TAG_ASSOCIATIONS = "associations";
    private static final String XML_TAG_ASSOCIATIONS = "associations";
    private static final String XML_TAG_ASSOCIATION = "association";
    private static final String XML_TAG_ASSOCIATION = "association";
@@ -384,6 +385,9 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
            String callingPackage = component.getPackageName();
            String callingPackage = component.getPackageName();
            checkCanCallNotificationApi(callingPackage);
            checkCanCallNotificationApi(callingPackage);
            int userId = getCallingUserId();
            int userId = getCallingUserId();
            if (component.flattenToString().length() > MAX_CN_LENGTH) {
                throw new IllegalArgumentException("Component name is too long.");
            }
            final long identity = Binder.clearCallingIdentity();
            final long identity = Binder.clearCallingIdentity();
            try {
            try {
                return PendingIntent.getActivityAsUser(getContext(),
                return PendingIntent.getActivityAsUser(getContext(),
+16 −4
Original line number Original line Diff line number Diff line
@@ -162,7 +162,6 @@ import android.app.AppOpsManagerInternal.CheckOpsDelegate;
import android.app.ApplicationErrorReport;
import android.app.ApplicationErrorReport;
import android.app.ApplicationExitInfo;
import android.app.ApplicationExitInfo;
import android.app.ApplicationThreadConstants;
import android.app.ApplicationThreadConstants;
import android.app.AppOpsManager;
import android.app.BroadcastOptions;
import android.app.BroadcastOptions;
import android.app.ContentProviderHolder;
import android.app.ContentProviderHolder;
import android.app.IActivityController;
import android.app.IActivityController;
@@ -5775,12 +5774,12 @@ public class ActivityManagerService extends IActivityManager.Stub
    }
    }
    @Override
    @Override
    public int sendIntentSender(IIntentSender target, IBinder whitelistToken, int code,
    public int sendIntentSender(IIntentSender target, IBinder allowlistToken, int code,
            Intent intent, String resolvedType,
            Intent intent, String resolvedType,
            IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) {
            IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) {
        if (target instanceof PendingIntentRecord) {
        if (target instanceof PendingIntentRecord) {
            return ((PendingIntentRecord)target).sendWithResult(code, intent, resolvedType,
            return ((PendingIntentRecord)target).sendWithResult(code, intent, resolvedType,
                    whitelistToken, finishedReceiver, requiredPermission, options);
                    allowlistToken, finishedReceiver, requiredPermission, options);
        } else {
        } else {
            if (intent == null) {
            if (intent == null) {
                // Weird case: someone has given us their own custom IIntentSender, and now
                // Weird case: someone has given us their own custom IIntentSender, and now
@@ -5792,7 +5791,20 @@ public class ActivityManagerService extends IActivityManager.Stub
                intent = new Intent(Intent.ACTION_MAIN);
                intent = new Intent(Intent.ACTION_MAIN);
            }
            }
            try {
            try {
                target.send(code, intent, resolvedType, whitelistToken, null,
                if (allowlistToken != null) {
                    final int callingUid = Binder.getCallingUid();
                    final String packageName;
                    final long token = Binder.clearCallingIdentity();
                    try {
                        packageName = AppGlobals.getPackageManager().getNameForUid(callingUid);
                    } finally {
                        Binder.restoreCallingIdentity(token);
                    }
                    Slog.wtf(TAG, "Send a non-null allowlistToken to a non-PI target."
                            + " Calling package: " + packageName + "; intent: " + intent
                            + "; options: " + options);
                }
                target.send(code, intent, resolvedType, null, null,
                        requiredPermission, options);
                        requiredPermission, options);
            } catch (RemoteException e) {
            } catch (RemoteException e) {
            }
            }
+20 −7
Original line number Original line Diff line number Diff line
@@ -240,6 +240,8 @@ public class UserManagerService extends IUserManager.Stub {


    private static final int USER_VERSION = 9;
    private static final int USER_VERSION = 9;


    private static final int MAX_USER_STRING_LENGTH = 500;

    private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms
    private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms


    static final int WRITE_USER_MSG = 1;
    static final int WRITE_USER_MSG = 1;
@@ -2935,15 +2937,17 @@ public class UserManagerService extends IUserManager.Stub {
        // Write seed data
        // Write seed data
        if (userData.persistSeedData) {
        if (userData.persistSeedData) {
            if (userData.seedAccountName != null) {
            if (userData.seedAccountName != null) {
                serializer.attribute(null, ATTR_SEED_ACCOUNT_NAME, userData.seedAccountName);
                serializer.attribute(null, ATTR_SEED_ACCOUNT_NAME,
                        truncateString(userData.seedAccountName));
            }
            }
            if (userData.seedAccountType != null) {
            if (userData.seedAccountType != null) {
                serializer.attribute(null, ATTR_SEED_ACCOUNT_TYPE, userData.seedAccountType);
                serializer.attribute(null, ATTR_SEED_ACCOUNT_TYPE,
                        truncateString(userData.seedAccountType));
            }
            }
        }
        }
        if (userInfo.name != null) {
        if (userInfo.name != null) {
            serializer.startTag(null, TAG_NAME);
            serializer.startTag(null, TAG_NAME);
            serializer.text(userInfo.name);
            serializer.text(truncateString(userInfo.name));
            serializer.endTag(null, TAG_NAME);
            serializer.endTag(null, TAG_NAME);
        }
        }
        synchronized (mRestrictionsLock) {
        synchronized (mRestrictionsLock) {
@@ -2983,6 +2987,13 @@ public class UserManagerService extends IUserManager.Stub {
        serializer.endDocument();
        serializer.endDocument();
    }
    }


    private String truncateString(String original) {
        if (original == null || original.length() <= MAX_USER_STRING_LENGTH) {
            return original;
        }
        return original.substring(0, MAX_USER_STRING_LENGTH);
    }

    /*
    /*
     * Writes the user list file in this format:
     * Writes the user list file in this format:
     *
     *
@@ -3398,6 +3409,7 @@ public class UserManagerService extends IUserManager.Stub {
            @NonNull String userType, @UserInfoFlag int flags, @UserIdInt int parentId,
            @NonNull String userType, @UserInfoFlag int flags, @UserIdInt int parentId,
            boolean preCreate, @Nullable String[] disallowedPackages,
            boolean preCreate, @Nullable String[] disallowedPackages,
            @NonNull TimingsTraceAndSlog t) throws UserManager.CheckedUserOperationException {
            @NonNull TimingsTraceAndSlog t) throws UserManager.CheckedUserOperationException {
        String truncatedName = truncateString(name);
        final UserTypeDetails userTypeDetails = mUserTypes.get(userType);
        final UserTypeDetails userTypeDetails = mUserTypes.get(userType);
        if (userTypeDetails == null) {
        if (userTypeDetails == null) {
            Slog.e(LOG_TAG, "Cannot create user of invalid user type: " + userType);
            Slog.e(LOG_TAG, "Cannot create user of invalid user type: " + userType);
@@ -3423,7 +3435,8 @@ public class UserManagerService extends IUserManager.Stub {


        // Try to use a pre-created user (if available).
        // Try to use a pre-created user (if available).
        if (!preCreate && parentId < 0 && isUserTypeEligibleForPreCreation(userTypeDetails)) {
        if (!preCreate && parentId < 0 && isUserTypeEligibleForPreCreation(userTypeDetails)) {
            final UserInfo preCreatedUser = convertPreCreatedUserIfPossible(userType, flags, name);
            final UserInfo preCreatedUser = convertPreCreatedUserIfPossible(userType, flags,
                    truncatedName);
            if (preCreatedUser != null) {
            if (preCreatedUser != null) {
                return preCreatedUser;
                return preCreatedUser;
            }
            }
@@ -3515,7 +3528,7 @@ public class UserManagerService extends IUserManager.Stub {
                        flags &= ~UserInfo.FLAG_EPHEMERAL;
                        flags &= ~UserInfo.FLAG_EPHEMERAL;
                    }
                    }


                    userInfo = new UserInfo(userId, name, null, flags, userType);
                    userInfo = new UserInfo(userId, truncatedName, null, flags, userType);
                    userInfo.serialNumber = mNextSerialNumber++;
                    userInfo.serialNumber = mNextSerialNumber++;
                    userInfo.creationTime = getCreationTime();
                    userInfo.creationTime = getCreationTime();
                    userInfo.partial = true;
                    userInfo.partial = true;
@@ -4606,8 +4619,8 @@ public class UserManagerService extends IUserManager.Stub {
                    Slog.e(LOG_TAG, "No such user for settings seed data u=" + userId);
                    Slog.e(LOG_TAG, "No such user for settings seed data u=" + userId);
                    return;
                    return;
                }
                }
                userData.seedAccountName = accountName;
                userData.seedAccountName = truncateString(accountName);
                userData.seedAccountType = accountType;
                userData.seedAccountType = truncateString(accountType);
                userData.seedAccountOptions = accountOptions;
                userData.seedAccountOptions = accountOptions;
                userData.persistSeedData = persist;
                userData.persistSeedData = persist;
            }
            }