Add variables for the hidden API blacklist and dark and light greylist
files. These are text files with signatures of boot class path class
member with restricted access for non-platform code.
Bug: 64382372
Test: m
Change-Id: I5639c5269872ac626efc69bd3a374a7a7125d502
Earlier, we would use the prebuilt directly, which doesn't go through
build optimizations like uncompressing the dex files.
bug: 63920015
Test: m -j32 && verify priv-apps prebuilt's vdex don't contain
the dex code.
Change-Id: I1a69d3b6832e3a940616f71a95c13091a4220b4b
We need to prevent vendors from using old VNDK and SystemSDK versions
for newly launched device. Otherwise, deprecating old versions of the
APIs would be really difficult.
Specifically, it is enforced that
PRODUCT_SHIPPING_API_LEVEL <= BOARD_VNDK_VERSION
PRODUCT_SHIPPING_API_LEVEL <= min(BOARD_SYSTEMSDK_VERSIONS)
Bug: 72126206
Test: manually setting BOARD_VNDK_VERSION to 24 in
device/google/wahoo/BoardConfig.mk and choosecom to walleye
Test: m -j shows an error on BOARD_VNDK_VERSION
Test: BOARD_SYSTEMSDK_VERSION="25 26" m -j shows an error on
BOARD_SYSTEMSDK_VERSION
Change-Id: I17646487a9c77a6a5110749e22ba47f0f75920cf
This file is used to verify that all differences between /system
boot*.art and /data/dalvik-cache boot*.art only consist of relocation
changes. The goal is to mitigate /data/dalvik-cache boot*.art files
being a persistence vector.
Test: Build and ensure boot.art.rel files are on the image.
Bug: 66697305
Change-Id: I68c445da46b2d3099ee347a04af4fbb84da85b0d
This reverts commit d616e0e820.
Reason for revert: b/72207339 - user builds are failing with this change
Bug: 72207339
Bug: 66697305
Change-Id: Ia309d04d837851ae11518f05aca468ecca895e6f
Test: Before the revert, taimen-user does not build. After the revert taimen-user builds
PLATFORM_SYSTEMSDK_VERSIONS is the list of System SDK versions that the
platform is supporting. Contrary to the public SDK where platform
essentially supports all previous SDK versions, platform support only a
few recent System SDK versions, since some of old System APIs are
gradually deprecated, removed from the following SDKs and then finally
deleted from the platform. This will be part of the framework manifest.
The list can be specified by setting PLATFORM_SYSTEMSDK_MIN_VERSION. If
it is set to an old version number, then System SDKs from the version
to the current version (PLATFORM_SDK_VERSION) are considered to be
supported by the platform. If PLATFORM_SYSTEMSDK_MIN_VERSION is not set,
only the latest System SDK version is supported.
Next, BOARD_SYSTEMSDK_VERSIONS is the list of System SDK versions that
the device is using. This is put to the device compatibility matrix
device is using. The device and the platform is considered as compatible
only BOARD_SYSTEMSDK_VERSIONS in the device compatibility matrix are
in the PLATFORM_SYSTEMSDK_VERSIONS in the framework manifest.
When BOARD_SYSTEMSDK_VERSIONS is set, a Java app or library in vendor or
odm partitions which didn't specify LOCAL_SDK_VERSION is forced to use
System SDK. Also, the build system does the additional integrity check
to ensure that LOCAL_SDK_VERSION is within BOARD_SYSTEMSDK_VERSIONS or
PLATFORM_SYSTEMSDK_VERSIONS (if BOARD_SYSTEMSDK_VERSIONS isn't set).
Bug: 69088799
Test: m -j
Test: BOARD_SYSTEMSDK_VERSIONS=P m -j
Change-Id: If4d59f6030e4cc402e015701d0caf94aeec37263
- Move logic to uncompress dexs in an APK in dex_preopt_odex_install.mk
and definitions.mk.
- Explicitly mark nostripping cases where dexpreopt will not embed the dex
file in the APK.
bug: 63920015
Test: m
Test: verify priv-apps dexs are uncompressed and unstripped
Test: Verify a non priv-app APK with uncompressed dex doesn't get stripped.
Change-Id: I624a03e3d965cebc0cae43fd6f7a6260178e6b8a
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.
Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Merged-In: Ifc1279a360b140c4d94edd32db7de3c6c7317297
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
(cherry picked from commit 2528cd26c0)
This file is used to verify that all differences between /system
boot*.art and /data/dalvik-cache boot*.art only consist of relocation
changes. The goal is to mitigate /data/dalvik-cache boot*.art files
being a persistence vector.
Test: Build and ensure boot.art.rel files are on the image.
Bug: 66697305
Change-Id: I41486dd541e429f2f2b4c4a521009ee5e81e50b9
This causes an unsatisfiable dependency on frameworks/base.
Bug: 67663308
Test: make
(cherry-picked from commit 83bae866e6)
Change-Id: Iba0c3893b49386591f84eb893abf0b577b9716a0
Merged-In: I06e45e8ca66ab6547bf1df25119dda80d44e50f6
Use profile based boot image instead of the compiled classes version.
Results using profile from ag/2815407
Storage savings:
Boot art+vdex+oat size: 78305556->61539326 (-17MB)
New system server profile has more methods (1.5MB -> 4MB oat) since it
has more coverage from use cases.
Ram savings (sample averages for CUJ test):
Average PSS of 3 runs (~100 samples total):
.Boot_vdex: 9359K -> 9902K
.oat_mmap: 21857K -> 13372K
.Heap: 29779K -> 29483K
.Boot_art: 15736K -> 18096K
.LinearAlloc: 9112K -> 8965K
Total PSS: 85846K -> 79819K (-6MB)
Average pages read from flash (512MB device) for CUJ tests (3 samples):
1508MB -> 1183MB
Bug: 37966211
Test: make and flash
(cherry-picked from commit bf9023ae7a)
Change-Id: Icf3039ef871b68d806ef7b7c8ad2220c3a37ce90
Merged-In: Id8f9b08490a50e2ccf39e8acc00b0c4e8ec782b0
Enables signed and unsigned integer overflow sanitization on-by-default
for modules in frameworks/ and system/ by using the integer_overflow
sanitization setting. This applies sanitization to dynamically linked
binaries and shared libraries, and comes with a default set of regex for
functions to exclude from sanitization.
(see build/soong/cc/config/integer_overflow_blacklist.txt)
Prepare to enable minimal runtime diagnostics for integer overflow
sanitization on userdebug and eng builds.
Adds an additional Make and product variable pair to apply integer
overflow sanitization by default to additional code paths.
Bug: 30969751
Bug: 63927620
Test: Included paths are being sanitized.
Test: CTS test suite run on Pixel, runtime errors resolved.
Test: Performance impact in benchmarks acceptable.
Test: Boot-up successful on current Google devices.
Test: Teamfooded in diagnostics mode on Pixel for a month.
Test: Phone calls, camera photos + videos, bluetooth pairing.
Test: Wifi, work profiles, streaming videos, app installation.
Test: Split-screen, airplane mode, battery saver.
Test: Toggling accessibility settings.
Change-Id: Icc7a558c86f8655267afb4ca01b316773325c91a
Doclava now generates new API signature files. Add their filenames
to config.mk.
Bug: 64382372
Test: make
Change-Id: I6aed1b2e0575ddb8c89cea5fa7709023eb6f30a3
This build variable is unnecessary now that GCC is completely
unsupported for Android platform builds.
Bug: http://b/64032869
Test: Builds
Change-Id: I9d44ebd7129cb2bdfbb26d37922db19c6fb9efc9
libc++'s headers are annotated with availability macros that indicate
which version of Mac OS was the first to ship with a libc++ feature
available in its *system's* libc++.dylib. We do not use the system's
library, but rather ship our own. As such, these availability
attributes are meaningless for us but cause build breaks when we try
to use code that would not be available in the system's dylib.
Test: removed the darwin check and checked showcommands on linux
Bug: None
Change-Id: I5f69f337baa29fcdf84b5e2fe46bf4f85904d1cd
Specifying this option causes the make target's sources
and classpath dependencies to be patched into the specified
module via --patch-module (if the build toolchain implements
the module system, ie. when targeting 1.9). This allows tests
to compile that have classes in packages under test.
Currently, only java.base is on the module path (everything
else is on the classpath), and only when using -target 1.9
(ie. EXPERIMENTAL_USE_OPENJDK9=true).
Bug: 71699916
Test: Treehugger
Test: Checked that I was able to compile some ojluni & icu
test sources that had classes in (libcore) packages
under test.
Change-Id: I044fb9d904754ed281f574ab3dd52235cf0d7fec
This properly sets -format=gnu for all non-Darwin targets, because
llvm-ar is cross-platform (but defaults to the host environment).
Bug: http://b/71618641
Test: m checkbuild
Change-Id: Ib5d1c112a4ac792a11d1a0721ae6b0a5f9a42727
This architecture only existed for unbundled use, but even the NDK is
removing support in their r17 release, so just remove support for it.
Test: build/soong/build_test.bash -only-config
Test: check buildserver configs, I don't see anything still using armv5
Change-Id: Ic183b510c9ada94438bd4cc2b9362fa438a29ced
Currently we determine if a test artifact has multiple build
outputs by checking if it is NATIVE_TEST, NATIVE_BENCHMARK, or
LOCAL_MULTILIB and declare the module is_native.
This is technically not true therefore let's use a different
variable to determine if we need multiple architecture directories.
Bug: 71554249
Test: make sl4a -j ; Results in an autogenerated empty configuration file.
Change-Id: I17c8f3ef7e1cd502b57e25c71688f12a35a9787d
Static libraries using the system STL have type
native:ndk:system:none, not native:ndk:system:shared, since no
actually linking takes place. These are still allowed to be linked to
platform modules.
Test: make checkbuild
Bug: None
Change-Id: Ib999bb0f422ec3938daa740fca5681e153d6525a
llvm-ar is required for platform LTO build.
With GNU ar, we used crsPD flags, however 'P' flag is not supported by
llvm-ar. Since none of the platform archive files are built using third
party AR, the 'P' flag should not matter to us. However we've been
relying on one side-effect of 'P', where 'ar foo.a some/path/to/obj.o'
when foo.a already has a file named 'obj.o' will be an append operation,
regardless whether the existing one is the same (ar has no way of
telling the difference). We workaround this by always appending ('q'
flag) for llvm-ar. This may result in larger intermediate archive files
(more duplication) but will not affect the final build result.
Bug: 71618641
Test: m checkbuild
Change-Id: Id96a244cfe49cecfba08cc868dd18934ecb4ff23
* changes:
Clear resource_export_package outside conditionals
Fix adbs after move from build/tools to build/make/tools
Use proguard.jacoco.flags for EMMA_INSTRUMENT_STATIC
When generating VNDK snapshot, BOARD_VNDK_RUNTIME_DISABLE must not be
'true' to have correct ld.config.txt file.
Bug: 71349776
Test: lunch aosp_arm64_ab-user; make -j vndk dist
Change-Id: I20b14addb2f4a191134a1a9943e328566ca48424
$(resource_export_package) is used by package_internal.mk outside
ifeq ($(need_compile_res),true), but only cleared inside the
conditional. This causes unnecessary dependencies to be added
to an old value of $(resource_export_package). In rare cases,
the dependency can be on itself, causing a dependency loop.
Bug: 71571462
Test: m checkbuild
Change-Id: I9fda7fe3bf9d208ad4ba2f8cdb184034bf43f044
This is cherry-picked from attempt 3, which was reverted
due to http://b/70862583.
Before this CL topic, the build toolchain for .java source files
used OpenJDK 8, targeting 1.8 (v52 class files) by default.
This CL topic switches the default to OpenJDK 9, but still
targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE
is set to true, then the default remains OpenJDK 8.
Code in the Android platform should generally be unaffected,
but if host tools that are now compiled and run using
OpenJDK 9 are causing problems for your team, then let me
know.
To manually switch back to the old behavior for now (continue
using OpenJDK 8), run this command in your shell:
export EXPERIMENTAL_USE_OPENJDK9=false
Bug: 69449021
Test: Treehugger
Test: art/test/testrunner/run_build_test_target.py -j40 art-interpreter
Test: dalvik/dx/tests/run-all-tests
(cherry picked from commit ab1e54d5f1)
Change-Id: I119be15bd95747722114b970400b740fa47bf9e0
Merged-in: Ic42a518c90515b497e5cecec444ded373e403a4b
* clang -fno-caret-diagnostics
suppresses warning source lines, carets, and
the stats line of "n warnings generated"
* clang-tidy -extra-arg-before=-fno-caret-diagnotics
only suppresses the "n warnings generated" line.
* Pass this flag and -quiet to clang-tidy when
WITH_TIDY is not 1 or true.
* Remove redundant quotation marks around -extra-arg-before.
Bug: 69051430
Test: normal build and build with WITH_TIDY=1
Change-Id: I9021ee315edc977c15dda6ab246a00182f31fad1
VNDK snapshot phony package, vndk_v$VER, is redefined to
separate phony packages per VNDK snapshot build variant,
vndk_v$VER_$VARIANT, where $VARIANT is defined as the primary
$TARGET_ARCH of the build target.
Accordingly, top level Android.bp file under prebuilts/vndk/v$VER
is redefined as separate Android.bp files for each snapshot
variant at prebuilts/vndk/v$VER/$VARIANT/Android.bp.
Test: m -j PRODUCT_EXTRA_VNDK_VERSIONS=27 (after installing
snapshot to prebuilts/vndk/v27)
Bug: 71370248
Change-Id: Ida449978090fe8a4f16376c991d34fa0945be596
Redefine VNDK snapshot top level dir with $(TARGET_PRODUCT) and
additionally package TARGET_2ND_ARCH build variants of libs since
they are needed by 32bit processes running on a 64bit device.
Test: m -j vndk dist
Bug: 71370248
Change-Id: I8c6953f1b52b61caf413559bab56b294479b6d86
The suffix for VNDK config files ld.config.txt,
llndk.libraries.txt, and vndksp.libraries.txt has been changed to
*.$(PLATFORM_VNDK_VERSION).txt.
Refactor the paths-of-intermediates function such that instead of
parsing filenames from list of modules within the function,
provide the function a list of preprocessed
module_name:file_name pairs.
Bug: 70918357
Test: m -j vndk dist
Change-Id: I2d69b7822cef4c709e15a53f99c7ab2efb22406c
Move R8_COMPAT_PROGUARD definition to Soong.
Copy the proguard_dictionary file so that the find
command that builds proguard_dict.zip can find it.
Test: m checkbuild
Change-Id: I28b2fce26ccb6225be0bd71802a43fe63df85daa
Add proguard.jacoco.flags whenever EMMA_INSTRUMENT_STATIC is set
so that com.vladium.emma.rt.RT is not stripped.
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true
Change-Id: Ie64a283d95e8bbf426cd39675d70a3a58768ebc7
The dependency on the Soong jacoco report classes was mistakenly
using $(common_javalib.jar) which was never set, so was using
the value from the last module. Use $(LOCAL_BUILT_MODULE)
instead.
Test: m checkbuild
Change-Id: If502d67f9e5e0c107de44e96cbf232406c027e44
None of the system options are controversial, and there are no
longer any users of nosystem, so remove it.
Test: m checkbuild
Change-Id: Id1b946d83688d266ca2942c02c97e8b404c3755b
Bug: 70981774,69929803
Test: Modify tools/auto_gen_test_config.py, confirm the test config file
is updated.
Change-Id: I55bd07c8bdc6e26f9c8ad6df733d2c5da09d0ceb
R8 will replace desugar+proguard+dx, which will mean jacoco has to
run before desugar. In preparation, move jacoco before desugar now.
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I0627a79ba2f0b26a113d5d8bcc5cb1fda08295a1
LOCAL_PROGUARD_ENABLED := shrinktests is never set.
proguard_tests.flags is entirely comments.
proguard.emma.flags only references emma classes, but we use
jacoco now.
Test: m checkbuild
Change-Id: I84a59a8c1b66f75d7ccbaa7da8e937430b4490c8
Test: m Contacts, classes-proguard.jar has same contents
Test: rm -rf out; tapas Contacts; m
Change-Id: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
Merged-In: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
(cherry picked from commit 1417c177ac)
Introduces DEVICE_FRAMEWORK_MANIFEST_FILE, a list
of files which are added to system/manifest.xml.
This is required for devices to properly display
what hals they implement and also therefore for
them to pass vts_treble_vintf_test since it
now tests manifests based on hal origin.
Notice, this is named singularly to match
DEVICE_MANIFEST_FILE which is also a list of files.
They may be better both named "FILES", but for
consistency and legacy reasons, they can be thought
of as "everything that composes the X manifest
file".
Fixes: 70042049
Test: add system manifest extension which needs it
and it no longer fails vts_treble_vintf_test for
hals being served from the wrong partitions.
Change-Id: I1f59d5c3cadb7a7d4576b73196ca7b41103a49c5
"make check_emu_boot" will boot up emulator
and check whether it boots up or timed out.
On boot success, it will emit a file
BOOT_SUCCESS.txt in dist_dir;
On timed out, it will emit a file
BOOT_FAIL.txt in dist_dir
original cl breaks some build, and this
fixes it by incorporating the following cl
https://android-review.googlesource.com/c/platform/build/+/576282
Test: choosecombo 1 aosp_arm64_ab userdebug
m -j checkbuild tests
Test: make check_emu_boot
Change-Id: I09cba4f8fde672f9ea685dee1c0c108f2c457e2a
This reverts commit bba0ef24c2.
Reason for revert: Broke aosp_arm64_ab-userdebug build on internal master.
Change-Id: I04ca552174bc2731cb69ee8485d50f4c190c0d27
"make check_emu_boot" will boot up emulator
and check whether it boots up or timed out.
On boot success, it will emit a file
BOOT_SUCCESS.txt in dist_dir;
On timed out, it will emit a file
BOOT_FAIL.txt in dist_dir.
Change-Id: I152228806175c116a5adceb8429b66cf829edd22
The two make vars are exported to soong as OdmPath and OemPath.
Bug: 68187740
Test: out/soong/soong.variables has OdmPath and OemPath each of which
points to 'odm' and 'oem'.
Change-Id: Ia283e4eb4aacc61b5b3c46e9001ea924566ea898
Host (as opposed to hostdex) tools compile and run against OpenJDK's
core libraries. Before this CL, the core libraries of the default
toolchain were always used, even when targeting an earlier language
version.
This meant that code that uses APIs from a later version of OpenJDK
than corresponded to LOCAL_JAVA_LANGUAGE_VERSION would compile, but
would fail to run under that earlier version of OpenJDK. It also
meant that calls to existing APIs might be reinterpreted; for
example, the return type of java.nio.ByteBuffer.clear() changed from
Buffer in OpenJDK 8 to ByteBuffer in OpenJDK 9. At compile time, this
was noted via the warning:
bootstrap class path not set in conjunction with -source 1.8
After this CL, when targeting a language version <= 1.8 (which is
always the case when building with OpenJDK 8), some of OpenJDK 8's
core library/tools jars are now passed on the bootclasspath. The
decision to include the bootclasspath argument when building with
OpenJDK 8 was somewhat arbitrary, but has the advantage that we
discover any issues before we switch to OpenJDK 9.
Even when compiling with OpenJDK 9, use of OpenJDK 9 APIs will now
fail at compile time rather than at runtime; calls to existing APIs
will now be interpreted in OpenJDK 8 rather than 9 fashion. For
example, this means that dx and host-side CTS tests built with
OpenJDK 9 javac -target 1.8 will be runnable under OpenJDK 8.
Bug: 70521453
Bug: 70862583
Test: Checked that the bootclasspath argument was passed
in the javac invocation targeting 1.8 during:
make showcommands compatibility-common-util-hostsidelib
Test: make checkbuild
Change-Id: I9b6081edfdd2c3e9a450ae8a39c4e32c3d2cda92
classes-no-debug-var.jar is incorrect, jars in coverage builds
do have debug information. Remove full_classes_compiled_jar_leaf
and hardcode classes-full-debug.jar.
After the previous patch, all dex files have debug information,
so remove the no-local and with-local directories and replace
them with dex/.
Remove the unnecessary jarjar_leaf.
Bug: 70886092
Test: m checkbuild
Change-Id: I63eace8f8cda5ad8bc0cbd11eefda73dd063ed76
We use jacoco for coverage now instead of emma, so the workaround
is no longer necessary.
Bug: 70886092
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false
Change-Id: I103cbe58590689640a0b1520d22b3d3b7cd2208d
For Android P or later launching devices, set BOARD_VNDK_VERSION to
"current" as a default value if the value is not defined yet.
"PRODUCT_USE_VNDK_OVERRIDE=false" can disable this feature.
Bug: 70480159
Bug: 62019611
Test: Unset BOARD_VNDK_VERSION
Set PRODUCT_SHIPPING_API_LEVEL "28"
- Check if BOARD_VNDK_VERSION is set to "current"
Set PRODUCT_USE_VNDK_OVERRIDE to "false"
- Check if BOARD_VNDK_VERSION is not defined
Change-Id: I8d37579e8c4ca1788705cbc8a42e8812e2b93a22
Before Android version is released, we may use
PLATFORM_VERSION_CODENAME for PLATFORM_VNDK_VERSION to add version
suffix to VNDK directories.
Bug: 70584135
Test: Test youtube and RS apps
Change-Id: Ie788544740a5257232abc2c9acbce64749d15602
This change allows one to run atest <module name>. The TradeFed test
config file will be automatically created in testcases directory based
on the settings.
Bug: 69929803, 69932044
Test: m -j NotificationStressTests libminijail_test
add following lines in notificationtests/Android.mk,
before "include $(BUILD_PACKAGE)"
LOCAL_COMPATIBILITY_SUITE := general-test
Change-Id: Ib5e9cd152d957b5d5beb6ed23a899a021a7e06d6
Also use zip2zip to extract classes into another jar
to avoid hitting parameter limit in the shell invocations.
Bug: 69329508
Test: m checkbuild tests
Change-Id: Ic047aa699519b6b3fd100cb5395de945f96e4d0b
Test: m -j PRODUCT-aosp_x86-userdebug
Test: Check that some .vdex files built have R8 generated code
Change-Id: I5ab4ed75493404c1b330827fe0005510f5613a68
It has been broken up into subflags, and usage has been cleaned up.
Bug: 69865032
Test: can't use PRODUCT_FULL_TREBLE
Change-Id: Ia38366a30132f129d09c6f4a985402c202bace62
Copy the NOTICE files for VNDK shared libs from
$(TARGET_OUT_NOTICE_FILES).
Create module_paths.txt to record the LOCAL_PATH for VNDK shared
libs. The LOCAL_PATH values are needed to read the SHA value
of a library's git project from manifest.xml.
Test: m -j vndk dist
Bug: 70603439
Change-Id: I9574abb48a472cb69440f3e9213ffdd0c1cac266
* Default builds calls clang-tidy only if enabled locally.
In this case, clang-tidy should be quiet.
* If WITH_TIDY is 1 or true, let clang-tidy emit default messages.
* Even with -quiet and all warnings are suppressed,
clang-tidy emits one line message of the number of suppressed messages.
This one-liner could be suppressed in future changes.
Bug: 69051430
Test: default build and build with WITH_TIDY=1
Change-Id: I3138ef45fc4372f904787bd1a391e8d88050f0b3
- until PRODUCT_NOTICE_SPLIT is the default
- disallow PRODUCT_NOTICE_SPLIT_OVERRIDE because it
doesn't need to be differentiated.
Bug: 69865032
Test: manual
Change-Id: I4a29c298862fc9fab51755bf19f236f61fbd784d
The .x509.pem file should be in CERTIFICATE, and the .pk8 file
in PRIVATE_KEY.
Bug: 70669383
Test: examine apkcerts.txt
Change-Id: I480f19be2efbbd72ea23ebd681f312b94accfd7a
With LOCAL_PROTO_OPTIMIZE_TYPE set to one of the lite variants, the build system thinks
the proto should be compiled with lite, and will link in the line runtime libs. But if
the .proto files don't contain the directive to compile the source as lite
(option optimize_for = LITE_RUNTIME;), then the generated code will be full and the
libraries will be full, and it won't link.
Test: make
Merged-In: Ib8a135218d62fa42fa6448c49c97f7aeb2755c42
Change-Id: Ib8a135218d62fa42fa6448c49c97f7aeb2755c42