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

Commit 7f4c846d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "resolve merge conflicts of 718f3213 to nyc-mr1-dev" into nyc-mr1-dev

parents a4e2bf47 211b5b10
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -169,6 +169,7 @@ package android {
    field public static final java.lang.String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS";
    field public static final java.lang.String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS";
    field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
    field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
    field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
    field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
    field public static final java.lang.String READ_OEM_UNLOCK_STATE = "android.permission.READ_OEM_UNLOCK_STATE";
    field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
    field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
    field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
    field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
    field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";
    field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";
+5 −0
Original line number Original line Diff line number Diff line
@@ -1418,6 +1418,11 @@
    <permission android:name="android.permission.DVB_DEVICE"
    <permission android:name="android.permission.DVB_DEVICE"
        android:protectionLevel="signature|privileged" />
        android:protectionLevel="signature|privileged" />


    <!-- @SystemApi Allows reading the OEM unlock state
         @hide <p>Not for use by third-party applications. -->
    <permission android:name="android.permission.READ_OEM_UNLOCK_STATE"
        android:protectionLevel="signature|privileged" />

    <!-- @hide Allows enabling/disabling OEM unlock
    <!-- @hide Allows enabling/disabling OEM unlock
   <p>Not for use by third-party applications. -->
   <p>Not for use by third-party applications. -->
    <permission android:name="android.permission.OEM_UNLOCK_STATE"
    <permission android:name="android.permission.OEM_UNLOCK_STATE"
+16 −6
Original line number Original line Diff line number Diff line
@@ -126,10 +126,20 @@ public class PersistentDataBlockService extends SystemService {
        SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0");
        SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0");
    }
    }


    private void enforceOemUnlockPermission() {
    private void enforceOemUnlockReadPermission() {
        if (mContext.checkCallingOrSelfPermission(Manifest.permission.READ_OEM_UNLOCK_STATE)
                == PackageManager.PERMISSION_DENIED
                && mContext.checkCallingOrSelfPermission(Manifest.permission.OEM_UNLOCK_STATE)
                == PackageManager.PERMISSION_DENIED) {
            throw new SecurityException("Can't access OEM unlock state. Requires "
                    + "READ_OEM_UNLOCK_STATE or OEM_UNLOCK_STATE permission.");
        }
    }

    private void enforceOemUnlockWritePermission() {
        mContext.enforceCallingOrSelfPermission(
        mContext.enforceCallingOrSelfPermission(
                Manifest.permission.OEM_UNLOCK_STATE,
                Manifest.permission.OEM_UNLOCK_STATE,
                "Can't access OEM unlock state");
                "Can't modify OEM unlock state");
    }
    }


    private void enforceUid(int callingUid) {
    private void enforceUid(int callingUid) {
@@ -435,7 +445,7 @@ public class PersistentDataBlockService extends SystemService {


        @Override
        @Override
        public void wipe() {
        public void wipe() {
            enforceOemUnlockPermission();
            enforceOemUnlockWritePermission();


            synchronized (mLock) {
            synchronized (mLock) {
                int ret = nativeWipe(mDataBlockFile);
                int ret = nativeWipe(mDataBlockFile);
@@ -453,7 +463,7 @@ public class PersistentDataBlockService extends SystemService {
                return;
                return;
            }
            }


            enforceOemUnlockPermission();
            enforceOemUnlockWritePermission();
            enforceIsAdmin();
            enforceIsAdmin();


            // Do not allow oem unlock modification if it has been disallowed.
            // Do not allow oem unlock modification if it has been disallowed.
@@ -472,13 +482,13 @@ public class PersistentDataBlockService extends SystemService {


        @Override
        @Override
        public boolean getOemUnlockEnabled() {
        public boolean getOemUnlockEnabled() {
            enforceOemUnlockPermission();
            enforceOemUnlockReadPermission();
            return doGetOemUnlockEnabled();
            return doGetOemUnlockEnabled();
        }
        }


        @Override
        @Override
        public int getFlashLockState() {
        public int getFlashLockState() {
            enforceOemUnlockPermission();
            enforceOemUnlockReadPermission();
            String locked = SystemProperties.get(FLASH_LOCK_PROP);
            String locked = SystemProperties.get(FLASH_LOCK_PROP);
            switch (locked) {
            switch (locked) {
                case FLASH_LOCK_LOCKED:
                case FLASH_LOCK_LOCKED: