Commit Graph

224 Commits

Author SHA1 Message Date
Treehugger Robot
a2f9e47c87 Merge "Fix cert-dcl16-c warnings" am: d78c0842df am: a4e7dfab4c am: 34fe73e15f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1977907

Change-Id: Ia481193cdbd62c60d572db1c087597b439348ebd
2022-02-14 17:35:45 +00:00
Treehugger Robot
34fe73e15f Merge "Fix cert-dcl16-c warnings" am: d78c0842df am: a4e7dfab4c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1977907

Change-Id: I4ae11f4853a0b69267521b13b1c61b167b6b29e6
2022-02-14 17:18:58 +00:00
Chih-Hung Hsieh
623cf543a8 Fix cert-dcl16-c warnings
Bug: 120614316
Test: make tidy-frameworks-base_subset
Change-Id: Ie71c06e02fcb9a2f90508c37d926a79e0b591c5a
2022-02-09 15:30:51 -08:00
TreeHugger Robot
9bd21329dd Merge "Fix segfault with sparse encoding" into sc-v2-dev am: 829f7d5ebf
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16378785

Change-Id: Ia19e4bc608b97718bb61c474b091103412788545
2021-12-03 21:39:38 +00:00
Jason O'Brien
74f78adb63 Fix segfault with sparse encoding
The native code that underlies `Resources#getIdentifier()` did not take
sparse encoding into account when calculating offsets, resulting in
either garbage or SEGV_MAPERR whenever a resource is first encountered
in a sparsely encoded configuration.

Bug: 197976367
Test: atest libandroidfw_tests --host
Change-Id: Ib7550fe2e05005550f59129a06be5712b74bc9c8
(cherry picked from commit 984e897303)
2021-12-02 14:59:52 +00:00
TreeHugger Robot
32cb668a40 Merge "Fix segfault with sparse encoding" 2021-12-02 11:01:15 +00:00
Jeremy Meyer
3a619c86ee Always select the next higher density bucket when picking resources
This reverts commit 30715f3afc.

Reason for revert: roll forward with fix

Change-Id: I6d63e6fa508501f2d029eeb4647d4d70c152ceb3
Test: ran all previously failing tests locally
Fixes: 183136881
2021-11-09 22:00:17 +00:00
Jeremy Meyer
30715f3afc Revert "Revert "Revert "Always select the next higher density bu..."
Revert "Update getDrawableForDensity test to allow either of the..."

Revert submission 16132603-183136881

Reason for revert: causes post submit failures
Reverted Changes:
I42ff7cdee:Revert "Revert "Always select the next higher dens...
Id4a93f857:Update getDrawableForDensity test to allow either ...

Change-Id: Idcc4c7b909256c65bc0f4e7815bb2d9093e66830
2021-11-05 21:38:00 +00:00
Jeremy Meyer
5ac5c9bc09 Revert "Revert "Always select the next higher density bucket when picking resources""
This reverts commit 932970c696.

Reason for revert: roll forward with fix

Change-Id: I42ff7cdee2ed84b55b25fbbaa68525fed43ebd9b
Test: updated and ran the failing test locally to confirm fix
Fixes: 183136881
2021-10-28 19:06:53 +00:00
Chuck Liao
6adeab2b5c Merge "Revert "Always select the next higher density bucket when picking resources"" 2021-10-21 04:56:31 +00:00
Chuck Liao
932970c696 Revert "Always select the next higher density bucket when picking resources"
This reverts commit 4924387749.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/tests/hub?tab=clusterView&clusterId=7006296665623803063, bug b/203718917

Change-Id: I4ac8d8fb9b4b39fe677fb3b2eac809f3443ed0fa
2021-10-21 04:41:51 +00:00
Jackal Guo
fc294d47aa Merge "Improve the debug info from overlay lookup" 2021-10-21 01:08:39 +00:00
Jeremy Meyer
d9dfc03096 Merge "Always select the next higher density bucket when picking resources" 2021-10-20 16:51:01 +00:00
Jeremy Meyer
4924387749 Always select the next higher density bucket when picking resources
Test: ran and updated Config_test.cpp
Fix: 183136881
Change-Id: Ife1575caedb2cf3fbc2d3659c34a52e1207575c6
2021-10-19 21:41:52 +00:00
Jackal Guo
4385785b74 Fix broken tests in libandroidfw_tests
Due to the output format changes, revise the PosixUtils_test to fix
the failures.

Fix: 203494455
Test: atest libandroidfw_tests
Change-Id: I6e84f8011031162f9e46aa89ddf8d3f3b9863251
2021-10-19 07:28:15 +00:00
Jackal Guo
552b45de1d Improve the debug info from overlay lookup
Print the best matching configuration from the given resource while
looking up for better understanding why an overlay isn't taken.

Bug: 193701453
Test: atest AssetManager2Test libandroidfw_tests
Test: manually install a target package has values and values-en,
      and an overlay package only has values. Then, use overlay
      lookup command to check if the output shows related info.
Change-Id: I0cb415b9e932e1d4bfd0be2e1768adeb78e7b7d0
2021-10-19 15:07:53 +08:00
Jason O'Brien
984e897303 Fix segfault with sparse encoding
The native code that underlies `Resources#getIdentifier()` did not take
sparse encoding into account when calculating offsets, resulting in
either garbage or SEGV_MAPERR whenever a resource is first encountered
in a sparsely encoded configuration.

Bug: 197976367
Test: atest libandroidfw_tests --host
Change-Id: Ib7550fe2e05005550f59129a06be5712b74bc9c8
2021-08-27 19:12:25 +00:00
Colin Cross
faa5e27652 Rename ProcResult stdout and stderr fields
stdout and stderr are macros in musl, which causes build failures
when they are used as field names.  Rename the fields to stdout_str
and stderr_str.

Test: builds
Change-Id: I04770d2d6e82ca8393308ab12a304838a80f0ae5
2021-08-17 15:01:14 -07:00
Ryan Mitchell
767e34fb17 Rebase ThemeImpl rather than reallocate memory
Memory churn is high when swapping the ResourcesImpl of a Resources
object. Each time Resources#setImpl is invoked, all themes based on
that Resources object are assigned new ThemeImpl objects that are
created using the new ResourcesImpl.

ThemeImpls can only belong to one Theme object, so the old
implementation is discarded and the theme takes ownership of the new
ThemeImp.

This creates performance problems when framework overlays are toggled.
Toggling overlays targeting the framework causes all themes across all
processes to recreate and reallocate all of their themes. By rebasing
the ThemeImpl on the new ResourcesImpl without deallocating the native
theme memory, we reduce churn and produce less garbage that needs to
be garbage collected.

Bug: 141198925
Test: atest libandroidfw_tests
Test: atest ResourcesPerfWorkloads
Change-Id: I03fb31ee09c9cfdbd3c41bcf0b605607dab54ed7
2021-06-08 14:25:18 -07:00
Ryan Mitchell
bdc0ae1247 Set ApkAssets path for fabricated rros
Fabricated RROs do not provide assets but are stored on disk. Ensure
that the path to the frro is returned when querying for the ApkAssets
path (which is mostly for debug purposes).

Bug: 181338216
Test: enable frro, use cmd overlay lookup to see path in resolution
Change-Id: Ibf9b1bf0a995325affbf084c71b1e87c5682e734
2021-05-13 13:41:26 -07:00
Ryan Mitchell
2ed8bfa7fd Add fabricated RRO generation to libidmap2
Fabricated Runtime Resource Overlays are overlays that are generated
at runtime and are stored in the data/ partition.

The system can fabricate RROs at runtime to dynamically theme the
device. Idmaps can now be created from APK RROs and fabricated RROs.

Rather than operating on ApkAssets, libidmap2 now operates on abstract
resource "containers" that supply resource values. Target resource
containers implement methods needed to query overlayable and target
overlay information. Currently only APKs can be loaded as target
resource containers. Overlay resource containers implement methods to
supply the mapping of target resource to overlay value and other
overlay information.

The format of a fabricated RRO is as follows:
0x00 - 0x04 : fabricated overlay magic (always FRRO)
0x04 - 0x08 : file format version
0x08 - 0x0c : crc of version + proto data
0x0c - EOF  : proto fabricated overlay data

The magic is used to quickly detect if the file is a fabricated overlay.
The version is incremented whenever backwards incompatible changes are
made to the proto file format. Idmap must always be able to upgrade
fabricated overlays from previous versions to new versions, so all
previous versions must be checked into the tree.

Bug: 172471315
Test: libidmap2_tests && libandroidfw_tests
Change-Id: I4c9f29da278672e5695fb57d131a44c11a835180
2021-02-09 20:13:50 -08:00
Ryan Mitchell
1a48fa659b Dependency injection of AssetProviders into ApkAssets
Creates ApkAssets creation methods that allow an AssetsProvider to be
specified.

During idmap verification and creation, idmap2 currently opens the
target package and overlay package several times:
1) When the crc of the package is calculated in idmap2 verify
2) When the manifest of an overlay is parsed
3) When an ApkAssets is opened.

Opening large zip files (like framework-res.apk) is slow. If we opened
the zip one time as an ApkAssets, the resources.arsc would have to be
parsed (which means mmaping/unmapping and touching a lot of
resources.arsc pages). This would cause idmap2 to preform unnecessary
work just to check the crc of some files.

This change allows a ZipAssetsProvider to be created and then moved
for the creation of an ApkAssets. The zip file only needs to be opened
once and the resources.arsc is not parsed until reading resources is
actually necessary.

Bug: 172471315
Test: libandroidfw_tests
Test: CtsResourcesLoaderTests
Change-Id: I940bb2c13844c7f028776a623a9ecef45a4813bf
2021-02-03 10:38:24 -08:00
Ryan Mitchell
14e8ade9a9 Optimize FilterApkAssets by caching config
ResTable_config of every ResTable_type is read from device every time
AssetManager::RebuildFilterList is invoked. For large APKs (like
framework-res.apk), this causes a large number of page faults
when accessing the config from disk. The configs are also used in the
slow path of AssetManager::FindEntryInternal, which makes it even
slower. Instead cache the config on the TypeSpec of its ApkAsset.

Bug: 177247024
Test: libandroidfw_tests
Change-Id: I66d507c4eeb2399f7558f3d9dfc53c157129ada0
2021-01-13 21:14:31 -08:00
Ryan Mitchell
30dc2e0171 Accept --overlay-name flag in idmap2
To support allowing for multiple <overlay> tags in one package, idmap2
must be able to generate an idmap for an individual <overlay> tag.

`idmap2 create` now accepts a --overlay-name flag that specifies which
tag to use to generate the idmap. The value of --overlay-name should be
set to the value of the android:name attribute on the <overlay> tag to
use.

If the flag is not present, idmap2 will look for an <overlay> tag with
no value for android:name.

Bug: 162841629
Test: libandroidfw_tests
Test: libidmap2_tests
Change-Id: I02316d0b88773f02c04a5d462be9825016fa496d
2021-01-06 16:19:53 -08:00
Ryan Mitchell
0699f1de6a Remove idmap path 256 length limit
Overlay and target package paths can be longer than 256 characters.
Currently, the idmap will fail to be generated if either path
is longer than 256 characters.

This change removes the 256 character limit and makes parsing variable
length strings easier in libandroidfw.

Bug: 174676094
Test: idmap2_tests && libandroidfw_tests
Change-Id: Ic240cdb8700566b2ac2ade08da58bea852e4ae0c
2021-01-06 16:19:50 -08:00
Ryan Mitchell
016f9e65e4 Revert^2 "Cache resolved theme values"
6ca48473e5

Change-Id: Icb295186b85e1edcdcebc1d746f7ff0d6ef66829
2020-11-17 23:02:10 +00:00
Ryan Mitchell
43d2f21d62 Set resource id correctly when resolve fails
If for some reason the resource id cannot be resolved to a value
(there is no configuration that matches the AssetManager configuration
or some error occurs), set the resource id of the SelectedValue to the
resource id that could not be resolved. This was the behavior before
the AssetManager IncFs hardening refactor.

Bug: 173203252
Test: atest com.google.android.config.pts.PreinstalledAppsTestCase
Test: Chrome icon appears on launcher
Change-Id: Iad1760c0e246da1a4bf64d1c2ec60bb08da32d06
2020-11-17 23:02:00 +00:00
Ryan Mitchell
db21f09a8e Revert^2 "libandroidfw hardening for IncFs"
55ef6167a2

Change-Id: I02d4890d181655dfd0a14c188468db512559d27b
2020-11-17 23:01:35 +00:00
Tej Singh
18a3a6644d Merge changes from topic "revert-12787270-FYIHXORGZY"
* changes:
  Revert "libandroidfw hardening for IncFs"
  Revert "Cache resolved theme values"
  Revert "Do not cache bag parent stack until requested"
2020-11-14 03:22:09 +00:00
Ryan Mitchell
55ef6167a2 Revert "libandroidfw hardening for IncFs"
Revert "Move map_ptr to incfs namspace"

Revert submission 12787270

Reason for revert: b/173250495
Reverted Changes:
I5cd1bc8a2:libandroidfw hardening for IncFs
Ice5dbcfb2:Move map_ptr to incfs namspace
I29ccdc8ed:Do not cache bag parent stack until requested
I1e9e9acaa:Cache resolved theme values

Change-Id: Ib90ef68339710086df41e9abe0833a542d03a74f
2020-11-13 23:55:20 +00:00
Ryan Mitchell
c234812e27 Merge changes from topic "libaw-hardening"
* changes:
  Do not cache bag parent stack until requested
  Cache resolved theme values
  libandroidfw hardening for IncFs
2020-11-13 00:05:40 +00:00
Ryan Mitchell
c75c2e0922 libandroidfw hardening for IncFs
Migrate libandroifw to using incfs::util::map_ptr to prevent processes
from crashing when parsing the resources.arsc, parsing compiled xml,
files, and retrieving resource values.

This change propagates incremental failures to the JNI level where they
are raised as ResourcesNotFoundException.

Performance of ResourcesPerfWorkloads without change (time in
nanoseconds):
[1/3] com.android.resources.perf.PerfTest#youtube: PASSED (11.883s)
    youtube_ns_median: 93812805
    youtube_ns_standardDeviation: 4387062
    youtube_ns_mean: 94455597
[2/3] com.android.resources.perf.PerfTest#maps: PASSED (11.265s)
    maps_ns_standardDeviation: 2997543
    maps_ns_mean: 83480371
    maps_ns_median: 82210941
[3/3] com.android.resources.perf.PerfTest#gmail: PASSED (24.963s)
    gmail_ns_median: 266141091
    gmail_ns_standardDeviation: 3492043
    gmail_ns_mean: 267472765

With change and verification forcibly enabled for all apks
(including the framework-res.apk):
[1/3] com.android.resources.perf.PerfTest#youtube: PASSED (11.646s)
    youtube_ns_median: 101999396
    youtube_ns_standardDeviation: 4625782
    youtube_ns_mean: 102631770
[2/3] com.android.resources.perf.PerfTest#maps: PASSED (11.286s)
    maps_ns_standardDeviation: 2692088
    maps_ns_mean: 91326538
    maps_ns_median: 90519884
[3/3] com.android.resources.perf.PerfTest#gmail: PASSED (24.694s)
    gmail_ns_median: 290284442
    gmail_ns_standardDeviation: 5764632
    gmail_ns_mean: 291660464

With change and verification disabled:
[1/3] com.android.resources.perf.PerfTest#youtube: PASSED (11.748s)
    youtube_ns_median: 95490747
    youtube_ns_standardDeviation: 7282249
    youtube_ns_mean: 98442515
[2/3] com.android.resources.perf.PerfTest#maps: PASSED (10.862s)
    maps_ns_standardDeviation: 4484213
    maps_ns_mean: 87912988
    maps_ns_median: 86325549
[3/3] com.android.resources.perf.PerfTest#gmail: PASSED (24.034s)
    gmail_ns_median: 282175838
    gmail_ns_standardDeviation: 6560876
    gmail_ns_mean: 282869146

These tests were done on a Pixel 3 and with cpu settings configured by
libs/hwui/tests/scripts/prep_generic.sh:

 Locked CPUs 4,5,6,7 to 1459200 / 2803200 KHz
 Disabled CPUs 0,1,2,3

Bug: 160635104
Bug: 169423204
Test: boot device && atest ResourcesPerfWorkloads

Change-Id: I5cd1bc8a2257bffaba6ca4a1c96f4e6640106866
2020-11-12 08:13:44 -08:00
Jeff Sharkey
b2bbdaa42f Fixed CursorWindow signed math for x86 builds.
All tests for our recent CursorWindow changes have been passing for
ARM 64-bit builds, but they weren't executed against 32-bit x86
builds until after merged.

It's not actually safe to use the "off_t" type, so we need to cast
to "int32_t" when doing checks against possible-negative values,
such as in allocRow().

We also add tests that verify negative rows/columns are identified
as invalid positions, which requires that we check the resulting
pointer against both mSlotsEnd and mSlotsStart.

Bug: 169251528, 171276404, 171275409
Test: atest libandroidfw_tests:CursorWindowTest
Test: atest CtsDatabaseTestCases
Change-Id: Iea5f7546850f691e183fbb6e6d0952cd02b00d0f
2020-10-20 13:19:06 -06:00
Jeff Sharkey
9199bca1ef Merge changes from topic "sep28r"
* changes:
  Add fuzzer for rewritten CursorWindow.
  Rewrite of CursorWindow internals.
2020-10-20 00:11:14 +00:00
Jeff Sharkey
ae2d88a65c Rewrite of CursorWindow internals.
The original CursorWindow implementation was created in Android 1.0
and has remained relatively unchanged since then.  Unfortunately that
design results in very poor performance on large windows, since
reading or writing each FieldSlot is O(row/100) to traverse through
a chain of RowSlotChunks.  It's also memory-inefficient due to how
it allocates RowSlotChunks in 404 byte chunks, even when there's only
a single row to store.

This change is a complete redesign of the CursorWindow internals to
use a "heap-and-stack" style approach, where a "heap" of strings
and blobs increment up from the bottom of the window while a "stack"
of FieldSlots increment down from the top of the window.

The included benchmarks show the following improvements, ensuring
no regressions for small windows, while offering very dramatic
improvements for larger windows:

                Big cores      Little cores
4x4 cursor      no regression  no regression
1024x4 cursor   2.2x faster    2.0x faster
16384x4 cursor  48.5x faster   24.4x faster

Detailed unit testing is also included to ensure that the rewrite
behaves correctly.

Bug: 169251528
Test: atest libandroidfw_tests
Test: atest CtsDatabaseTestCases
Test: atest FrameworksCoreTests:android.database
Test: ./frameworks/base/libs/hwui/tests/scripts/prep_generic.sh little && atest libandroidfw_benchmarks
Test: ./frameworks/base/libs/hwui/tests/scripts/prep_generic.sh little && atest CorePerfTests:android.database.CrossProcessCursorPerfTest
Change-Id: I90dff31fd550130dae917a33e0e1fa684e15c107
2020-10-19 16:07:04 -06:00
Treehugger Robot
1673d15519 Merge changes I1d3e5e66,I86b869af,Iab4d3902,I645ee722 am: 72864d2930 am: 968582e45f am: cb2ebfc692 am: c59b81c978
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1461087

Change-Id: Ib58c1acbb9629a6654eb8e1666872974f0c75944
2020-10-19 19:35:19 +00:00
Ryan Mitchell
bf1f45b071 Remove malloc/free for inline overlay values
Remove malloc/free of android::ResTable_entry for inline overlay
values.

Add `target_entry_inline` to the idmap format to encode inline overlay
values separate from direct mapping of target resource to overlay
resource. This reduces the number of bytes needed to represent a direct
mapping of target resource to overlay resource from 9 bytes to 8 bytes
per entry.

Fixed all idmap alignment issues that required the framework to use
"#pragma pack(push, 1)" when loading idmaps.

Bug: 170341022
Test: idmap2_tests and libandroidfw_tests
Change-Id: Iab4d3902508f02773464724913e0ee966e3689e4
2020-10-14 14:52:52 -07:00
Abhinav Aggarwal
415bb944d1 Merge "Enable >= 2GiB file size support in backupToTar for 32 bit targets." 2020-06-18 16:31:03 +00:00
Abhinav Aggarwal
0c36a942c9 Enable >= 2GiB file size support in backupToTar for 32 bit targets.
backupToTar function used in fullbackup currently uses off_t to
represent file sizes which overflows for files having size >= 2 GiB
on 32 bit target architectures.

This CL replaces off_t with off64_t to overcome this limitation.

Fixes: 157633626
Test: atest libandroidfw_tests
Test: Locally running a backup with a test app having a file of size
2GiB and verifying the size variable in backupToTar doesn't overflow
on a 32 bit target.

Change-Id: I404cced810f331ecb9327495ce1f092f1fa2d378
2020-06-18 12:32:28 +00: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
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
3c0b8da2c1 Merge changes from topic "invalidate_idmap" into rvc-dev am: 6cb79cdfb7 am: 7cfbff64eb
Change-Id: Ief1e732e3b18738c5c0f62f2fe8c47f66169c85b
2020-04-10 16:17:25 +00: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
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
1b771a90db Merge changes If7ea17d5,If6364fd6 into rvc-dev am: 8275fb7d66 am: a6f2c4f62e
Change-Id: Ie72616767e3eb7eefce8ee3a871ccb76f02959f9
2020-03-27 18:01:59 +00:00
Ryan Mitchell
3769911736 Merge changes If7ea17d5,If6364fd6 into rvc-dev am: 8275fb7d66
Change-Id: Iaa34df4fc6cce09177547a11497d28fa1ce9cdb5
2020-03-27 17:49:56 +00:00
Ryan Mitchell
824cc490c5 Assigned package ids to overlays last
Before overlays could reference internal resources, overlays were
added to AssetManagers before shared libraries. Overlays are now
loaded as shared libraries so they must be assigned package ids
after non-overlay shared libraries so enabling and disabling
overlays does not affect the package ids of the non-overlay shared
libraries.

Since overlays are added to the end of the AssetManager by
ResourcesManager, enabling and disabling overlays will not change
the assets cookie of shared libraries loaded through ResourcesManager,
but it will change the apk assets cookie or overlays added through
AssetManager#addAssetPathAsSharedLibrary.

The package ids of shared libraries added through
AssetManager#addAssetPathAsSharedLibrary will not be affected by
overlays since overlay package ids are assigned last.

Bug: 146685730
Test: CtsHostsideWebViewTests
Change-Id: If7ea17d51b18769bf2465e29af3ae6a71004d06c
2020-03-23 18:14:11 -07:00
Ryan Mitchell
b894c274d0 Revert "Assign shared libraries stable package ids"
This change must be reverted because it broke packages with the same
package name but different package ids loaded at once.

Bug: 146685730
Test: MultiSplitInstallTest
This reverts commit fe50d739f7.

Change-Id: If6364fd660c76284452f77e7d4f09a3df9dede1d
2020-03-23 18:05:40 -07:00
Ryan Mitchell
c5f968d58b Merge changes from topic "res_loader_dir" into rvc-dev am: b0544a733c
Change-Id: I18c28c7293a24d712940c9e80e7817f9547512f8
2020-03-20 18:21:20 +00:00