From 6a87d217c782990e454201890215485d13f142be Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Tue, 29 Jun 2021 02:17:11 +0100 Subject: [PATCH] Enable appsearch to perform its own hidden API processing Previously, the hidden API encoding of the appsearch boot dex jars, i.e. those dex jars that appsearch contributes to the bootclasspath were done as part of the monolithic hidden API processing. This change causes the encoding to be done by the appsearch's bootclasspath_fragment. This change involves the following: * Addition of the fragments property to the appsearch's bootclasspath_fragment module to list all the other bootclasspath_fragment modules on which this depends. * Addition of the additional_stubs property to add stubs for APIs that are not provided by another bootclasspath_fragment. The build automatically checks that the hidden API flags which are computed by appsearch and encoded into its boot dex jars match those that are generated by the monolithic processing so this is guaranteed to be safe. Bug: 179354495 Test: m com.android.appsearch - ensure that the generated APEX is byte-for-byte identical before and after these changes. m out/soong/hiddenapi/hiddenapi-flags.csv - make sure that they are not changed by this. Change-Id: I8e5a60d64d3e147535e11a4ad30404f9888f53d2 --- apex/appsearch/Android.bp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apex/appsearch/Android.bp b/apex/appsearch/Android.bp index 827842633942e..ac97e04020a06 100644 --- a/apex/appsearch/Android.bp +++ b/apex/appsearch/Android.bp @@ -50,6 +50,20 @@ bootclasspath_fragment { name: "com.android.appsearch-bootclasspath-fragment", contents: ["framework-appsearch"], apex_available: ["com.android.appsearch"], + + // The bootclasspath_fragments that provide APIs on which this depends. + fragments: [ + { + apex: "com.android.art", + module: "art-bootclasspath-fragment", + }, + ], + + // Additional stubs libraries that this fragment's contents use which are + // not provided by another bootclasspath_fragment. + additional_stubs: [ + "android-non-updatable", + ], } // Encapsulate the contributions made by the com.android.appsearch to the systemserverclasspath.