This library is a temporary work to link all mainline module using
statemachine.
Once this is done, we will be able to move the library to
frameworks/libs/modules-utils
also fix some typo in state* files
Bug: 198418216
Tag: #refactor
Test: None
Change-Id: I1bec7c7bdb25bf3397a742a356aa1f18fddf7d89
In aosp/1819733 we extracted Parcel.hasFileDescriptor() for types
produced by Parcel.writeValue() and consumed by Parcel.readValue() out
of Bundle into Parcel. It's supposed to handle LazyValue too.
However, we put a check to verify that it was a type supported by
readValue()/writeValue() by retrieving the VAL_XXX type of the value via
Parcel.getValueType(), however, that method throws for LazyValue since
we don't actually write that special type on the wire. However, we still
want Parcel.hasFileDescriptor() to support it, so moving the check into
a last 'else' statement, making sure we don't throw in case the value is
a LazyValue.
Bug: 195622897
Bug: 198433827
Test: atest CtsNetTestCases android.net.cts.CaptivePortalTest#testCaptivePortalIsNotDefaultNetwork
Change-Id: I1e6ec122557c12e74db6890e1631fec3cefe31f6
Patch implements connection state handling for LE Audio device group.
Tag: #feature
Test: Set LE audio device as active
Sponsor: jpawlowski@
Bug: 150670922
Merged-In: I11222ca07e265ac8b6dc3c21650874ebeffa473c
Change-Id: I11222ca07e265ac8b6dc3c21650874ebeffa473c
The ADDR_NO_RANDOMIZE workaround for ASLR is not required for 3.4+
kernels. As Android 11+ requires kernel 4.4+, this workaround can be
safely removed from app startup.
Bug: 193448904
Test: Manual
Change-Id: I3c5517c34176573256176a4753f4a9113a62a49f
Bug: http://b/197965342
services.incremental depends on libbinder.so, which already depends on
libutils.so. When linking services.incremental with libutils.a, the
linker tries to open objects from libutils.a to redefine undefined
symbols in libbinder.so. This causes a linker failure with upstream
LLD. Switching to shared libutils.so instead doesn't increase the
dependency closure for services.incremental.
Test: build with aosp/1809741 which has lld with the above behavior.
Change-Id: I2735461ae64ef2e4c0afc170f7b765c1b5b9432e
[Description]
After AC off/on, tvinputservice may create later than
external source stream changed.
So add pending list of external source inputinfo
when onStreamConfigurationChanged.
Bug:196189979
[Test Report]
Test pass.
Change-Id: Ifc4b53866803bd0790ecd1e8ba5761533df06c0a
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
RawBytes should always be at least 1 to avoid division by 0 and
ArithmeticException resulting in Settings crash.
Bug: 197292638
Change-Id: I4e5ac9da7adf707d7f991483555ab5c6d0cc3245