This property is now ignored, so there is no need to set it.
For more details, see the bug and/or "Effecient archive file handling"
in https://lld.llvm.org/NewLLD.html#key-concepts
Bug: 189475744
Test: Manual build succeeds
Change-Id: I79ff6aaba47fb13548d735b291da0796d416be48
* changes:
Hook the new APIs in StagingManager to PackageManagerNative service
Notify StagedApexObservers when there is a change in set of staged APEX
Open up new API in StagingManager to get information about staged APEX
Connect the new API from ApexService to ApexManager
Implement lazy deserialization for custom types in bundle:
* Parcelable (VAL_PARCELABLE)
* Serializable (VAL_SERIALIZABLE)
* Parcelable array (VAL_PARCELABLEARRAY)
* Lists (VAL_LIST)
* Sparse array (VAL_SPARSEARRAY)
* Bundle (VAL_BUNDLE)
This enhances security, makes bundles more robust to deserialization
errors and avoid deserializing unneeded objects in some cases*, for more
details check go/lazy-bundle.
To do that, we prefix those types with their length when writing them on
the wire. Map serialization and deserialization now happens inside
Bundle (instead of calling Parcel's readArrayMapInternal() /
writeArrayMapInternal()) and we use an intermediary object - LazyValue -
that holds information about the position and length of the value we
will deserialize when queried.
So, there are basically 3 states:
1. We received the bundle but haven't queried anything about it (not
even isEmpty()): in this case the original parcel is held inside and
we haven't attempted any deserialization (except for the metadata at
the beginning such as the magic, etc)
2. We queried something on it (eg. isEmpty()): Now we deserialize the
bundle skipping the custom values above (we're able to do this now
with the length written on the wire) and instead placing LazyValue
objects for them in the map.
3. We query one of the lazy values: Now, we deserialize the object
represented by LazyValue and replace it on the map.
Since after (2) LazyValue objects are the only ones holding references
to the original Parcel, when all LazyValues are deserialized, the
original Parcel is available for GC.
Inside bundle now we differentiate between unparcel(itemwise = true) and
unparcel(itemwise = false) where the first also deserializes each item
(such that there are no LazyValues in the map). This is because some
operations such as kindofEquals() need all items deserialized.
I had to break a few methods in parcel into multiple methods in parcel
to be able to control the format in bundle. They are all @hide.
* In quick local experiments, counting the bytes that didn't need to be
deserialized after the change. Roughly 10% of bytes from custom-type
items in Bundle are not deserialized in the testing scenario (if I
haven't messed up the stats :). That's on a sdk_gphone_x86_64_arm64 a
few minutes after boot. Check
https://screenshot.googleplex.com/53uXrrqDMYahzg3, stats collection is
on ag/15403076.
Test: atest -d android.os.cts.ParcelTest android.os.cts.BundleTest android.os.BundleTest android.os.ParcelTest
Test: Boot device
Bug: 195622897
Change-Id: Icfe8880cad00c3cd2afcbe4b92400ad4579e680e
This allows APEXes to include permission XMLs like the NFC XMLs in
frameworks/native/data/etc which declare NFC features.
(This also enables `unavailable-feature` declarations.)
Bug: 197680726
Test: Include an NFC permission XML in an APEX.
Observe feature is set correctly in logs and by
enabling NFC in Settings app.
Change-Id: Ied425b8897ab80df250d42cfbf0525634ed948aa
This was missed in 133879b6836c0d00f2c89bf480e48bbe14cfb536.
Emergency number list is internally represented as Map<Integer,
List<EmergencyNumber>>, which is not supported by AIDL.
Bug: 192615532
Test: m
Change-Id: I5dc8b0f94b13b6625bb31933c6488dc87c9db713
Since TEST_MAPPING files can reference test suites flung far across
the source tree, allow anyone to make changes to them.
Bug: 174932174
Test: none
Change-Id: I11dd436ac55e516263a587f9f82b17ce56e9e2e2
Remove hidden api for mainline project.
This commit is only for
getSystemConfigEnabledProfilesForPackage
because this will trigger a SEDenial
Bug: 190440540
Test: Manual
Tag: #refactor
Merged-In: Icb822ab703e7617d2c96275d94f682d30171998f
Change-Id: Icb822ab703e7617d2c96275d94f682d30171998f
system_server artifacts should be present in the system image or
generated by on-device signing.
Bug: 187711479
Fix: 163019104
Test: m & boot
Change-Id: I19094e1a60b903d04cf7ba23e65cc9ef10f7f243
- Rename existing SharedMemory.create and make it public
- Passed file is now detached after creating shared memory and is
not usable any more.
Bug: 188780895
CTS-Coverage-Bug: 197226773
Test: atest com.android.car.internal.test.LargeParcelableJavaStableAIDLTest
(runs only in auto. will add matching CTS tests for non-auto devices)
(This combines two CL in internal tree, so Change-Id and Merged-In id are
different)
Change-Id: I8a634062d10ff0c114f3add1d2a5e8056f17b788
Merged-In: I11381e78580b97982b25a52aa06f2192def7353f
The code was doing a reference compare, not object value comparison,
resulting in failures in the KeyStore setEntry API.
Test: CtsKeystoreTestCases:android.keystore.cts.AndroidKeyStoreTest
Fixes: 197138784
Change-Id: I2c5e47283eed5694951869e9ea3853364ddef9d1