summaryrefslogtreecommitdiff
path: root/apexer/apexer.py
AgeCommit message (Collapse)Author
2018-10-02Extend apexer's tools search path to SDK prebuilts.Roland Levillain
In particular, this enables apexer to be used with a master-art source tree, by using aapt2 from SDK prebuilts instead of building it, which requires the following build dependencies (which are not part of the master-art manifest): - external/libpng - external/robolectric-shadows - frameworks/base - frameworks/opt/setupwizard Test: system/apex/apexer/runtests.sh on a master-art source tree Bug: 113373927 Bug: 112458021 Change-Id: Ice7a2923a6113c73082b60da96621f92ca59cb09
2018-09-28Fix runtests.sh after recent changes to apexer.Dario Freni
Also added support for running from the build tree top. Test: runtests.sh Change-Id: I070fa4f73d64e5db66d363d680c4b7345055fdbb
2018-09-27Omitting partition name and sizeJiyong Park
f4f51ebeaf72b309679dd1e22724b53e322333aa in platform/external/avb allows us to omit partitio name and size when adding hashtree and footer. Take the advantage from it to eliminate the need to keep the code for calculating the size opportunistically. Bug: 113320014 Test: mma under system/apex/build Change-Id: I65fa34d2a011a28e3316b247cb9eed13d40ed4f8
2018-09-18Reland: Add module type apex to build APEX bundlesJiyong Park
A new module type 'apex' is added to be able to build APEX bundles in Soong. Usage: apex { name: "com.android.awesome", manifest: "manifest.json", file_contexts: "file_contexts", native_shared_lib_modules: ["libX", "libY"], } This will create /system/apex/com.android.awesome.apex having libX.so and libY.so in it. Right now, it lacks many of the planned features: - APEX modules are now built against platform API, which should be against stable APIs like NDK, Android API and API from other APEXs. - Only native shared libs are supported. Executables, java libraries, aidl_interfaces, and prebuilts should be supported. - Inter-APEX dependency isn't supported yet. - fs_config isn't configurable. All files and directories are set to (uid/gid/mode) = (1000/1000/0644) - native shared libs are stored unstripped. Bug: 112672359 Test: m apex.test Change-Id: I2e1a53a88c79653bcf33c1305baaf684428fcf6e
2018-09-17Revert "Add module type apex to build APEX bundles"Jiyong Park
This reverts commit e396fce50149aa84aed5adc5136f54827d44661c. Reason for revert: broke aosp_x86_64 Change-Id: I584be24644e68978e558d09327fce60b0ef3fc73
2018-09-14Add module type apex to build APEX bundlesJiyong Park
A new module type 'apex' is added to be able to build APEX bundles in Soong. Usage: apex { name: "com.android.awesome", manifest: "manifest.json", file_contexts: "file_contexts", native_shared_lib_modules: ["libX", "libY"], } This will create /system/apex/com.android.awesome.apex having libX.so and libY.so in it. Right now, it lacks many of the planned features: - APEX modules are now built against platform API, which should be against stable APIs like NDK, Android API and API from other APEXs. - Only native shared libs are supported. Executables, java libraries, aidl_interfaces, and prebuilts should be supported. - Inter-APEX dependency isn't supported yet. - fs_config isn't configurable. All files and directories are set to (uid/gid/mode) = (1000/1000/0644) - native shared libs are stored unstripped. Bug: 112672359 Test: m apex.test Change-Id: Ifc44790a8f7de9307550edef0e4d70e9a78327f6
2018-09-11Don't deflate any input files.Martijn Coenen
Even when passing '-L 0' to soong_zip, it can still decide to store files as deflated (but without any actual compression). This in turn throws off the zipalign tool, which doesn't align any compressed files, eg: $ zipalign -v -c 4096 apex.zip Verifying alignment of apex.zip (4096)... 39 image.img (OK - compressed) Instead, use the '-s' argument for soong_zip, to make sure the files get stored without any compression. This issue wasn't triggered earlier because deflation isn't used for small files. Test: tests pass, lare Change-Id: Ic71aa70af09b6b54621bd2d3de721237112a1add
2018-09-04Version number in APEX manifest is set as versionCode of AndroidManifestJiyong Park
Package name together with version number fully identifies an APEX (and thus APK). Bug: 112458021 Test: runtests.sh Change-Id: I3d3193bc6071bebd577858fffc617660cb555380
2018-09-04Silence some warnings for unused variablesJiyong Park
Test: runtests.sh Change-Id: I52ed16592b43d336d5bdfcaae0d05f3aac91d8b8
2018-08-29The file system image is protected by dm-verityJiyong Park
The file system image in an APEX is now protected by dm-verity. The hash tree and vbmeta descriptors, etc are appened to the file system using the tool avbtool. Testing-purpose public/private key pairs are also added to sign the metadata. Bug: 112458021 Test: ./runtests.sh Change-Id: If32b99adaf2267e9b84a761c50fa3c7bc4854e2a
2018-08-28Set uid/gid/mode of files in an APEXJiyong Park
apexer now supports --canned_fs_config to set uid, gid, mode and capability of files in the APEX. The syntax of a canned_fs_config is as simple as path uid gid mode [capability] for each path. Currently, uid, gid, and mode should be numeric, e.g., 100 200 0644, symbolic names are not supported yet. Note that when --canned_fs_config is specified, it must cover ALL files in the APEX. Missing a file is an error. Bug: 112458021 Test: runtests.sh Change-Id: I73da91dfd0be2a12acc80d7e08127994fa49e073
2018-08-27Files in APEX are correctly labeledJiyong Park
add '--file_contexts' option to label files in the image.img in an APEX. Bug: 112458021 Test: m -j Test: runtests.sh Change-Id: I6c96f2815560528fe89199c7efb88d553c245a8f
2018-08-27Make output consistentJiyong Park
Use soong_zip to make file order, xattr, and timestamp in an apex to be consistent. Bug: 112458021 Test: runtests.sh Change-Id: I2277285c687415747ee0ef224953b4ee0aa5e7d4
2018-08-14Add apexer the tool for creating APEX filesJiyong Park
apexer is the tool for creating APEX files which are new package format for system modules. It packages a set of files under the input directory into a filesystem image (ext4) which is then embedded to a zip file uncompressed. The packaged files are accessible by mounting the embedded filesystem image using the loopback device. Bug: 112458021 Test: runtests.sh which creates an apex file from random contents and ensures that the files inside the apex are identical to the input Change-Id: I36a84a9dbf6b446bf23ea59110a225260cb4bbd1