Bug: 296873595
Test: Manual test (use go test inside tools/metadata/testdata)
Ignore-AOSP-First: CPing test_spec rule to udc-mainline-prod to support migration of test targets. Cherry pick of: aosp/2815214
Change-Id: I404b57224828149f26bcf4deadb662f513886231
Merged-In: I404b57224828149f26bcf4deadb662f513886231
This change disallows Java modules in the vendor partition to use System
SDK that is newer than API level 34; 34 is the latest allowed.
Background 1: with Trunk Stable, the system/vendor interface is released
at Q2 whereas the system/app interface is released at Q3. In other
words, at Q2, the APIs which will be added to the system SDK at Q3 are
not available. Since the system/vendor interface (which is fronzen at
Q2) is what the modules in the vendor partition will be building
against, they can't and shouldn't use those new APIs that will be added
in the future (Q3). Using those APIs is risky because there's a chance
that those APIs get removed or changed between Q2 and Q3. For example,
2024 Q2 is technically still Android U, not Android V.
Background 2: The use of Java APIs in the vendor partition had many
issues. Most significantly, those "vendor" Java apps are categorized as
part of the system partition because all Java app processes require
access to platform internal libraries that are prohibited to vendor
processes. Furthermore, since the Project Treble, the vendor partition
was re-purposed to a partition to host SoC-dependent bits - usually
HALs. Implementing HALs in Java has never been officially supported and
has had many loop holes.
We'd like to use both background 1 and 2 as a chance to disallow any
Java code in the vendor partition. However, since there are already some
Java modules in the partition, we can't suddenly ban it. The deprecation
will be made gradually, and this CL is the start.
This CL implements the "Make" part of the restriction. The "Soong" part
will follow.
Note that LOCAL_SDK_VERSION := current or LOCAL_SDK_VERSION :=
system_current is automatically overridden into 34 or system_34. This is
to prevent sudden breakage of vendor modules that have been targetting
the latest (i.e. current) API level. They will however fail if they use
APIs newer than API level 34.
Bug: 314011075
Test: The following Android.mk module fails as expected.
some/Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE := example_module
LOCAL_VENDOR_MODULE := true
LOCAL_SDK_VERSION := system_35
LOCAL_SRC_FILES := Foo.java
include $(BUILD_JAVA_LIBRARY)
FAILED:
some/Android.mk: error: example_module: Incompatible
LOCAL_SDK_VERSION 'system_35'. System SDK version '35' is not supported.
Supported versions are: 28 29 30 31 32 33 34
Change-Id: I44c29c6dc45b91a9a30b8a21cd2baae685fa27fb
Allow Soong modules to generate their own module-info.json entries
by merging Soong's module-info.json file into the one generated in
Make.
Skip collecting unnecessary ALL_MODULES.$(my_register_name).*
that are only used for module-info.json if the module was already
handled by Soong via the LOCAL_SOONG_MODULE_INFO_JSON property.
Bug: 309006256
Test: Compare module-info.json
Change-Id: I2c9db3c7c7bae7bd6cb889d7ebc2e383c278c82d
Soong is now handling installing init.rc and vintf fragment files,
don't install them in Make for Soong modules.
Bug: 309006256
Test: Compare installed files
Change-Id: Ied43c207c6ae158d3f41d81c7fe16688331bf13c
Add a function to assign flag id for flags in a package. We first assert
that the flags should have been sorted by its name, then assign a u32 id
to each flag in order. Note this cl adds the function, it will be used
in later cls.
Bug: b/312243116
Test: atest aconfig.test
Change-Id: I843433305abecbe0cc78988fe23dcf35c6a03358
This splits out the AIDL/VNDK/sepolicy stuff from the SDK
finalization. However, in CI, we still do the vFRC step
as part of the first step.
We'll probably want to do some of the following:
- (maybe) add CI for the first step - a 'fina-0' branch
- add a way to do SDK finalizatoin without VINTF finalization
because after VINTF finalization is submitted, people will
develop in-progress interfaces that aren't done yet
- a lot of VINTF finalization is still not automated, so things
like sepolicy and LL-NDK need to be added here.
Ignore-AOSP-First: b/304316873#comment10
Bug: 314010935
Test: N/A
Change-Id: I4831a14f5c5c3d757bd1d10a775d8cf4940d9a4a
alexbuy@ said:
please remove both update-* scripts. they were part of r&d project
that was never finished
Ignore-AOSP-First: b/304316873#comment10
Bug: 314010935
Test: N/A
Change-Id: Iecc22cc860ba67fec336adb0c5b93f51677dc9ce
Instead appending public key information into vendor partition,
append root digest of microdroid-vendor's hashtree descriptor. The root
digest would be extracted in build time with avbtool.
Bug: 285855436
Test: avbtool info_image --image $ANDROID_PRODUCT_OUT/vendor/etc/avf/microdroid/microdroid_vendor.img
Test: avbtool info_image --image $ANDROID_PRODUCT_OUT/vendor.img
Change-Id: I930b09774a1024a2e5d30f474f1589fc1b8aa25a
Otherwise it becomes a single line with an ugly long stretch of spaces
in the middle.
Test: hmm
Bug: 179779520
Change-Id: Ia095b75248952d9bee0d6417028d04460e74ad33