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

Commit e6cd1bb1 authored by Sumedh Sen's avatar Sumedh Sen Committed by Android (Google) Code Review
Browse files

Merge "[piav2] Ensure correct originatingUid is set while installing" into main

parents 146453c0 16f2af25
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ class InstallRepository(private val context: Context) {
    var stagedSessionId = SessionInfo.INVALID_ID
        private set
    private var callingUid = Process.INVALID_UID
    private var originatingUid = Process.INVALID_UID
    private var callingPackage: String? = null
    private var sessionStager: SessionStager? = null
    private lateinit var intent: Intent
@@ -148,7 +149,7 @@ class InstallRepository(private val context: Context) {
        }
        val sourceInfo: ApplicationInfo? = getSourceInfo(callingPackage)
        // Uid of the source package, with a preference to uid from ApplicationInfo
        val originatingUid = sourceInfo?.uid ?: callingUid
        originatingUid = sourceInfo?.uid ?: callingUid
        appOpRequestInfo = AppOpRequestInfo(
            getPackageNameForUid(context, originatingUid, callingPackage),
            originatingUid, callingAttributionTag
@@ -282,7 +283,7 @@ class InstallRepository(private val context: Context) {
                    context.contentResolver.openAssetFileDescriptor(uri, "r").use { afd ->
                        val pfd: ParcelFileDescriptor? = afd?.parcelFileDescriptor
                        val params: SessionParams =
                            createSessionParams(intent, pfd, uri.toString())
                            createSessionParams(originatingUid, intent, pfd, uri.toString())
                        stagedSessionId = packageInstaller.createSession(params)
                    }
                } catch (e: Exception) {
@@ -338,6 +339,7 @@ class InstallRepository(private val context: Context) {
    }

    private fun createSessionParams(
        originatingUid: Int,
        intent: Intent,
        pfd: ParcelFileDescriptor?,
        debugPathName: String,
@@ -354,9 +356,7 @@ class InstallRepository(private val context: Context) {
        params.setOriginatingUri(
            intent.getParcelableExtra(Intent.EXTRA_ORIGINATING_URI, Uri::class.java)
        )
        params.setOriginatingUid(
            intent.getIntExtra(Intent.EXTRA_ORIGINATING_UID, Process.INVALID_UID)
        )
        params.setOriginatingUid(originatingUid)
        params.setInstallerPackageName(intent.getStringExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME))
        params.setInstallReason(PackageManager.INSTALL_REASON_USER)
        // Disable full screen intent usage by for sideloads.