109 Commits

Author SHA1 Message Date
Ryan Mitchell
84a84ac62a Merge "Reduce OMS start time" into rvc-dev 2020-04-28 23:44:03 +00:00
Ryan Mitchell
7d53f19089 Reduce OMS start time
This change attempts to reduce the amount of time initializing the
OMS. The change:
1) Reduces the amount of time between subsequent attempts to connect
   to the idmap2d service when it is not alive.
2) Caches package infos retrieved from getOverlayPackages
3) Caches the crc of the android package to preventing having to
   retrieve it for every overlay package targeting the framework

This chance reduced OMS start up time from ~500ms to ~100ms on a
Pixel 3. If the idmap2d service is running when system sever starts
then start up time will be around ~70ms.

Bug: 151481016
Test: adb shell stop && adb shell start && [capture trace]

Change-Id: I6137c385baf099413b62e98557419fffb9fd2d93
2020-04-28 18:07:00 +00:00
Jiyong Park
db589dded4 Mark some aidl_interface modules as unstable
With b/152655547, all aidl_interface modules are considered as stable
unless it is explicitly with "unstable: true". This change marks the
aidl_interface that are not used across updatable module bounraries
as unstable, so that the build system does not run the API
dumping/checking on them.

Bug: 152655547
Test: m
Change-Id: I1257c66de6dd42b2d32d47ed74cb2878f79d14fb
2020-04-13 13:00:47 +09:00
Ryan Mitchell
09943af999 Test that upgrading target apk invalidates idmap
This change adds tests that run in presubmit to verify that updating
the target APK invalidates the idmap for overlays targeting the
target.

Bug: 147794117
Bug: 150877400
Test: atest PackagedUpgradedTest
Change-Id: I0268ea99dc7beb4bbc7009a67d9929e2d82862cb
2020-04-07 12:15:03 -07:00
Ryan Mitchell
a90930528d Invalidate idmap when target updates
When the target package update, check if the idmap file must change.
If so, propagate the idmap changes to the targets overlay paths, and
invalidate cached overlay ApkAssets in ResourcesManager.

Bug: 147794117
Bug: 150877400
Test: OverlayRemountedTest
Test: libandroidfw_tests
Change-Id: I6115c30bae3672b188a5ff270720a0eea15b43b5
2020-04-07 12:14:51 -07:00
hg.choi
a3a68132b5 Consider target path when verifyIdmap.
Updating new version package with changing resource id,
Overlay idmap still retain same resource id and target path of prebuilt package.
Consequentially overlay can not apply to new update resource id.

As is : VerifyIdmap only verify uptodate of idmap.
To be : Verify change of target path.

Bug: 147794117
Bug: 150877400
Test: idmap2_tests

Change-Id: I2ed6b5ba49aeb1b24625866daefea56c9766baef
2020-03-26 12:35:58 -07:00
Jooyung Han
66c567a8c4 Use aidl::nullable for nullable type in C++
To reduce the discrepance between old code which still uses
std::unique_ptr and new code using std::optional.

This might help to avoid merge-conflicts between branches.

Bug: 144773267
Test: m
Merged-In: Ie3196ee5cce17d77950eea9479d2cc1406e9e674
Merged-In: I33822bc76ef87637d5408849f64a0607e121792e
Change-Id: I33822bc76ef87637d5408849f64a0607e121792e
(cherry picked from commit ad62e8cbf5cf6083568f6f230ef7d73ad8776971)

Exempt-From-Owner-Approval: cherry-pick from master with owner's approval
2020-03-12 11:36:33 +00:00
Winson
f56ade365a Actor signature overlayable policy
There are cases where an app can ship overlays for itself,
but the "signature" policy as described would open up
a vulnerability by allowing the system actor to create
and sign any arbitrary overlay that will apply to the target.

To prevent this, redefine "signature" as target package only,
and introduce "actor" for checking against the actor signature.
Any app that wishes to use both can include both policies.

Bug: 130563563

Test: m aapt2_tests idmapt2_tests and run from host test output
Test: atest libandroidfw_tests

Change-Id: I1c583a5b37f4abbeb18fc6a35c502377d8977a41
2020-02-26 15:59:44 -08:00
Winson
62ac8b56a9 Refactor overlayable policy
To make it easier to add the actor policy in a follow up CL,
move most of the policy handling to a central location.

The strings and transformation between strings and flags is
now handled in libidmap2policies, with libandroidfw
containing the single source of policy flags.

This also extracts all the test resource IDs into an R.h
so they can be swapped without having to edit a dozen files
each time.

Bug: 130563563

Test: m aapt2_tests idmapt2_tests and run from host test output
Test: atest libandroidfw_tests

Change-Id: Ie533c9cebf938215df7586f00c38763ae467e606
2020-02-26 15:59:43 -08:00
Ryan Mitchell
625ebd3911 Call verify in create-multiple
Idmap Scan previously called Verify before calling Create. OverlayConfig
should do the same. Removing the verify call caused b/149784008.

Since sSystem is marked @UnsupportedAppUsage,
createSystemAssetsInZygoteLocked could potentially be invoked in the
system server. Rather than attempting to create the overlays a second
time, first check whether the idmap must be invalidated.

Bug: 149784008
Test: running forrest using web UI
Change-Id: I5d995a87e8552bd156fb5415b2c46a08f4c1d6c5
2020-02-26 00:53:13 +00:00
Ryan Mitchell
f2392c6f56 Merge changes from topic "rro_config"
* changes:
  Make overlay config work with immutable non-android overlays
  Add xml configuration of RROs
  Extract system partitions into standalone class
2020-02-19 04:37:26 +00:00
Ryan Mitchell
9b93942a80 Add xml configuration of RROs
This change adds the ability to configure the priority, default enable
state, and mutability (previously know as staticness) of an overlay.
Rather than overlays configuring themselves, the system can configure
overlays relative to each other.

An example configuration file looks like:
<config>
    <merge path="auto-generated.xml" />
    <overlay package="com.example.one" mutable="false"
             enabled="true"/>
    <overlay package="com.example.two" mutable="false"
             enabled="true"/>
    <overlay package="com.example.three" enabled="true"/>
</config>

The <overlay> tag configures the overlay while the <merge> tag allows
additional configuration files to be included at a position within
the configuration file.

If the configuration file is not present for a partition, the legacy
android:isStatic and android:priority will continue to configure the
overlays in the partition. Once at least one configuration file has
been defined in any partition, strict partition precedence will be
enforced and overlays on separate partitions will no longer be able
to use android:priority to reorder themselves conversely from the
overlay partition precedence.

The order of the system partitions from least to greatest precedence
is system, vendor, odm, oem, product, system_ext.

Bug: 135048762
Test: atest OverlayConfigTest
Change-Id: If57e8caa9b881f9d424ef48bba80b18cc8b7b943
2020-02-18 16:13:22 -08:00
Zoran Jovanovic
9c20f729c7 idmap2: support Lookup for arrays
Lookup of array resource in idmap2 would result in an error.
The reason was that on AssetManager2::GetValue call bags were
not taken into consideration.

Acquire the bag as well and traverse through it to fetch all
its values.

Bug: 134426097
Test: run `adb exec-out lookup` on a known array resource
Change-Id: Ife066154e74d2ee8bd7b273030e75d8448558437
Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sony.com>
2020-02-10 14:22:54 -08:00
Ryan Mitchell
5035d66aee Fix resourcesMap to work with shared libraries
android:resourcesMap is not working at all with shared libraries.
This change fixes that so overlays built as shared libraries can
use the attribute.

Bug: None
Test: idmap2_tests
Change-Id: I767481f88c58892a3818a919616056291b09b57e
2020-02-06 16:25:35 -08:00
Ryan Mitchell
ee4a564d4f Allow for overlaying dynamic shared libraries
Overlays targeting shared libraries should be loaded into the
resources of every target that depends on the shared library.

Static shared libraries are currently not supported because overlays
should override all versions of static shared libraries and there is
not currently support for an overlay targeting multiple APKs.

Also created a test instrumentation and host test suite for testing
overlays and packages on the system image.

Bug: 140790224
Test: atest OverlayRemountedTest
Change-Id: I20a217b6368d6cf92b2b9f46908fd58012933f72
2020-01-10 23:20:19 +00:00
Mårten Kongstad
35cb783acb idmap2: add sections to 'idmap2 dump' output
With the introduction of the debug info, the output of 'idmap2 dump' is
becoming messy. Add sections to combat this.

Example output:

  $ idmap2 create \
        --target-apk-path frameworks/base/cmds/idmap2/tests/data/target/target.apk \
        --overlay-apk-path frameworks/base/cmds/idmap2/tests/data/overlay/overlay.apk \
        --idmap-path /tmp/a.idmap \
        --policy public \
        --policy oem

  $ idmap2 dump --idmap-path /tmp/a.idmap
  Paths:
      target apk path  : frameworks/base/cmds/idmap2/tests/data/target/target.apk
      overlay apk path : frameworks/base/cmds/idmap2/tests/data/overlay/overlay.apk
  Debug info:
      I fulfilled_policies=oem|public enforce_overlayable=true
      W failed to find resource "integer/not_in_target" in target resources
  Mapping:
      0x7f010000 -> 0x7f010000 integer/int1
      0x7f02000c -> 0x7f020000 string/str1
  [...]

Test: idmap2_tests
Change-Id: Ie42f97484b31af0c0b34f1856d321533904dbf7a
2019-12-20 07:03:16 -08:00
Mårten Kongstad
d7e8a534d0 idmap2: add debug information to idmap file format
Add a new variable length string to the idmap file format. This string will
hold debug information like fulfilled policies and any warnings triggered while
generating the file.

Bump the idmap version to 3.

Adjust the idmap header definition in ResourceType.h to take the new string
into account.

Example debug info:

  $ idmap2 create \
        --target-apk-path frameworks/base/cmds/idmap2/tests/data/target/target.apk \
        --overlay-apk-path frameworks/base/cmds/idmap2/tests/data/overlay/overlay.apk \
        --idmap-path /tmp/a.idmap \
        --policy public \
        --policy oem

  $ idmap2 dump --idmap-path /tmp/a.idmap
  target apk path  : frameworks/base/cmds/idmap2/tests/data/target/target.apk
  overlay apk path : frameworks/base/cmds/idmap2/tests/data/overlay/overlay.apk
  I fulfilled_policies=oem|public enforce_overlayable=true
  W failed to find resource "integer/not_in_target" in target resources
  0x7f010000 -> 0x7f010000 integer/int1
  0x7f02000c -> 0x7f020000 string/str1
  [...]

  $ idmap2 dump --idmap-path /tmp/a.idmap --verbose
  00000000: 504d4449  magic
  00000004: 00000003  version
  00000008: 76a20829  target crc
  0000000c: c054fb26  overlay crc
  00000010: ........  target path: frameworks/base/cmds/idmap2/tests/data/target/target.apk
  00000110: ........  overlay path: frameworks/base/cmds/idmap2/tests/data/overlay/overlay.apk
  00000210: ........  debug info: ...
  00000294:       7f  target package id
  00000295:       7f  overlay package id
  [...]

Also, tell cpplint to accept non-const references as function parameters:
they make more sense as out-parameters than pointers that are assumed to
be non-null.

Also, switch to regular expressions in the RawPrintVisitorTests: no more
manual fixups of the stream offsets! Tell cpplint that the <regex>
header is OK to use.

Bug: 140790707
Test: idmap2_tests
Change-Id: Ib94684a3b4001240321801e21af8e132fbcf6609
2019-12-19 16:51:51 +00:00
Ryan Mitchell
8a891d86ab Allow for RRO internal referencing
This change allows RROs to reference their own internal resources as
expected.

Overlays are loaded as shared libraries so they can have their own
resource id space that does not conflict with the resource id space of
the target or other overlays.

References to overlay resources that override target resources now
appear as references to the target resources.

Overlay values that are inlined into the xml file specified using
android:overlayResources are now able to be used at runtime.

See go/rro-references for more information.

Bug: 135943783
Test: idmap2_tests
Test: libandroidfw_tests
Change-Id: Ie349c56d7fd3f7d94b7d595ed6d01dc6b59b6178
2019-10-17 13:09:33 -07:00
Ryan Mitchell
e753ffef54 Idmap format changes for bidirectional lookup
This change modifies the idmap file format to allow for target resources
to map to arbitrary type/value combinations and to allow overlay
resources to be mapped back to target resource ids so references to
overlay resources can appear as references to target resources at
runtime.

The mappings of target resources to overlay resources and vice-versa are
both encoded as sparse arrays. Instead of looking up a resource by
indexing into an array that maps to the overlay resource id, the runtime
will binary search over the sparse array to find the type and value that
overlays the target resource.

Bug: 135943783
Test: idmap2_tests
Change-Id: I5d5344cdb7fe35f4f2e8d6781016299dea5d1e20
2019-10-17 11:37:24 -07:00
Ryan Mitchell
9e4f52b2e5 Parse <overlay> and abstract resource mapping
This change introduces idmap parsing of <overlay> tags.

The <overlay> tag allows one to explicitly map resources in the target
to either a resource in the overlay or an inline attribute value.

Use the android:resourcesMap atttribute on the <overlay> tag in the
android manifest to specify a file to provide the resource mapping.

Bug: 135943783
Bug: 135051420
Test: idmap2_tests
Change-Id: I1740dcdc01849c43b1f2cb8c6645d666dbb05dba
2019-10-04 16:11:37 -07:00
Ryan Mitchell
cd965a3224 Improve idmap2 xml parsing
To parse the <overlay> tags for internal overlay references, we require
the ability to parse XML. The current implementation only allows idmap2
to find a tag somewhere in an xml file.

This implementation allows for the retrieval of an iterator that
iterates over direct children xml elements. Now we can enforce that the
<overlay> tag in the manifest is nested within the <manifest> tag and we
can ensure <item> tags are within the <overlay> tags of the overlay
resource configuration xml.

Bug: 135051420
Bug: 135943783
Test: idmap2_tests
Change-Id: I12f965b55c18960af6cf9dc6ca46429f53124c9a
2019-10-04 16:10:57 -07:00
Ryan Mitchell
6f698ab382 Merge "Revert "Improve idmap2 xml parsing"" 2019-10-02 23:12:45 +00:00
Ryan Mitchell
09f17a6cf7 Revert "Improve idmap2 xml parsing"
This reverts commit 58cdc2a8226e8618331a81c1e1b77a4421bb5629.

Reason for revert: <aosp/1129572 caused a build failure>

Change-Id: Iecae19877dacf9ec5c2b2bc59dca362f573e9a7a
2019-10-02 23:03:16 +00:00
Ryan Mitchell
b0a04b6581 Merge "Add requiredSystemPropertyValue support in idmap2" am: b30f65713f am: fa9362aec9 am: b8a749dac6
am: 042900cf9a

Change-Id: I8b7f30cc8088b4d04856358e7f1ffc18159b1b7f
2019-10-02 15:16:07 -07:00
Ryan Mitchell
b30f65713f Merge "Add requiredSystemPropertyValue support in idmap2" 2019-10-02 16:48:50 +00:00
Ryan Mitchell
58cdc2a822 Improve idmap2 xml parsing
To parse the <overlay> tags for internal overlay references, we require
the ability to parse XML. The current implementation only allows idmap2
to find a tag somewhere in an xml file.

This implementation allows for the retrieval of an iterator that
iterates over direct children xml elements. Now we can enforce that the
<overlay> tag in the manifest is nested within the <manifest> tag and we
can ensure <item> tags are within the <overlay> tags of the overlay
resource configuration xml.

Bug: 135051420
Bug: 135943783
Test: idmap2_tests
Change-Id: I1a1c4329514eb63b7575c4376adc0d8cda217269
2019-10-01 15:41:56 -07:00
TreeHugger Robot
a198f02a97 Merge "idmap2: ZipFile::Open: fix potential memory leak" 2019-10-01 16:27:33 +00:00
Mårten Kongstad
dd63e5d256 idmap2: assign uninitialized variables initial values
In C++, local primitives are not automatically initialized:

  void foo() {
    int i;         // primitive: value is indeterminate
    std::string s; // class: calls default ctor
    ...
  }

Create.cpp and Dump.cpp include this type of uninitialized variable; fix
this by explicitly assigning an initial value.

Also add a new script to help catch these types of errors in the future:
valgrind.sh, which will run a few idmap2 commands and the idmap2_tests
through Valgrind.

Also update static-checks.sh to rely on a command's return value instead
of the presence of any output.

Test: frameworks/base/cmds/idmap2/valgrind.sh
Change-Id: Ic9dbd3e9a768beb39ac677ff294b0fca5ee8f9d2
2019-10-01 01:56:46 -07:00
Gabriel Siqueira
d7fc4f774a Add requiredSystemPropertyValue support in idmap2
Up to Android P, there was this feature were we are able to
define "requiredSystemPropertyValue" in the AndroidManifest.xml
of the RRO apk, so that it will only be loaded if
requiredSystemPropertyValue/requiredSystemPropertyName are matched.

Porting support from idmap
https://android.googlesource.com/platform/frameworks/base/+/master/cmds/idmap/scan.cpp#135

To idmap2
https://android.googlesource.com/platform/frameworks/base/+/master/cmds/idmap2/idmap2/Scan.cpp#175

Bug: 140891738
Change-Id: I47752af93efa4563a60e336c1e1b1ffc081b51ec
2019-09-27 11:35:34 -03:00
Treehugger Robot
a828ee6442 Merge changes from topic "system_ext"
* changes:
  Consider overlay in system_ext as system's
  Support /system_ext partition
2019-09-26 22:18:07 +00:00
Mårten Kongstad
0955d208a2 idmap2: ZipFile::Open: fix potential memory leak
Even if OpenArchive in libziparchive returns a non-zero value
(indicating failure), it will have allocated memory that needs to be
freed via CloseArchive. Add the missing call.

Test: valgrind --leak-check=full --show-leak-kinds=all --error-exitcode=1 $ANDROID_HOST_OUT/nativetest64/idmap2_tests/idmap2_tests
Change-Id: I92d47459c27e62ba4544327d7b7f3c4106e6ad34
2019-09-26 14:37:50 -07:00
Jeongik Cha
3e725f2224 Consider overlay in system_ext as system's
When there is overlay package in system_ext, turn on POLICY_SYSTEM_PARTITION.
In other words, overlay pacakge in /system_ext is considered as system's one

Test: mv vendor/overlay/framework-res__auto_generated_rro.apk system_ext/overlay
      and then check if it works properly.
Bug: 136715327

Change-Id: Ib225368eae41203a8630f4310d26e9cf1afa706a
Merged-In: Ib225368eae41203a8630f4310d26e9cf1afa706a
(cherry picked from commit cba9579158cc70bf8eadb6e8a239e0ab2dc073d2)
2019-09-23 22:01:29 +00:00
Steven Moreland
400c091a44 Merge "Host users of libutils trace use libcutils." am: 4a17a712f5 am: 330c15e273 am: fb59c94709
am: c1e240aa7a

Change-Id: I507ef7554513ad0221b6fa95b2854c9066e8f9f3
2019-09-23 09:57:00 -07:00
Steven Moreland
598bda8624 Host users of libutils trace use libcutils.
Reducing device/host differences. This is now required since libutils
Trace.h always calls the libcutils functions, instead of before where
it only called these functions on device.

Bug: 124524556
Test: build & boot
Change-Id: Ic096ed7caf8ca59292b3427a16c4e2545d12dfd9
2019-09-20 11:27:59 -07:00
Mårten Kongstad
cb85d9c594 idmap2: use 'override' where possible
Sprinkle idmap2 with the override specifier to help the compiler catch
future errors.

Test: builds
Change-Id: I6932c5a80ac607f310e256620194e04acfd19ffd
2019-09-03 03:12:02 -07:00
Mårten Kongstad
134dc1bca9 idmap2: clang-format
Test: cmds/idmap2/static-checks.sh
Change-Id: Ie117062ef618bf4c61ebbc67aa09f568216ad582
2019-08-30 13:04:52 -07:00
Yi Kong
9b00f181da Fix android-cloexec-pipe clang-tidy warning
The upcoming clang-tidy update finds a new instance of
android-cloexec-pipe warning:

FileUtilsTests.cpp:72:13: error: prefer pipe2() with O_CLOEXEC to avoid leaking file descriptors to child processes
ASSERT_EQ(pipe(pipefd), 0);
^~~~~~~~~~~~
pipe2(pipefd, O_CLOEXEC)

Apply the suggested fix by clang-tidy.

Test: build
Bug: 131328001
Exempt-From-Owner-Approval: Cherrypick
Change-Id: Iee772b5c3ed5e2af481e479dab19030f8419290a
Merged-In: Iee772b5c3ed5e2af481e479dab19030f8419290a
(cherry picked from commit f61e2167d5352b63eb34a086cdcb0dfec485bdf0)
(cherry picked from commit 1fa946a2f285283277d75bf741bfef05f6bc9d8e)
2019-08-23 16:46:05 +00:00
Yi Kong
fbafa5162a Disable modernize-use-trailing-return-type clang-tidy check
Upcoming clang update introduced the new modernize-use-trailing-return-type
check which is not useful. Disable this warning for now (even before the
new clang update lands) since clang-tidy doesn't complain about flags it
doesn't know.

Test: build with new clang-tidy
Bug: 131328001
Change-Id: I7fbc10fb9044904f85f9a1ec6cf712ce3cec0a79
Merged-In: I7fbc10fb9044904f85f9a1ec6cf712ce3cec0a79
Exempt-From-Owner-Approval: Trivial, no functionality change
(cherry picked from commit fc8e666d67afef241ddb6491ddc13948c3b837c0)
(cherry picked from commit a0914d81ef9f4d7258f1530dc3bfdd575f6e448d)
2019-08-22 22:33:37 +00:00
Yi Kong
f61e2167d5 Fix android-cloexec-pipe clang-tidy warning
The upcoming clang-tidy update finds a new instance of
android-cloexec-pipe warning:

FileUtilsTests.cpp:72:13: error: prefer pipe2() with O_CLOEXEC to avoid leaking file descriptors to child processes
ASSERT_EQ(pipe(pipefd), 0);
^~~~~~~~~~~~
pipe2(pipefd, O_CLOEXEC)

Apply the suggested fix by clang-tidy.

Test: build
Bug: 131328001
Change-Id: Iee772b5c3ed5e2af481e479dab19030f8419290a
2019-08-15 15:27:33 -07:00
Yi Kong
fc8e666d67 Disable modernize-use-trailing-return-type clang-tidy check
Upcoming clang update introduced the new modernize-use-trailing-return-type
check which is not useful. Disable this warning for now (even before the
new clang update lands) since clang-tidy doesn't complain about flags it
doesn't know.

Test: build with new clang-tidy
Bug: 131328001
Change-Id: I7fbc10fb9044904f85f9a1ec6cf712ce3cec0a79
Exempt-From-Owner-Approval: Trivial, no functionality change
2019-08-15 04:20:52 +00:00
Jeongik Cha
cba9579158 Consider overlay in system_ext as system's
When there is overlay package in system_ext, turn on POLICY_SYSTEM_PARTITION.
In other words, overlay pacakge in /system_ext is considered as system's one

Test: mv vendor/overlay/framework-res__auto_generated_rro.apk system_ext/overlay
      and then check if it works properly.
Bug: 136715327

Change-Id: Ib225368eae41203a8630f4310d26e9cf1afa706a
2019-07-10 00:33:26 +09:00
Dan Willemsen
d1a5aa6a00 Match src paths with aidl package name
In order for the build system to track updates to the header files
during incremental builds, always specify the src files using the same
path as the package for C++ compilations.

Bug: 112114177
Test: treehugger
Change-Id: I584f43a0386840ce3d066479e9e4035de81da144
2019-06-08 15:43:36 +00:00
Ryan Mitchell
ab3e54dc8a Merge "Fix atoi build errors" into qt-dev
am: 9fe4ba7a43

Change-Id: I9617284d09ec85c699d12045a8761b97b226b795
2019-06-04 08:14:36 -07:00
Ryan Mitchell
7f08644bd7 Fix atoi build errors
Use strtol instead of atoi to check vendor partition version.

Bug: 119390857
Test: manual
Change-Id: I49c5963d8bbc5a803b3ccc0dd41d7bd7f2a42226
2019-06-04 06:05:31 +00:00
Ryan Mitchell
c0874fe247 Merge "Remove stopship for idmap2 vendor sdk checking" into qt-dev
am: f5671d390d

Change-Id: Ie4777d5e7a9f03006b2aef519fc223490ef5bcd2
2019-06-03 13:41:47 -07:00
Ryan Mitchell
56db15b843 Remove stopship for idmap2 vendor sdk checking
Idmap now checks if the version of the vendor partition is greater than
or equal to 29 or a development codename to enable enforcement of
overlayable resources.

Bug: 119390857
Test: manual
Change-Id: Ica25800432993beb7464436d4fba7cb391e621ef
2019-06-03 11:22:36 -07:00
Elliott Hughes
bf42c724dd libidmap2: track libziparchive API change.
Bug: http://b/129068177
Test: treehugger
Change-Id: Id1e855d17cde15b2db37df5e192e2011c60eaebe
2019-05-06 12:22:59 -07:00
Ryan Mitchell
ad4d02fdd9 Fix idmap scan to apply odm and oem policies
idmap2 scan was not allowing oem and odm overlays to fulfill the oem and
odm overlayable policies.

Bug: 129735590
Test: manual
Change-Id: I230f72b37b95a997d32f2ef136b6301d970a413c
2019-04-23 03:09:29 -07:00
Ryan Mitchell
939df096be Add odm and oem policies
This change adds parsing, encoding, and validating of odm and oem
overlayable policies to aapt2, libandroidfw, and idmap2.

Bug: 121033532
Test: aapt2_tests, idmap2_tests
Change-Id: Ifc0d4b6c9f9c37e06b2988abade69dbb277c50c2
2019-04-17 16:07:57 -07:00
Ryan Mitchell
0503fa5614 Do not fail idmap scan if one idmap fails to generate
If one static overlay fails to have its idmap generated, continue
scanning other overlays.

Bug: 130324774
Test: idmap2_tests and manual
Change-Id: I06a74c844ebc81dcfb5b50e8c9a30a68c7e4ffb0
2019-04-15 15:03:06 -07:00