Commit graph

189 commits

Author SHA1 Message Date
Colin Cross
e1b4f302e5 Move merged AndroidManifest.xml file to manifest subdirectory
Some modules generate their own custom AndroidManifest.xml file
to $(intermediates.COMMON)/AndroidManifest.xml file.  Move the
build system's location to
$(intermediates.COMMON)/manifest/AndroidManifest.xml.

This location will also be used later for finding manifest files
from LOCAL_STATIC_ANDROID_LIBRARIES dependencies.

Bug: 78447299
Test: m checkbuild
Change-Id: I345f079bdd191451333b38d882418f2f7150b1e9
Merged-In: I345f079bdd191451333b38d882418f2f7150b1e9
(cherry picked from commit 00a6348e7dfa4fafc308ab92d8e7d06dcfcd01ba)
2018-06-14 14:38:54 -07:00
Logan Chien
86b52aec24 Build a single GSI for O-MR1-VENDOR and Master-VENDOR
The objective of this commit is to support these 3 combinations:

1. Master-GSI + Master-VENDOR (w/ BOARD_VNDK_VERSION)
2. Master-GSI + Master-VENDOR (w/o BOARD_VNDK_VERSION for upgrading devices)
3. Master-GSI + O-MR1-VENDOR (w/ BOARD_VNDK_VERSION)

This commit defines a new property `ro.vndk.lite` to indicate the status
of BOARD_VNDK_VERSION run-time enforcement.  Now, all devices should
have `ro.vndk.version` so that `libhidlbase.so`, `libRSCpuRef.so`, and
`libnativeloader.so` can find the versioned VNDK directory.

Bug: 78605339
Test: aosp_sailfish Master-SYSTEM + Master-VENDOR boots
Test: aosp_sailfish Master-GSI    + Master-VENDOR boots
Test: aosp_walleye  Master-SYSTEM + Master-VENDOR boots
Test: aosp_walleye  Master-GSI    + Master-VENDOR boots
Test: aosp_walleye  Master-GSI    + O-MR1-VENDOR boots
Change-Id: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
Merged-In: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
(cherry picked from commit d73b94c097)
2018-05-17 14:25:15 +08:00
Colin Cross
96b0c0d9d7 Add asan-specific CleanSpec
ASAN builds run as two consecutive builds.  The cleanspec is applied by
the first one, which cleans the obj directory, and ignored by the
second.  This can result in old entries in the obj_asan directory.

Test: obj_asan dirs are deleted
Change-Id: I54b8ec9cff581fcd9ec2a843aa7126805340c387
Merged-In: I54b8ec9cff581fcd9ec2a843aa7126805340c387
(cherry picked from commit 4e2da3277a)
2018-03-20 15:44:43 -07:00
Colin Cross
f6d68cf6fe Use a srcjar for aapt and aapt2 output
Dumping files in the *_intermediates/src causes incremental build
problems, because we don't know when to delete them if they are
no longer generated.  Switch to outputting a srcjar instead, and
pass it in to the turbine and javac compiles.

Bug: 73885582
Test: m checkbuild
Change-Id: Ibef28507522339d930c09426d0c98372eb864cb6
Merged-In: Ibef28507522339d930c09426d0c98372eb864cb6
(cherry picked from commit 2d1cddd567)
2018-03-20 15:26:27 -07:00
Colin Cross
dc1e028994 Use srcjar and resource zip as output of renderscript rules
Replace RenderScript.stamp with a srcjar, with a resource zip as
an implicit output.  This makes the renderscript rules self contained,
which will make it easier to move them before aapt.

Bug: 73885582
Test: m checkbuild
Change-Id: I12d33e52019aebac6ea33271939228e4690a4173
Merged-In: I12d33e52019aebac6ea33271939228e4690a4173
(cherry picked from commit e00e2fae52)
2018-03-20 15:25:51 -07:00
Yifan Hong
8f863693c9 move VINTF metadata to /etc/vintf/ .
In particular,
/vendor/manifest.xml => /vendor/etc/vintf/manifest.xml
/system/manifest.xml => /system/etc/vintf/manifest.xml
/vendor/compatibility_matrix.xml =>
    /vendor/etc/vintf/compatibility_matrix.xml

Test: verify that fileis exist in destination
Test: hwservicemanager can read these files
Bug: 36790901
Change-Id: Ic361a48e170fb9a77faec76ad0e829625427820d
2018-01-19 10:52:27 -08:00
Colin Cross
a6e878219c Remove obsolete leaf names
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
2017-12-20 17:33:01 -08:00
Justin Yun
2a233b3b86 Define PLATFORM_VNDK_VERSION
PLATFORM_VNDK_VERSION means the VNDK version that current build
provides. This value will be set to PLATFORM_SDK_VERSION once the
version is release. Otherwise, it will be set to "current".

Bug: 69883025
Test: device boot
Change-Id: I3fde4943aa062d9d148a3d7fc2798948870a48c6
2017-12-13 10:48:34 +09:00
Colin Cross
d5cce4c360 Remove PRODUCT_AAPT2_CFLAGS and PRODUCT_AAPT_FLAGS
PRODUCT_AAPT2_CFLAGS and PRODUCT_AAPT_FLAGS are only used to pass
--pseudo-localize.  The flag doesn't need to be conditional on the
product, because the pseudo locale will be stripped out later if it
is not wanted.  Having it conditional on the product causes the
AAPT2-compiled resources to vary between products, which causes
unnecessary rebuilds when swithcing products.

Remove the variables, always add --pseudo-localize, and move
the AAPT2 compiled output to the common intermediates.

Test: m checkbuild
Change-Id: Iacc914114616b5bd19d9a1011802f4f9bca9bc19
2017-10-27 16:25:55 -07:00
Dan Willemsen
4d99527dcd Move generated aidl/logtags java classes to a subfolder
So that they can't be generated into src/, which would be added to the
source list automatically.

Bug: 36698184
Test: m telephony-common without this change, pass
Test: m telephony-common without the cleanspec, fail with dup class
Test: m telephony-common with the cleanspec, pass
Change-Id: I7b2fc1847d52ff4a9ba8c69e76123fe152629ef8
2017-09-29 20:36:50 -07:00
Dan Willemsen
74616d7802 Add CleanSpec.mk entries for linux -> linux_glibc
Soong renamed intermediate directories from linux_(common|x86|x86_64)...
to linux_glibc_(common|x86|x86_64)..., so remove the old versions to
save space.

Test: Check for old intermediates after applying and running cleanspec
Change-Id: I73ff39014491826224535e1d45c2215669fd19a2
2017-09-27 15:08:27 -07:00
Bowgo Tsai
9a05dca429 Copy adbd from system/bin to recovery/root/sbin
This change will be submitted with other changes moving adbd from
root/sbin to system/bin. We need to copy it specifically to recovery root.
Previously it was copied by rsync $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT).

Bug: 63910933
Test: normal boot sailfish, checks adb works
Test: recovery boot sailfish, checks adb works
Test: normal boot bullhead, checks adb works
Test: recovery boot bullhead, checks adb works

Change-Id: Ib49605f97a190aec2648cb000d1159b6e15db673
Merged-In: Ib49605f97a190aec2648cb000d1159b6e15db673
(cherry picked from commit 3147e7cfab)
2017-08-24 14:27:49 +08:00
Colin Cross
bc291e63a0 Clean jack intermediates
Jack is no longer the default java compiler, clean the intermediates
to save space.

Bug: 36902714
Test: manual
Change-Id: I368442c8ad71eb5839c52839f2aa6ca55cf20bdd
2017-08-01 13:12:40 -07:00
Dan Willemsen
8533fa1b9d Fix install location for vendor tests
Bug: 63393698
Test: m -j hidl_test_client; apply; m -j hidl_test_client
Change-Id: Ia54a8d2aaedd63ce1d70944ee69fda3b9fe223a9
2017-07-06 17:46:17 -07:00
Dan Willemsen
3eb44160e0 Move version checking to soong_ui
This removes versions_checked.mk that caused kati to regenerate the
ninja file 3 times for a clean out directory. Kati needs to regenerate
every time that we write a file that we also read. soong_ui doesn't have
this problem.

Bug: 35970961
Test: m clean; m -j blueprint_tools; m -j blueprint_tools; m -j blueprint_tools
Test: $OUT_DIR/versions_checked.mk no longer exists
Change-Id: I14b67dc275ea3daa77a7315c2985dc73d77fd07c
2017-05-15 14:02:38 -07:00
Dan Willemsen
9d2b3280e8 Support split /system and /vendor modules from Soong
Soong modules may be split into both /system and /vendor variants.
Ensure that Make libraries link against the correct version based on
whether LOCAL_USE_VNDK is set.

Bug: 36426473
Bug: 36079834
Test: build-aosp_arm64.ninja files are the same before/after
Test: attempt building with BOARD_VNDK_VERSION:=current
Change-Id: I229bc290373743406275f3ca16081eae04c27987
2017-04-10 15:54:50 -07:00
Vishwath Mohan
b285c46bbd Refactor sanitized library on-disk layout - Make.
This CL moves the location of ASAN-ified libraries on disk in the
following manner:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*

There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.

Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.

Change-Id: Ic6ba8e43e31df2ea92b85fd60f572823b6883ba2
2017-03-30 20:14:27 -07:00
Dan Willemsen
de4e71b27b Revert "install *.so in different paths for their types"
This reverts commit 842a985f90. It's
causing test failures, warnings and complaints, so backing it out and
we'll resolve those before putting it back in.

This also bundles in the revert of a minor warning/error fixup for this
code, and does the correct thing with the CleanSpec.mk (which can't just
be reverted).

Bug: 33681361
Test: m -j
Change-Id: Ic889ce6a4737a497ad6bf633424ce1860713f7d0
2017-03-16 16:54:40 -07:00
Jiyong Park
842a985f90 install *.so in different paths for their types
Shared libraries are now installed to different directories depending on
their types.

* NDK libraries: /system/lib/ndk (with symlink from /system/lib)
* VNDK libraries: /system/lib/vndk
* VNDK-ext libraries: /system/lib/vndk-ext
* Framework-only libraries: /system/lib
* Vendor-only libraries: /vendor/lib
* Same-process HALs: /vendor/lib/sameprocess

However, if LOCAL_MODULE_PATH is explicitly set, then it is respected,
with a warning message. Module owners are highly encouraged to
investigate the warnings and use alternatives to LOCAL_MODULE_PATH;
combination of LOCAL_[PROPRIETARY|OEM|ODM]_MODULE, LOCAL_MODULE_CLASS
and LOCAL_RELATIVE_PATH will cover most of the cases.

Furthermore, for each shared libraries whose path is changed, a symolic
link from the original path to the new path is *temporarily* generated.
e.g. /system/lib/libbase.so -> vndk/libbase.so. This is
to prevent sudden breakage of the code expecting the lib from the old
path. This symbolic links will eventually be removed before O launch
(b/34917183).

Finally, BOARD_SAME_PROCESS_HAL_DEPS is added. It contains the list of
shared libraries implementing the same-process HALs and its internal sub
libraries. This is designed to be defined in BoardConfig.mk

Bug: 33681361
Test: build & run. Libraries must be in the correct directories.
Symlinks from the old path to the new path must exist.

Change-Id: I46130aac09ae65400fd4d0abbc2e12dddd154fb1
2017-03-13 08:27:09 +09:00
Dan Willemsen
b2a5c7b369 Fix init rc installation in vendor when LOCAL_MODULE_PATH is set
The init.rc path selection uses the same partition_tag detection to
select an installation partition. So make sure that we always set
partition_tag even if we've been given an explicit module path.

Bug: 35314904
Test: set proprietary: true to Soong module with an init rc, verify
      that was the only change to build-aosp_arm64.ninja
Change-Id: Ic6ffd7a5177959db96a34a24896b242ee5b09e41
2017-02-13 14:19:47 -08:00
Simran Basi
7fe57cfdcd Update CleanSpec.mk for the common testcase directories.
Fix an issue with incremental builds and the new common
testcase directories.

Bug: None
Test: Removed https://android-review.googlesource.com/#/c/234478/
      then ran `m cts-platform-version-check` then reapplied the
      change to verify the failure. Then applied this new change
      to verify the problem was resolved.

Change-Id: I77529021e852af35571fb99537d87100010b47af
2017-02-10 15:56:29 -08:00
Dan Willemsen
912de8e691 Fix incremental builds with AAPT2
When we removed the src/ directory, the R.stamp file was removed -- with
AAPT, this triggers src/android/Manifest.java to be regenerated. But
AAPT2 only uses the R.stamp file as a timestamp to find the
Manifest.java file, not to create it.

So add a new CleanSpec.mk to fix the builds by removing the target that
AAPT2 uses to generate the src/android/Manifest.java file.

Test: None
Change-Id: If56f326ad701f7f92aa7c8aeda57e92d9c62cff9
2016-12-22 13:18:21 -08:00
Dan Willemsen
cf324af6b8 Remove generated java source post clean logic
Just move the proto and renderscript sources into their own directories
-- the entire directory is wiped if the file list changes since the
command line will change. So we can just enable/disable pulling sources
from those directories based on whether there were files in the list or
not.

Bug: 30947985
Test: m -j java
Test: Remove a proto file from a java lib, ensure the generated source
      is not included.
Change-Id: If7529979de6fa62a651933a3a974f47b033851d6
2016-12-22 10:37:31 -08:00
Dan Willemsen
dc556b4bc0 Prohibit host modules from using LOCAL_COPY_HEADERS
am: 6e51ef61a7

Change-Id: Id7c80e4dba5a505a04ce47d459c0a525debc4d53
2016-11-29 20:42:37 +00:00
Dan Willemsen
6e51ef61a7 Prohibit host modules from using LOCAL_COPY_HEADERS
There are no users left, so remove all of this.

Test: lunch aosp_arm-eng; m -j native
Test: build/tools/kati_all_products.sh on aosp and internal master
Change-Id: I32f5c8b470a43dd203d7e20c192167630e4e6888
2016-11-28 13:46:17 -08:00
Dan Willemsen
d111debc18 resolve merge conflicts of 8dadc2d to nyc-mr1-dev-plus-aosp
Change-Id: I296a81c17f9311a9425619141e1b5f5f5fb4c0dc
2016-09-12 21:43:19 -07:00
Dan Willemsen
8e6e6fdba9 Remove incremental workaround for aapt overlays
This workaround to clean package intermediates is no longer necessary,
as ninja reruns commands whose command line changes.

Test: switch between product overlays that use add-resource, verify
      R.java is regenerated.
Change-Id: Icb1f76360e39882e4401180414a031956777b020
2016-09-12 20:30:12 -07:00
Alex Light
4e358ab2c3 Add system_other partition, install odex files
For AB devices, support flashing two system partitions for factory use.
The normal system image on one partition, but without dex preopt. And a
system_other image that just contains the odex files. The dex files will
not be stripped out of the system image, in case the second system
partition is wiped.

Setting BOARD_USES_SYSTEM_OTHER_ODEX := true in the BoardConfig.mk
enables this behavior.

One can control which directories are placed in system_other by the
SYSTEM_OTHER_ODEX_FILTER configuration variable. Currently we default
to only copying only app and priv-app odexs.

Bug: 29278988
Change-Id: I7f4e87da919e7dc6a89fd8c668193cd4e98631bc
2016-06-24 11:07:15 -07:00
Tao Bao
6c5f0acbe8 Merge "CleanSpec: Clean up /recovery/root/sdcard." am: b69d3b28a5
am: 8994f9ca38

* commit '8994f9ca383fa887e570f54ea78bfeb9fdd39b2e':
  CleanSpec: Clean up $(PRODUCT_OUT)/recovery/root/sdcard.
2016-01-22 18:53:15 +00:00
Tao Bao
6b10089bd6 CleanSpec: Clean up $(PRODUCT_OUT)/recovery/root/sdcard.
Incremental build going across CL in [1] needs to remove the old
symlink to avoid hitting mkdir error.

[1]: commit 3f56a33041

Change-Id: Iff62ed55eb2782ba3e1e9b6de39a691de2427384
2016-01-21 17:18:47 -08:00
Ian Pedowitz
1406578847 Change PLATFORM_VERSION from NYC to N
But won't someone think of the cheesecake?

Bug: 25558821
Change-Id: Icf0adcb5b429a517fdbddb0d137d396a2d168c7c
2015-11-11 10:35:31 -08:00
Qiwen Zhao
5971fe3476 Merge commit '68e0bbf9'
Change-Id: I04f361807f8568bc87c4d035d52594eff16955fa
2015-08-12 18:54:45 -07:00
Dianne Hackborn
e593e5c42a Fix issie #23116383: Include security patch level in Settings
Change-Id: I46303c064d1365781a2c8a05bd6087518afb2aec
2015-08-12 16:29:08 -07:00
Dianne Hackborn
307631b057 Remove M codename, version number is 6.0.
Change-Id: I27b477f087b135232f14157123d31da04dee04d7
2015-07-29 14:22:51 -07:00
Dianne Hackborn
543aeac3fa am c3db771c: am 578a9efd: Merge "Raise API level to 23." into mnc-dev
* commit 'c3db771cac9a2d448f4f624ac410377c30fc6158':
  Raise API level to 23.
2015-06-27 00:58:12 +00:00
Dianne Hackborn
a42551685f Raise API level to 23.
Now apps can target both MNC and 23.

Change-Id: Ife6a844dc1a12b5d37973cbb890434c950dab7aa
2015-06-26 15:54:10 -07:00
Bart Sears
80cbcc48d3 Master has moved on
Change master so it no longer thinks it is building MNC.

Change-Id: I0b68e78d02b7ceadbef0ca95fc74d20d31076881
2015-05-14 22:04:41 -07:00
Bart Sears
0ed694f326 DO NOT MERGE - Change PLATFORM_VERSION from MNC to M
Goodbye to the cookie...

Change-Id: I0474115250411ccdfbdc769c6a464f9dbc460e8f
2015-05-12 18:42:13 -07:00
Mathieu Chartier
0626a6421e am 783a632f: am 7f914204: am 55fbc49f: Merge "Change eng builds from interpret-only to verify-at-runtime"
* commit '783a632f45fdddaa2073445728db61d2041a3435':
  Change eng builds from interpret-only to verify-at-runtime
2015-03-23 22:55:28 +00:00
Mathieu Chartier
62a7cac50d Change eng builds from interpret-only to verify-at-runtime
Faster dex2oat -> faster boot after syncing core libraries.

Bug: 19762303
Change-Id: Ic266ed9c59829e0e18acc4adc103724cf480de7f
2015-03-20 11:15:20 -07:00
Mathieu Chartier
eda38d7718 am b01a4ca3: am 68f6e305: am 9682e56a: Merge "Revert "Rename dalvik.vm.usejit to debug.dalvik.vm.usejit""
* commit 'b01a4ca3c838007d2e8f71c01b37f8e878cff686':
  Revert "Rename dalvik.vm.usejit to debug.dalvik.vm.usejit"
2015-03-19 17:06:47 +00:00
Mathieu Chartier
8b11285dd9 Revert "Rename dalvik.vm.usejit to debug.dalvik.vm.usejit"
Bug: 19735273

This reverts commit 3abfcfc17b.

Change-Id: Iac930925ab6d5cd5947fa4077c8d93e2984927d5
2015-03-18 19:06:28 -07:00
Mathieu Chartier
7c2d49dcb9 am 7b93109e: am d7f3d8ba: am 8ca542f4: Merge "Rename dalvik.vm.usejit to debug.dalvik.vm.usejit"
* commit '7b93109e48f90f756228bfe399b67d5d8cc306b0':
  Rename dalvik.vm.usejit to debug.dalvik.vm.usejit
2015-03-17 14:47:31 +00:00
Mathieu Chartier
3abfcfc17b Rename dalvik.vm.usejit to debug.dalvik.vm.usejit
Bug: 19735273
Change-Id: Ia0d748b511230f5e0c7d0763de3abeab9d6e0ca7
2015-03-16 16:29:30 -07:00
Mathieu Chartier
0694eabe4d JIT default opt-in
Bug: 17950037

(cherry picked from commit 2a2a03046e)

Change-Id: I97fd6b1797e54ad3dea1930889f32a717543490d
2015-03-12 18:27:54 -07:00
Mathieu Chartier
2a2a03046e JIT default opt-in
Bug: 17950037
Change-Id: I97fd6b1797e54ad3dea1930889f32a717543490d
2015-03-12 14:45:22 -07:00
Dianne Hackborn
c421abfcd5 Update version to MNC.
Change-Id: I67a69efa90babcfbc3e83907e46be0833c0ddcdd
2015-01-22 16:36:55 -08:00
Narayan Kamath
675a726fe4 resolved conflicts for merge of 8f5fc9e2 to lmp-mr1-dev-plus-aosp
Change-Id: Ie1587a4e2434b9cfbca16bc764e99e94511f8212
2015-01-22 18:53:59 +00:00
Narayan Kamath
baf3eb93ee Add ro.product.locale
This is a BCP-47 language tag representing the default locale for a
given device. Support for the earlier mechanism of supplying a language
and region via ro.product.locale.region/language has been removed. This
change also removes support for supplying these properties via
PRODUCT_ADDITIONAL_PROPERTY_OVERRIDES. Devices that need to override
this should either rearrange their PRODUCT_LANGUAGES or supply a custom
.prop file.

bug: 17691569

Change-Id: I00c74098542b49b9c514a6ca39ea8d08179546c1
2015-01-16 10:16:52 +00:00
Ed Heyl
898b9e43cf resolve conflicts w/aaf823d2
Change-Id: I7c5cf1d1e074a67bdd19a7cf51f45e5f3e026c84
2014-12-08 10:53:50 -08:00