Loading packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java +1 −11 Original line number Diff line number Diff line Loading @@ -16,10 +16,7 @@ package com.android.packageinstaller; import static android.content.pm.Flags.usePiaV2; import static com.android.packageinstaller.PackageUtil.getMaxTargetSdkVersionForUid; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.Manifest; import android.app.Activity; Loading @@ -39,7 +36,6 @@ import android.os.Build; import android.os.Bundle; import android.os.Process; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; Loading Loading @@ -69,13 +65,7 @@ public class InstallStart extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(InstallLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(InstallLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading packages/PackageInstaller/src/com/android/packageinstaller/PackageUtil.java +45 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.content.pm.ApplicationInfo; import android.content.pm.Flags; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; Loading @@ -39,6 +40,7 @@ import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.View; import android.widget.ImageView; Loading Loading @@ -402,10 +404,52 @@ public class PackageUtil { return null; } /** * Returns if the version two is enabled. * 1. Currently, the version two is only enabled for the mobile devices * 2. The aconfig usePiaV2 is true * 3. The test settings use_pia_v2 is 1 */ public static boolean isVersionTwoEnabled(@NonNull Context context) { if (isAuto(context) || isTV(context) || isWatch(context)) { Log.d(LOG_TAG, "The device doesn't support PIA version 2"); return false; } boolean testOverrideForPiaV2 = Settings.System.getInt(context.getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = Flags.usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(LOG_TAG, getDebugStringForPiaV2(usePiaV2aConfig, testOverrideForPiaV2)); return true; } Log.d(LOG_TAG, "Use PIA V1"); return false; } private static boolean hasSystemFeature(@NonNull Context context, @NonNull String featureName) { return context.getPackageManager().hasSystemFeature(featureName); } private static boolean isAuto(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_AUTOMOTIVE); } private static boolean isWatch(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_WATCH); } private static boolean isTV(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_TELEVISION) || hasSystemFeature(context, PackageManager.FEATURE_LEANBACK); } /** * Returns a string containing the reason for using Pia V2. Used for debugging purposes */ public static String getReasonForDebug(boolean usePiaV2aConfig, boolean testOverrideForPiaV2) { private static String getDebugStringForPiaV2(boolean usePiaV2aConfig, boolean testOverrideForPiaV2) { StringBuilder sb = new StringBuilder("Using Pia V2 due to: "); boolean aconfigUsed = false; if (usePiaV2aConfig) { Loading packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java +1 −11 Original line number Diff line number Diff line Loading @@ -17,13 +17,10 @@ package com.android.packageinstaller; import static android.Manifest.permission; import static android.content.pm.Flags.usePiaV2; import static android.content.pm.PackageManager.GET_PERMISSIONS; import static android.content.pm.PackageManager.MATCH_ARCHIVED_PACKAGES; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.app.Activity; import android.app.DialogFragment; import android.app.Fragment; Loading @@ -35,7 +32,6 @@ import android.content.pm.PackageInstaller; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Process; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -65,13 +61,7 @@ public class UnarchiveActivity extends Activity { super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveErrorActivity.java +1 −13 Original line number Diff line number Diff line Loading @@ -16,10 +16,6 @@ package com.android.packageinstaller; import static android.content.pm.Flags.usePiaV2; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.app.Activity; import android.app.DialogFragment; import android.app.Fragment; Loading @@ -28,8 +24,6 @@ import android.app.PendingIntent; import android.content.Intent; import android.content.pm.PackageInstaller; import android.os.Bundle; import android.provider.Settings; import android.util.Log; import com.android.packageinstaller.v2.ui.UnarchiveLaunch; Loading @@ -49,13 +43,7 @@ public class UnarchiveErrorActivity extends Activity { public void onCreate(Bundle icicle) { super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(LOG_TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading packages/PackageInstaller/src/com/android/packageinstaller/UninstallerActivity.java +1 −10 Original line number Diff line number Diff line Loading @@ -17,11 +17,9 @@ package com.android.packageinstaller; import static android.app.AppOpsManager.MODE_ALLOWED; import static android.content.pm.Flags.usePiaV2; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static com.android.packageinstaller.PackageUtil.getMaxTargetSdkVersionForUid; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.Manifest; import android.app.Activity; Loading @@ -47,7 +45,6 @@ import android.os.Bundle; import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.Log; import androidx.annotation.NonNull; Loading Loading @@ -93,13 +90,7 @@ public class UninstallerActivity extends Activity { // be stale, if e.g. the app was uninstalled while the activity was destroyed. super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if ((usePiaV2aConfig || testOverrideForPiaV2) && !isTv()) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { boolean returnResult = getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false); Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UninstallLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading Loading
packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java +1 −11 Original line number Diff line number Diff line Loading @@ -16,10 +16,7 @@ package com.android.packageinstaller; import static android.content.pm.Flags.usePiaV2; import static com.android.packageinstaller.PackageUtil.getMaxTargetSdkVersionForUid; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.Manifest; import android.app.Activity; Loading @@ -39,7 +36,6 @@ import android.os.Build; import android.os.Bundle; import android.os.Process; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; Loading Loading @@ -69,13 +65,7 @@ public class InstallStart extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(InstallLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(InstallLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading
packages/PackageInstaller/src/com/android/packageinstaller/PackageUtil.java +45 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.content.pm.ApplicationInfo; import android.content.pm.Flags; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; Loading @@ -39,6 +40,7 @@ import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.View; import android.widget.ImageView; Loading Loading @@ -402,10 +404,52 @@ public class PackageUtil { return null; } /** * Returns if the version two is enabled. * 1. Currently, the version two is only enabled for the mobile devices * 2. The aconfig usePiaV2 is true * 3. The test settings use_pia_v2 is 1 */ public static boolean isVersionTwoEnabled(@NonNull Context context) { if (isAuto(context) || isTV(context) || isWatch(context)) { Log.d(LOG_TAG, "The device doesn't support PIA version 2"); return false; } boolean testOverrideForPiaV2 = Settings.System.getInt(context.getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = Flags.usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(LOG_TAG, getDebugStringForPiaV2(usePiaV2aConfig, testOverrideForPiaV2)); return true; } Log.d(LOG_TAG, "Use PIA V1"); return false; } private static boolean hasSystemFeature(@NonNull Context context, @NonNull String featureName) { return context.getPackageManager().hasSystemFeature(featureName); } private static boolean isAuto(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_AUTOMOTIVE); } private static boolean isWatch(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_WATCH); } private static boolean isTV(@NonNull Context context) { return hasSystemFeature(context, PackageManager.FEATURE_TELEVISION) || hasSystemFeature(context, PackageManager.FEATURE_LEANBACK); } /** * Returns a string containing the reason for using Pia V2. Used for debugging purposes */ public static String getReasonForDebug(boolean usePiaV2aConfig, boolean testOverrideForPiaV2) { private static String getDebugStringForPiaV2(boolean usePiaV2aConfig, boolean testOverrideForPiaV2) { StringBuilder sb = new StringBuilder("Using Pia V2 due to: "); boolean aconfigUsed = false; if (usePiaV2aConfig) { Loading
packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java +1 −11 Original line number Diff line number Diff line Loading @@ -17,13 +17,10 @@ package com.android.packageinstaller; import static android.Manifest.permission; import static android.content.pm.Flags.usePiaV2; import static android.content.pm.PackageManager.GET_PERMISSIONS; import static android.content.pm.PackageManager.MATCH_ARCHIVED_PACKAGES; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.app.Activity; import android.app.DialogFragment; import android.app.Fragment; Loading @@ -35,7 +32,6 @@ import android.content.pm.PackageInstaller; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Process; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -65,13 +61,7 @@ public class UnarchiveActivity extends Activity { super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading
packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveErrorActivity.java +1 −13 Original line number Diff line number Diff line Loading @@ -16,10 +16,6 @@ package com.android.packageinstaller; import static android.content.pm.Flags.usePiaV2; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.app.Activity; import android.app.DialogFragment; import android.app.Fragment; Loading @@ -28,8 +24,6 @@ import android.app.PendingIntent; import android.content.Intent; import android.content.pm.PackageInstaller; import android.os.Bundle; import android.provider.Settings; import android.util.Log; import com.android.packageinstaller.v2.ui.UnarchiveLaunch; Loading @@ -49,13 +43,7 @@ public class UnarchiveErrorActivity extends Activity { public void onCreate(Bundle icicle) { super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if (usePiaV2aConfig || testOverrideForPiaV2) { Log.d(LOG_TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_NAME, getLaunchedFromPackage()); piaV2.putExtra(UnarchiveLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading
packages/PackageInstaller/src/com/android/packageinstaller/UninstallerActivity.java +1 −10 Original line number Diff line number Diff line Loading @@ -17,11 +17,9 @@ package com.android.packageinstaller; import static android.app.AppOpsManager.MODE_ALLOWED; import static android.content.pm.Flags.usePiaV2; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static com.android.packageinstaller.PackageUtil.getMaxTargetSdkVersionForUid; import static com.android.packageinstaller.PackageUtil.getReasonForDebug; import android.Manifest; import android.app.Activity; Loading @@ -47,7 +45,6 @@ import android.os.Bundle; import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.Log; import androidx.annotation.NonNull; Loading Loading @@ -93,13 +90,7 @@ public class UninstallerActivity extends Activity { // be stale, if e.g. the app was uninstalled while the activity was destroyed. super.onCreate(null); boolean testOverrideForPiaV2 = Settings.System.getInt(getContentResolver(), "use_pia_v2", 0) == 1; boolean usePiaV2aConfig = usePiaV2(); if ((usePiaV2aConfig || testOverrideForPiaV2) && !isTv()) { Log.d(TAG, getReasonForDebug(usePiaV2aConfig, testOverrideForPiaV2)); if (PackageUtil.isVersionTwoEnabled(this)) { boolean returnResult = getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false); Intent piaV2 = new Intent(getIntent()); piaV2.putExtra(UninstallLaunch.EXTRA_CALLING_PKG_UID, getLaunchedFromUid()); Loading