Google is committed to advancing racial equity for Black communities. See how.
Incremental File System (IncFS) is a kernel module that enables the AndroidOS to receive streamed APKs over Android Debug Bridge (ADB). The self containedkernel module creates a new virtual file system that sits on top of existingAndroid File system and complements changes in the Android 11 framework and SDKto enable app and game developers to deploy large APKs through ADB to an Android11 device.
Thanks for provide the useful info backup from entire android device, I found and analyze Android data is not completely safe on the computer, SD cards, or other external media. The data files may get unusable due to corruption in the drive. It can be also wiped off due to deletion, formatting, virus infection, hardware damage, etc. Android AutoAndroid Auto now comes built-in, so you can simply plug in your phone and start using Android on your car's display. No app download needed. No app download needed. Dynamic System Updates This feature allows developers to load a different system image on their device for testing without affecting their original system image.
The kernel change enables a new APK Signature Scheme v4format, supports Android framework changes in the Android PackageManager, new system services, and changes to the Android Debug Bridge.
Implementation
Permute 3 15. OEMs and SoC manufacturers need to add a new kernel driver to their Androiddevice builds. If the kernel driver is built as a module, it is loaded ondemand. If no app is installed through ADB incremental installation, the devicedoes not load the kernel driver. Stupid raisins symbol pop 2 0 1 download free. When building as a part of the kernel image thedriver is always loaded.
The kernel driver is part of a larger system to enable streamed APKinstallations. Partners don't need to use the exact IncFS code provided in thesample implementations. However, to ensure a consistent experience acrossdevices, partners must ensure the API implementation has a file system that hasfile read functionality and directory read / write functionality as definedhere.
Additionally, partner implementations must have mount options and special files that functionally match the IncFSsample implementation.
Macaw 1 0 10. The following describes the necessary changes for implementation:
- Setup development machine to build kernel.
- Target the common kernel from the
common-android-mainline
branch.$ repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
$ repo sync
- Validate the following changes needed for IncFS are in the branch checkout:
- https://android-review.googlesource.com/c/kernel/common/+/1222869/
- https://android-review.googlesource.com/c/kernel/common/+/1222870
- https://android-review.googlesource.com/c/kernel/common/+/1222871
- https://android-review.googlesource.com/q/%2522ANDROID:+Incremental+fs:%2522+branch:android-mainline+status:merg
- Append
CONFIG_INCREMENTAL_FS=y
orCONFIG_INCREMENTAL_FS=m
line to bottom ofdefconfig
file. Examples can be found at the following links:- Generic kernel image
- Mainline module image
- Embed kernel into the Android deviceimage build.
- Note: Only if using
CONFIG_INCREMENTAL_FS=m
configuration. Ensure theincrementalfs.ko
module file is a part of your modules directory (usually/vendor/lib/modules/)
.
- Note: Only if using
- For your target Android device, append one of the following vendor specificsystem property lines to your
device.mk
file:- In case when you're using
CONFIG_INCREMENTAL_FS=y
PRODUCT_PROPERTY_OVERRIDES +=
ro.incremental.enable=yes
- In case when you're using
CONFIG_INCREMENTAL_FS=m
PRODUCT_PROPERTY_OVERRIDES +=
ro.incremental.enable=module:/vendor/lib/modules/incrementalfs.ko
- There are example device.mk files for the Android emulator and Pixel4.
- In case when you're using
- Only if using
CONFIG_INCREMENTAL_FS=m
, Add SE Linux Rules.- Create and add a
vold.te
file to your device/system/sepolicy/vendor
folder with the following content:vold.te
- Allow to load incremental file system driver
allow vold self:capability sys_module;
allow vold vendor_incremental_module:file r_file_perms;
allow vold vendor_incremental_module:system module_load;
- Append the following SE Linux rules to existing
file.te
filefound in your/system/sepolicy/vendor
folder:- Example
file.te
file - Incremental file system driver
type vendor_incremental_module, vendor_file_type, file_type;
- Example
- Append the following SE Linux rules to existing
file_contents
file found in your/system/sepolicy/vendor
folder:- Example
file_contents
file # Incremental file system driver
- Example
- Create and add a
/vendor/lib/modules/incrementalfs.ko
u:object_r:vendor_incremental_module:s0
Reference implementations
There are two ways to approach this implementation, either as a loadablemodule or as part of a kernel image.
- Loadable module (Pixel 4 device)
- Add Kernel Module Prebuilts
- https://android.googlesource.com/device/google/coral-kernel/+/b5f1e2766b423b69579ab4c11c7a61eeeed094ca
- Add and Enable Kernel Module System Property Change on Device
- https://android.googlesource.com/device/google/coral/+/fad446dc8c32319f5109e49549b03141ee896b30
- Update SE Linux Rules
- https://android.googlesource.com/device/google/coral-sepolicy/+/2c9cfb22cac210c4cee620d2552d6584abfa83ba
- Add Kernel Module Prebuilts
- Android Emulator (as a part of the kernel image)
- Enable IncFS kernel driver
- https://android-review.googlesource.com/c/kernel/common/+/1222873
- Enable Incremental on the device
- https://android.googlesource.com/device/generic/goldfish/+/15dd7a98317b2a40295f9b51aa94e0de33189200
- Enable IncFS kernel driver
Validation and testing
Validate the implementation using Feature Unit Tests, CTS and GTS.
CTS
CtsIncrementalInstallHostTestCases
- /android/cts/hostsidetests/incrementalinstall
GTS
atest GtsIncrementalInstallTestCases
/gts-tests/tests/packageinstaller/incremental/src/com/google/android/packageinstaller/incremental/gts/IncrementalInstallerTest.java
Testing the IncFs (Incremental FIle System)
- Setupa development environment.
- Complete implementation tasks outlined in the implementation section.
- Run the following manual tests:
$ mmma system/incremental_delivery/incfs/tests
$ atest libincfs-test
$ atest IncrementalServiceTest
$ atest PackageManagerShellCommandTestPackageManagerShellCommandIncrementalTest
Testing IncFS with Android SDK (ADB and apksigner)
Open Failed Read-only File System Android
- Setupa development environment.
- Complete implementation tasks outlined in the implementation section.
- Flash the build on a target physical device or emulator.
- Generate or obtain an existing apk.
- Create a debug signing key.
- Sign apk with v4 signature format from the
build-tools
folder.$ ./apksigner sign --ks debug.keystore game.apk
- Install apk on device from
platform-tools
folder.$ ./adb install game.apk
Where can these tests be found?
File System Fat16
- /android/kernel/common/tools/testing/selftests/filesystems/incfs/
- /android/system/incremental_delivery/incfs/tests/incfs_test.cpp
- /android/frameworks/base/services/incremental/test/IncrementalServiceTest.cpp
- /android/cts/tests/tests/content/src/android/content/pm/cts/PackageManagerShellCommandIncrementalTest.java