diff --git a/README.md b/README.md index 8ccb1ab..95c840d 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,7 @@ identification. ### Package - Adobe Integrated Runtime (AIR) +- Android App Bundle (AAB) - Android Package (APK) - AppImage - Debian Binary Package (DEB) diff --git a/fixtures/package/sample.aab b/fixtures/package/sample.aab new file mode 100644 index 0000000..66de2fc Binary files /dev/null and b/fixtures/package/sample.aab differ diff --git a/src/formats.rs b/src/formats.rs index d29c7bd..3cba1a3 100644 --- a/src/formats.rs +++ b/src/formats.rs @@ -147,6 +147,13 @@ formats! { extension = "adf" kind = Disk + format = AndroidAppBundle + name = "Android App Bundle" + short_name = "AAB" + media_type = "application/vnd.android.aab" + extension = "aab" + kind = Package + format = AndroidBinaryXml name = "Android Binary XML" short_name = "AXML" diff --git a/src/lib.rs b/src/lib.rs index fb27606..886bf25 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -144,6 +144,7 @@ identification. - `reader-zip` - Enables [ZIP](`FileFormat::Zip`)-based file formats detection. * [3D Manufacturing Format (3MF)](`FileFormat::ThreeDimensionalManufacturingFormat`) * [Adobe Integrated Runtime (AIR)](`FileFormat::AdobeIntegratedRuntime`) + * [Android App Bundle (AAB)](`FileFormat::AndroidAppBundle`) * [Android Package (APK)](`FileFormat::AndroidPackage`) * [Autodesk 123D (123DX)](`FileFormat::Autodesk123d`) * [Circuit Diagram Document (CDDX)](`FileFormat::CircuitDiagramDocument`) diff --git a/src/readers.rs b/src/readers.rs index b6c8b1f..8e9a771 100644 --- a/src/readers.rs +++ b/src/readers.rs @@ -875,6 +875,7 @@ impl crate::FileFormat { "AppManifest.xaml" => return Ok(Self::Xap), "AppxManifest.xml" => return Ok(Self::WindowsAppPackage), "AppxMetadata/AppxBundleManifest.xml" => return Ok(Self::WindowsAppBundle), + "BundleConfig.pb" => return Ok(Self::AndroidAppBundle), "META-INF/AIR/application.xml" => return Ok(Self::AdobeIntegratedRuntime), "META-INF/MANIFEST.MF" => fmt = Self::JavaArchive, "META-INF/application.xml" => return Ok(Self::EnterpriseApplicationArchive), diff --git a/tests/package.rs b/tests/package.rs index d145fa1..7269429 100644 --- a/tests/package.rs +++ b/tests/package.rs @@ -7,6 +7,13 @@ fn test_adobe_integrated_runtime() { assert_eq!(fmt, FileFormat::AdobeIntegratedRuntime); } +#[cfg(feature = "reader-zip")] +#[test] +fn test_android_app_bundle() { + let fmt = FileFormat::from_file("fixtures/package/sample.aab").unwrap(); + assert_eq!(fmt, FileFormat::AndroidAppBundle); +} + #[cfg(feature = "reader-zip")] #[test] fn test_android_package() {