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

Commit 32e30714 authored by Songchun Fan's avatar Songchun Fan Committed by Android (Google) Code Review
Browse files

Merge "[pm] clarify error message and comments for app install with RenderScript" into sc-dev

parents c55f7459 69ec21eb
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -401,11 +401,16 @@ final class PackageAbiHelperImpl implements PackageAbiHelper {
                String[] abiList = (cpuAbiOverride != null)
                        ? new String[]{cpuAbiOverride} : Build.SUPPORTED_ABIS;

                // Enable gross and lame hacks for apps that are built with old
                // SDK tools. We must scan their APKs for renderscript bitcode and
                // not launch them if it's present. Don't bother checking on devices
                // that don't have 64 bit support.
                // If an app that contains RenderScript has target API level < 21, it needs to run
                // with 32-bit ABI, and its APK file will contain a ".bc" file.
                // If an app that contains RenderScript has target API level >= 21, it can run with
                // either 32-bit or 64-bit ABI, and its APK file will not contain a ".bc" file.
                // Therefore, on a device that supports both 32-bit and 64-bit ABIs, we scan the app
                // APK to see if it has a ".bc" file. If so, we will run it with 32-bit ABI.
                // However, if the device only supports 64-bit ABI but does not support 32-bit ABI,
                // we will fail the installation for such an app because it won't be able to run.
                boolean needsRenderScriptOverride = false;
                // No need to check if the device only supports 32-bit
                if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && cpuAbiOverride == null
                        && NativeLibraryHelper.hasRenderscriptBitcode(handle)) {
                    if (Build.SUPPORTED_32_BIT_ABIS.length > 0) {
@@ -414,7 +419,8 @@ final class PackageAbiHelperImpl implements PackageAbiHelper {
                    } else {
                        throw new PackageManagerException(
                                INSTALL_FAILED_CPU_ABI_INCOMPATIBLE,
                                "Apks with renderscript are not supported on 64-bit only devices");
                                "Apps that contain RenderScript with target API level < 21 are not "
                                        + "supported on 64-bit only platforms");
                    }
                }