Parse APK manifest to extract version etc
Add libapkmanifest to encapsulate the parsing, with a small C++
library on top of libandroidfw.
Extract the zip-handling code from libapkverify into a separate
libapkzip, and fix up a bunch of tests tests, to keep the build happy.
We don't do anything with the manifest information except log it; more
to come in another CL.
Bug: 299591171
Test: atest libapkzip.test libapkverify.integration_test
libapkverify.test
Test: Manual - run VM, inspect logs.
Change-Id: I56d3bb7309d43ecb598a33320705d31948710f83
diff --git a/libs/apkzip/Android.bp b/libs/apkzip/Android.bp
new file mode 100644
index 0000000..dc35b5e
--- /dev/null
+++ b/libs/apkzip/Android.bp
@@ -0,0 +1,35 @@
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+rust_defaults {
+ name: "libapkzip.defaults",
+ crate_name: "apkzip",
+ defaults: ["avf_build_flags_rust"],
+ edition: "2021",
+ srcs: ["src/ziputil.rs"],
+ rustlibs: [
+ "libanyhow",
+ "libbytes",
+ "liblog_rust",
+ "libanyhow",
+ "libzip",
+ ],
+}
+
+rust_library {
+ name: "libapkzip",
+ defaults: ["libapkzip.defaults"],
+ host_supported: true,
+ apex_available: ["com.android.virt"],
+}
+
+rust_test {
+ name: "libapkzip.test",
+ defaults: ["libapkzip.defaults"],
+ prefer_rlib: true,
+ test_suites: ["general-tests"],
+ rustlibs: [
+ "libbyteorder",
+ ],
+}