Loading src/com/android/settings/supervision/ConfirmSupervisionCredentialsActivity.kt +6 −7 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Binder import android.os.Bundle import android.os.CancellationSignal import android.os.Process import android.os.UserHandle import android.util.Log import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.OpenForTesting Loading Loading @@ -99,7 +100,9 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (!callerHasSupervisionRole() && !callerIsSystemUid()) { errorHandler() errorHandler( "Calling uid ${Binder.getCallingUid()} is not supervision role holder or SYSTEM_UID." ) return } Loading Loading @@ -179,11 +182,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { private fun callerIsSystemUid(): Boolean { val callingUid = Binder.getCallingUid() if (callingUid != Process.SYSTEM_UID) { Log.w(TAG, "callingUid: $callingUid is not SYSTEM_UID") return false } return true return UserHandle.getAppId(callingUid) == Process.SYSTEM_UID } @RequiresPermission(anyOf = [INTERACT_ACROSS_USERS_FULL, MANAGE_USERS]) Loading @@ -200,7 +199,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { } private fun errorHandler(errStr: String? = null) { errStr?.let { Log.w(TAG, it) } errStr?.let { Log.e(TAG, it) } setResult(RESULT_CANCELED) finish() } Loading tests/robotests/src/com/android/settings/supervision/ConfirmSupervisionCredentialsActivityTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ class ConfirmSupervisionCredentialsActivityTest { @Test @Config(sdk = [Build.VERSION_CODES.BAKLAVA]) fun onCreate_callerIsSystemUid_doesNotFinish() { ShadowBinder.setCallingUid(Process.SYSTEM_UID) ShadowBinder.setCallingUid( UserHandle.getUid(/* userId= */ 2, /* appId= */ Process.SYSTEM_UID) ) mockUserManager.stub { on { users } doReturn listOf(SUPERVISING_USER_INFO) } mockActivityManager.stub { on { startProfile(any()) } doReturn true } mockKeyguardManager.stub { on { isDeviceSecure(SUPERVISING_USER_ID) } doReturn true } Loading Loading
src/com/android/settings/supervision/ConfirmSupervisionCredentialsActivity.kt +6 −7 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Binder import android.os.Bundle import android.os.CancellationSignal import android.os.Process import android.os.UserHandle import android.util.Log import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.OpenForTesting Loading Loading @@ -99,7 +100,9 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (!callerHasSupervisionRole() && !callerIsSystemUid()) { errorHandler() errorHandler( "Calling uid ${Binder.getCallingUid()} is not supervision role holder or SYSTEM_UID." ) return } Loading Loading @@ -179,11 +182,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { private fun callerIsSystemUid(): Boolean { val callingUid = Binder.getCallingUid() if (callingUid != Process.SYSTEM_UID) { Log.w(TAG, "callingUid: $callingUid is not SYSTEM_UID") return false } return true return UserHandle.getAppId(callingUid) == Process.SYSTEM_UID } @RequiresPermission(anyOf = [INTERACT_ACROSS_USERS_FULL, MANAGE_USERS]) Loading @@ -200,7 +199,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() { } private fun errorHandler(errStr: String? = null) { errStr?.let { Log.w(TAG, it) } errStr?.let { Log.e(TAG, it) } setResult(RESULT_CANCELED) finish() } Loading
tests/robotests/src/com/android/settings/supervision/ConfirmSupervisionCredentialsActivityTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ class ConfirmSupervisionCredentialsActivityTest { @Test @Config(sdk = [Build.VERSION_CODES.BAKLAVA]) fun onCreate_callerIsSystemUid_doesNotFinish() { ShadowBinder.setCallingUid(Process.SYSTEM_UID) ShadowBinder.setCallingUid( UserHandle.getUid(/* userId= */ 2, /* appId= */ Process.SYSTEM_UID) ) mockUserManager.stub { on { users } doReturn listOf(SUPERVISING_USER_INFO) } mockActivityManager.stub { on { startProfile(any()) } doReturn true } mockKeyguardManager.stub { on { isDeviceSecure(SUPERVISING_USER_ID) } doReturn true } Loading