From 5f3fec31fff56b58422a11ebcccd950607cf5071 Mon Sep 17 00:00:00 2001 From: Unsuk Jung Date: Thu, 21 Jun 2018 01:23:26 -0700 Subject: CDD: Don't require any more the 32-bit equivalent ABIs for 64-bit devices With 64-bit ABIs being introduced some time ago, and more apps and system servers on the path to have 64-bit implementations, the need to support 32-bit equivalent pairs of the 64-bit ABIs has been diminshing. This change will open the path to introduce 64-bit only devices. Bug: 80085042 Test: n/a Change-Id: I55b31e87363dc89b73093568d07639e0230ca245 --- 3_software/3_3_native-api-compatibility.md | 60 +++++++++++++++--------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/3_software/3_3_native-api-compatibility.md b/3_software/3_3_native-api-compatibility.md index 1fe7f371..5a8eb57c 100644 --- a/3_software/3_3_native-api-compatibility.md +++ b/3_software/3_3_native-api-compatibility.md @@ -24,20 +24,19 @@ Device implementations: * [C-0-3] MUST be source-compatible (i.e. header-compatible) and binary-compatible (for the ABI) with each required library in the list below. -* [C-0-4] MUST support the equivalent 32-bit ABI if any 64-bit ABI is - supported. * [C-0-5] MUST accurately report the native Application Binary Interface (ABI) supported by the device, via the `android.os.Build.SUPPORTED_ABIS`, `android.os.Build.SUPPORTED_32_BIT_ABIS`, and `android.os.Build.SUPPORTED_64_BIT_ABIS` parameters, each a comma separated list of ABIs ordered from the most to the least preferred one. -* [C-0-6] MUST report, via the above parameters, only those ABIs documented - and described in the latest version of the - [Android NDK ABI Management documentation]( - https://developer.android.com/ndk/guides/abis.html), and MUST include - support for the [Advanced SIMD]( - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html) - (a.k.a. NEON) extension. +* [C-0-6] MUST report, via the above parameters, a subset of the following + list of ABIs and MUST NOT report any ABI not on the list. + + * `armeabi` + * `armeabi-v7a` + * `arm64-v8a` + * `x86` + * `x86-64` * [C-0-7] MUST make all the following libraries, providing native APIs, available to apps that include native code: @@ -78,7 +77,7 @@ Device implementations: Note that while all the symbols MUST be present, section 7.1.4.1 describes in more detail the requirements for when the full implementation of each corresponding functions are expected. -* [C-0-12] MUST export function symbols for the core Vulkan 1.1 function +* [C-0-12] MUST export function symbols for the core Vulkan 1.0 function symbols, as well as the `VK_KHR_surface`, `VK_KHR_android_surface`, `VK_KHR_swapchain`, `VK_KHR_maintenance1`, and `VK_KHR_get_physical_device_properties2` extensions through the @@ -88,32 +87,35 @@ Device implementations: * SHOULD be built using the source code and header files available in the upstream Android Open Source Project -Note that future releases of the Android NDK may introduce support for -additional ABIs. +Note that future releases of Android may introduce support for additional +ABIs. ### 3.3.2. 32-bit ARM Native Code Compatibility -If device implementations are 64-bit ARM devices, then: +If device implementations report the support of the `armeabi` ABI, they: -* [C-1-1] Although the ARMv8 architecture deprecates several CPU operations, - including some operations used in existing native code, the following - deprecated operations MUST remain available to 32-bit native ARM code, - either through native CPU support or through software emulation: +* [C-3-1] MUST also support `armeabi-v7a` and report its support, as + `armeabi` is only for backwards compatibility with older apps. - * SWP and SWPB instructions - * SETEND instruction - * CP15ISB, CP15DSB, and CP15DMB barrier operations +If device implementations report the support of the `armeabi-v7a` ABI, for apps +using this ABI, they: -If device implementations include a 32-bit ARM ABI, they: - -* [C-2-1] MUST include the following lines in `/proc/cpuinfo` when it is read - by 32-bit ARM applications to ensure compatibility with applications built - using legacy versions of Android NDK. +* [C-2-1] MUST include the following lines in `/proc/cpuinfo`, and SHOULD NOT + alter the values on the same device, even when they are read by other ABIs. * `Features: `, followed by a list of any optional ARMv7 CPU features - supported by the device. + supported by the device. * `CPU architecture: `, followed by an integer describing the device's - highest supported ARM architecture (e.g., "8" for ARMv8 devices). + highest supported ARM architecture (e.g., "8" for ARMv8 devices). + +* [C-2-2] MUST always keep the following operations available, even in the + case where the ABI is implemented on an ARMv8 architecture, either through + native CPU support or through software emulation: + + * SWP and SWPB instructions. + * SETEND instruction. + * CP15ISB, CP15DSB, and CP15DMB barrier operations. -* SHOULD not alter `/proc/cpuinfo` when read by 64-bit ARM or non-ARM - applications. +* [C-2-3] MUST include support for the [Advanced SIMD]( + http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html) + (a.k.a. NEON) extension. \ No newline at end of file -- cgit v1.2.3 From 70c4020c1effa17511aa979d2114dc0bb1d7b19d Mon Sep 17 00:00:00 2001 From: sachiyo Date: Tue, 17 Jul 2018 11:05:22 -0700 Subject: CDD: Handheld: Require Lockdown mode and sleep timeout for devices with secure lock screen - Ensure the consistent security among handheld devices -Bug:76434535, 73723272 Change-Id: Ic85fce3b71a771eba355830e7374b7517d3fc12a --- 2_device-types/2_2_handheld-reqs.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/2_device-types/2_2_handheld-reqs.md b/2_device-types/2_2_handheld-reqs.md index 946e26cc..fcf4446b 100644 --- a/2_device-types/2_2_handheld-reqs.md +++ b/2_device-types/2_2_handheld-reqs.md @@ -386,3 +386,14 @@ provide a user-accessible mechanism to grant or revoke access to such apps in response to the [`android.settings.ACTION_USAGE_ACCESS_SETTINGS`]( https://developer.android.com/reference/android/provider/Settings.html#ACTION_USAGE_ACCESS_SETTINGS) intent. + +When Handheld device implementations support a secure lock screen, they: + +* [[9.11](#9_11_permissions)/H-1-1] MUST allow the user to choose the shortest + sleep timeout, that is a transition time from the unlocked to the locked + state, as 15 seconds or less. +* [[9.11](#9_11_permissions)/H-1-2] MUST provide user affordance to hide + notifications and disable all forms of authentication except for the + primary authentication described in + [9.11.1 Secure Lock Screen](#9_11_1_secure-lock-screen). The AOSP meets the + requirement as lockdown mode. \ No newline at end of file -- cgit v1.2.3