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

Commit 4a9ad356 authored by Songchun Fan's avatar Songchun Fan Committed by Song Chun Fan
Browse files

[PIA] add missing flag checks

This only prevents PIA from crashing. Install-unknown-source still won't
work until the flag is enabled.

BUG: 322928097
Test: builds

Change-Id: I9fc357000d20de7a2002ac8b7f5b2dae617fc354
parent 4a3070f8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.content.res.AssetFileDescriptor.UNKNOWN_LENGTH;

import static com.android.packageinstaller.PackageInstallerActivity.EXTRA_STAGED_SESSION_ID;

import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -27,10 +28,10 @@ import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.Flags;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.content.res.AssetFileDescriptor;
import android.Manifest;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -200,7 +201,7 @@ public class InstallStaging extends Activity {
        params.setPermissionState(Manifest.permission.USE_FULL_SCREEN_INTENT,
                PackageInstaller.SessionParams.PERMISSION_STATE_DENIED);

        if (pfd != null) {
        if (pfd != null && Flags.readInstallInfo()) {
            try {
                final PackageInstaller.InstallInfo result = installer.readInstallInfo(pfd,
                        debugPathName, 0);
+5 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.Flags;
import android.content.pm.InstallSourceInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
@@ -397,7 +398,10 @@ public class PackageInstallerActivity extends Activity {
            final int sessionId = intent.getIntExtra(PackageInstaller.EXTRA_SESSION_ID,
                    -1 /* defaultValue */);
            final SessionInfo info = mInstaller.getSessionInfo(sessionId);
            String resolvedPath = info != null ? info.getResolvedBaseApkPath() : null;
            String resolvedPath = null;
            if (info != null && Flags.getResolvedApkPath()) {
                resolvedPath = info.getResolvedBaseApkPath();
            }
            if (info == null || !info.isSealed() || resolvedPath == null) {
                Log.w(TAG, "Session " + mSessionId + " in funky state; ignoring");
                finish();
+4 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.Flags
import android.content.pm.PackageInfo
import android.content.pm.PackageInstaller
import android.content.pm.PackageInstaller.SessionInfo
@@ -362,7 +363,7 @@ class InstallRepository(private val context: Context) {
        params.setPermissionState(
            Manifest.permission.USE_FULL_SCREEN_INTENT, SessionParams.PERMISSION_STATE_DENIED
        )
        if (pfd != null) {
        if (pfd != null && Flags.readInstallInfo()) {
            try {
                val installInfo = packageInstaller.readInstallInfo(pfd, debugPathName, 0)
                params.setAppPackageName(installInfo.packageName)
@@ -425,7 +426,8 @@ class InstallRepository(private val context: Context) {

        if (PackageInstaller.ACTION_CONFIRM_INSTALL == intent.action) {
            val info = packageInstaller.getSessionInfo(sessionId)
            val resolvedPath = info?.resolvedBaseApkPath
            val resolvedPath =
                    if (Flags.getResolvedApkPath()) info?.resolvedBaseApkPath else null
            if (info == null || !info.isSealed || resolvedPath == null) {
                Log.w(LOG_TAG, "Session $sessionId in funky state; ignoring")
                return InstallAborted(ABORT_REASON_INTERNAL_ERROR)