Commit Graph

151 Commits

Author SHA1 Message Date
Treehugger Robot
0f2655292d Merge "Prefer = delete in place of DISALLOW_COPY_AND_ASSIGN." am: 73c4e18d80 am: f288999050 am: e86ab75f4e am: 944a9486df am: afa3bd9208
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1407407

Change-Id: I4966b84f9a3e7a463004c5c5661ce49c877e67d2
2020-08-24 23:11:15 +00:00
Treehugger Robot
e86ab75f4e Merge "Prefer = delete in place of DISALLOW_COPY_AND_ASSIGN." am: 73c4e18d80 am: f288999050
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1407407

Change-Id: Ia3706d2810ebff030d077b91471fd260e16d1025
2020-08-24 20:03:04 +00:00
Stephen Hines
39fa5efb15 Prefer = delete in place of DISALLOW_COPY_AND_ASSIGN.
Clang-tidy expects modernized code to prefer deleting copy constructors
and assignment operators to legacy macros.

/disk/android_trees/aosp-master-plus-llvm/frameworks/base/cmds/idmap2/tests/ResultTests.cpp:263:3: error: prefer deleting copy constructor and assignment operator over using macro 'DISALLOW_COPY_AND_ASSIGN' [modernize-replace-disal low-copy-and-assign-macro,-warnings-as-errors]
  DISALLOW_COPY_AND_ASSIGN(NoCopyContainer);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bug: http://b/155835175
Test: mm in idmap2
Change-Id: I3bb29b48a478a67cbda959f47b271ccf8543a768
2020-08-22 10:08:56 -07:00
Jooyung Han
6ae4c044f0 Merge "Switch aidl::nullable to std::optional" into rvc-dev-plus-aosp am: ce3fd2b509 am: 668e478fda am: 4f1dc6586e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12325559

Change-Id: I511d18643f189932cb1a4e5793de456893c151aa
2020-08-10 17:16:10 +00:00
Jooyung Han
16bac8513e Switch aidl::nullable to std::optional
AIDL's @nullable is represented as std::optional in C++ backend.
The previous aidl::nullable was a temporary solution to avoid
merge-conflicts between rvc-dev and master branches.

Bug: 151275535
Test: m
Change-Id: I8fe5bfc1763087e7ff364b4408f862436492d1db
2020-08-10 08:36:35 +00:00
Zoran Jovanovic
9336d9e13b OMS: Add config_signature policy handling
Alongside SIGNATURE and ACTOR_SIGNATURE policies, add CONFIG_SIGNATURE
policy to overlayable that overlay fulfills if it is signed with the
same certificate as the reference package whose package name is
declared in 'config-signature' tag of SystemConfig and is vetted by
OMS that it's a system pre-installed package.

BUG: 158726924
TEST: regular aapt2, idmap2, OMS tests

Change-Id: I645ee72271496008742886274be0d63a2985201b
2020-07-28 18:30:53 +00:00
Mårten Kongstad
ba437e8a61 idmap2: remove call to obsolete 'idmap2 verify' from valgrind.sh
The 'verify' command was removed as part of a707013b78. Update
valgrind.sh accordingly.

Test: frameworks/base/cmds/idmap2/valgrind.sh
Change-Id: I571cb46bb2ca09a244dc7b609a8bb0ffe01a6e2a
2020-07-20 13:56:51 +00:00
Mårten Kongstad
3abb504a08 idmap2: remove the 'scan' command
The 'scan' command has been replaced by 'create-multiple'. Remove the
unused code.

Also remove unused functions and #includes from FileUtils, and the
obsolete JNI plumbing.

Test: atest idmap2_tests OverlayDeviceTests OverlayHostTests
Change-Id: Iae073c13ce64b5db48f22f7e723bc8c0c5fcd2c9
2020-07-20 13:55:41 +00:00
Treehugger Robot
ee9897ebaf Merge changes If69f69bf,I941b3c89 am: b3bd77fcbe am: a4060c02e8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1326399

Change-Id: I64611036a17776bc3e11ebbf7014a76e596130d6
2020-06-10 23:09:24 +00:00
Stephen Hines
1588869c97 Use tidy_checks_as_errors list instead of -warnings-as-errors=* am: ab17065423 am: 52a2ca94a8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1326398

Change-Id: If4d0a362ec646adabf135769c75fbce64a86a624
2020-06-10 23:09:09 +00:00
TreeHugger Robot
a7bf1021b1 Merge "idmap2: Set aidl_return to true on success" into rvc-dev am: 6700d5e48c am: 8f8122eed5 am: b0f11fa2cc am: 79013fbe59
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11795074

Change-Id: Ifb0a3fe0aad6d991002be2f11aecea23d56e916c
2020-06-10 18:25:16 +00:00
TreeHugger Robot
8f8122eed5 Merge "idmap2: Set aidl_return to true on success" into rvc-dev am: 6700d5e48c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11795074

Change-Id: I2d0cb691028bd264675625610eda332aed8d19f9
2020-06-10 17:33:03 +00:00
Mårten Kongstad
c4799eba53 idmap2: fix cpplint warnings
Fix the following to make cpplint happy again:

  - Use C++ style casts
  - Rename a few header guards
  - Add missing includes of standard C++ headers
  - Add comments to the end of namespaces

Also, for consistency, always use "..." instead of <...> for local
include files, i.e.

  #include "idmap2/.*"

Test: cmds/idmap2/static-checks.sh
Change-Id: Ie735a36d562d1fc51b61f1f0f45aec0d160f602d
2020-06-10 09:11:18 -07:00
Ryan Mitchell
038a284f24 idmap2: Set aidl_return to true on success
idmap2d did not set the aidl return value to true when
IdmapHeader::IsUpToDate succeeded. This regressed OMS initialization
time.

This change sets aidl_return to true when the header is up-to-date and
also replaces usages of `uint32_t` for fulfilled_policies with
`PolicyBitmask`.

Bug: 158491243
Bug: 158535227
Bug: 158468195
Test: enable/disable overlays and onserve that verify succeeds
Test: change the values of enforce overlayable and fulfilled policies
      and confirm that idmap verify fails
Change-Id: If8febbfd0283d53211263690f85e2970706a33b7
2020-06-09 22:21:16 +00:00
Stephen Hines
328a29cc48 Add back missing tidy_checks, since tidy_checks_as_errors isn't enough
I unfortunately missed in the original testing that
`tidy_checks_as_errors` isn't sufficient by itself. Instead we need to
have both places with the same variables. A future change will make
Soong expand `tidy_checks_as_errors` into both locations appropriately.

Bug: 119328308
Test: WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=*,-readability-*,-google-readability-*,-google-runtime-references,-cppcoreguidelines-*,-modernize-*,-llvm-*,-bugprone-narrowing-conversions,-misc-non-private-member-variables-in-classes,-misc-unused-parameters,-hicpp-*,-fuchsia-* mm
Change-Id: If69f69bf7861ba3569756270381f3f737366f2f0
Merged-In: If69f69bf7861ba3569756270381f3f737366f2f0
(cherry picked from commit 56af59395e)
2020-06-09 00:15:34 -07:00
Stephen Hines
ab17065423 Use tidy_checks_as_errors list instead of -warnings-as-errors=*
This fixes a build break due to new code from
http://ag/I96f970e82b5243be01b205ac2cb6ab249c6100bc that inadvertently
triggers some false positives with other clang-tidy flags. Builds that
use a wider set of tidy flags (as specified in the test below) will
break since `-warnings-as-errors=*` turns all warnings into errors,
rather than just the ones that were specified as part of this
Android.bp. The preferred way of checking this is to use
`tidy_checks_as_errors`

Bug: 119328308
Test: WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=*,-readability-*,-google-readability-*,-google-runtime-references,-cppcoreguidelines-*,-modernize-*,-llvm-*,-bugprone-narrowing-conversions,-misc-non-private-member-variables-in-classes,-misc-unused-parameters,-hicpp-*,-fuchsia-* mm
Change-Id: I941b3c89402e2cfa290b3829e2ac8ff7ea67ca3d
Merged-In: I941b3c89402e2cfa290b3829e2ac8ff7ea67ca3d
(cherry picked from commit 0bc6454327)
2020-06-09 00:15:27 -07:00
Stephen Hines
56af59395e Add back missing tidy_checks, since tidy_checks_as_errors isn't enough
I unfortunately missed in the original testing that
`tidy_checks_as_errors` isn't sufficient by itself. Instead we need to
have both places with the same variables. A future change will make
Soong expand `tidy_checks_as_errors` into both locations appropriately.

Bug: 119328308
Test: WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=*,-readability-*,-google-readability-*,-google-runtime-references,-cppcoreguidelines-*,-modernize-*,-llvm-*,-bugprone-narrowing-conversions,-misc-non-private-member-variables-in-classes,-misc-unused-parameters,-hicpp-*,-fuchsia-* mm
Change-Id: If69f69bf7861ba3569756270381f3f737366f2f0
2020-06-08 17:42:27 -07:00
Stephen Hines
0bc6454327 Use tidy_checks_as_errors list instead of -warnings-as-errors=*
This fixes a build break due to new code from
http://ag/I96f970e82b5243be01b205ac2cb6ab249c6100bc that inadvertently
triggers some false positives with other clang-tidy flags. Builds that
use a wider set of tidy flags (as specified in the test below) will
break since `-warnings-as-errors=*` turns all warnings into errors,
rather than just the ones that were specified as part of this
Android.bp. The preferred way of checking this is to use
`tidy_checks_as_errors`

Bug: 119328308
Test: WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=*,-readability-*,-google-readability-*,-google-runtime-references,-cppcoreguidelines-*,-modernize-*,-llvm-*,-bugprone-narrowing-conversions,-misc-non-private-member-variables-in-classes,-misc-unused-parameters,-hicpp-*,-fuchsia-* mm
Change-Id: I941b3c89402e2cfa290b3829e2ac8ff7ea67ca3d
2020-06-07 22:34:16 -07:00
Ryan Mitchell
22cf8d565e Merge "Add policies and enforce overlayable to header" into rvc-dev am: 2201f8b626 am: 64d0e6f31b am: e2426c48bd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11481145

Change-Id: I268738c0312b6a158599d9487f09b753c91ba36a
2020-06-05 16:46:45 +00:00
Ryan Mitchell
1b4cda227a Merge "Add policies and enforce overlayable to header" into rvc-dev am: 2201f8b626
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11481145

Change-Id: I71ff9f46e1e5a5016291a062dd5389078527588f
2020-06-05 16:11:20 +00:00
Ryan Mitchell
aa944d46e0 Merge "Revert "Persist implicit overlay configurator actor policy"" into rvc-dev am: 13313007e5 am: 006fceb1a6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11725029

Change-Id: I41a013212de42c06381530fa19cc489056546305
2020-06-04 23:45:34 +00:00
Ryan Mitchell
ea84d2e299 Merge "Revert "Persist implicit overlay configurator actor policy"" into rvc-dev am: 13313007e5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11725029

Change-Id: Ib923d89cec746f8ca6fe35806fd2d20f23d14e0d
2020-06-04 23:33:34 +00:00
Ryan Mitchell
e88ef74249 Revert "Persist implicit overlay configurator actor policy"
This reverts commit af93f5de66.

The overlays.xml file version should not be reverted to 3.
Increasing the version caused b/158054824 so for devices that have not
upgraded to version 4, do not ignore a version 3 overlay file when
restoring settings. In a future change, we must create testing so that
version upgrades always migrate old overlays.xml files to new
overlays.xml files.

Bug: 157266239
Bug: 158054824
Change-Id: I3f8c49d30a1961a756bbed9b2ab01aeb1f887e55
2020-06-04 21:18:45 +00:00
Ryan Mitchell
a707013b78 Add policies and enforce overlayable to header
If the fulfilled policies change without the contents of the target
and overlay APKs changing, the idmap for the overlay should be
regenerated. This change adds fulfilled policies and enforce
overlayable to the idmap header so that idmap2d can determine if the
polices or enforce overlayable changed from what was used to generate
the idmap.

Bug: 119328308
Test: idmap2_tests
Test: atest RegenerateIdmapTest

Change-Id: I96f970e82b5243be01b205ac2cb6ab249c6100bc
2020-06-01 16:15:35 -07:00
Ryan Mitchell
9d68e61dba Merge "Persist implicit overlay configurator actor policy" into rvc-dev am: 41b850d0a8 am: b0492bd079
Change-Id: I064dab4378bda1c1c2e8209bce93bf92311df886
2020-05-29 23:12:41 +00:00
Ryan Mitchell
b04a16d744 Merge "Persist implicit overlay configurator actor policy" into rvc-dev am: 41b850d0a8
Change-Id: I9337e44ed7c662d26e0518cca1f93e00d2952e71
2020-05-29 23:00:50 +00:00
Ryan Mitchell
af93f5de66 Persist implicit overlay configurator actor policy
This change does three things:

1) If an overlay targets a package that does not declare an overlayable
   and the overlay fulfills the actor policy, the overlay can override
   any resource in the target,
2) The actor policy is now implicitly granted to overlays signed with
   the same signature as the configurator that target white-listed
   target packages regardless of whether or not the target defines an
   overlayable.
3) If an overlay was previously granted the actor policy through the
   mechanism specified in (2), the overlay will continue to fulfill
   the actor policy even if the configurator is removed, changes
   signature, changes to a different package, or the list of
   configurator targets changes. If the overlay target package or
   target overlayable name changes, the persisted setting will be
   reset.

Bug: 157244814
Bug: 157266239
Test: atest OverlayManagerServiceImplTests
Test: idmap2_tests
Change-Id: Iff3937849ad898b1b2d74c2c632a4cdf7690fe10
2020-05-28 10:38:15 -07:00
Ryan Mitchell
04fa9c9f57 Merge "Reduce OMS start time" into rvc-dev am: 84a84ac62a
Change-Id: I9a419e6be7cc950693e39c5d474e3c60161c4b69
2020-04-28 23:47:58 +00:00
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
fe22da569d Merge "Mark some aidl_interface modules as unstable" into rvc-dev am: 28665792a2
Change-Id: I87f2b5384ad7f82374597a75de4595e380564e55
2020-04-20 05:23:12 +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
cca1593b23 Merge changes from topic "invalidate_idmap" into rvc-dev am: 6cb79cdfb7
Change-Id: Iec3d0e3bab28964442c5aada00c2586e284feb92
2020-04-10 15:53:05 +00: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
Ryan Mitchell
bb99b2afce Merge "Consider target path when verifyIdmap." into rvc-dev am: fa0f02a91c
Change-Id: Iad2e29a73f4b7b11c84fa30fd376a5d25e3c197c
2020-03-30 15:49:11 +00: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
Treehugger Robot
6982a7dc69 Merge "Fix idmap2 uninitialized variables" 2020-03-24 01:47:12 +00:00
Ryan Mitchell
a7b7de59e0 Fix idmap2 uninitialized variables
Some primitives were not initialized to a default value causing
--ignore-overlayable and --verbose to default to true.

Bug: 148181123
Test: idmap2_tests
Change-Id: If87ba76b7d24803f46b71ef36befa12f25916680
Merged-In: Ic9dbd3e9a768beb39ac677ff294b0fca5ee8f9d2
2020-03-24 01:02:38 +00: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 ad62e8cbf5)

Exempt-From-Owner-Approval: cherry-pick from master with owner's approval
2020-03-12 11:36:33 +00:00
Jooyung Han
c85cc13b5a 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
(cherry picked from commit ad62e8cbf5)

Change-Id: Ie3196ee5cce17d77950eea9479d2cc1406e9e674
Merged-In: I33822bc76ef87637d5408849f64a0607e121792e

Exempt-From-Owner-Approval: approved from master
2020-03-12 08:42:33 +00:00
Jooyung Han
aa7d5dd5f9 Revert "Use aidl::nullable for nullable type in C++"
Revert submission 10632869-nullable-compat-rvc-dev-plus-aosp

Reason for revert: incorrect merged-in line
Reverted Changes:
I33822bc76:Use aidl::nullable for nullable type in C++
I378dbf848:Add aidl::nullable type for nullable in AIDL

Change-Id: I98d4041770fe97b622aaaf8c829b97259bd82e2c
Exempt-From-Owner-Approval: revert wrong submission
2020-03-12 07:05:54 +00:00
Jooyung Han
4b1d2889dc 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 I33822bc76ef87637d5408849f64a0607e121792e
Change-Id: I33822bc76ef87637d5408849f64a0607e121792e
(cherry picked from commit ad62e8cbf5)

Exempt-From-Owner-Approval: cherry-pick from master
2020-03-12 06:22:10 +00:00
Automerger Merge Worker
2f586d9c9f Merge "Allow bugprone-* warnings until they are all fixed." am: 7f58bef392 am: 129beaf75e
Change-Id: I80db8c6c9c08b588db5c6276fdc3f54185fc9321
2020-03-04 22:59:05 +00:00
Chih-Hung Hsieh
db84f188ee Allow bugprone-* warnings until they are all fixed.
Test: WITH_TIDY=1 make checkbuild
Change-Id: I93e9526d66ab9ac88672ccd77eb409603482ea47
2020-03-03 20:09:15 -08:00
Automerger Merge Worker
832fe4a424 Merge changes from topic "actor-signature-policy-rvc-dev" into rvc-dev am: b0c5105b2d
Change-Id: I55a362a896901a09fc1bf49f9129455d53b2d440
2020-02-27 18:32:31 +00:00
Jooyung Han
f452968ae8 Use optional for nullable types
AIDL generates optional<T> for nullable T types for C++, which is more
efficient and idomatic and easy to use.

Bug: 144773267
Test: build/flash/boot
Merged-In: I90cf2ce1193c479179687d71a5c1416f6cdf0b16
Change-Id: I90cf2ce1193c479179687d71a5c1416f6cdf0b16
(cherry picked from commit ff7f4279bd7fa33577f5f4d46aa9de322fb625d4)

Exempt-From-Owner-Approval: CP from master
2020-02-27 03:05:19 +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
Automerger Merge Worker
09927af859 Merge "Call verify in create-multiple" into rvc-dev am: 0c9978cdce
Change-Id: I1fab929004c20d63b18e6b94f39fb44b2ab9d19f
2020-02-26 18:19:34 +00:00