From 75536d70bcd9b5365db8b96910770c0a46f96651 Mon Sep 17 00:00:00 2001 From: LAGonauta Date: Fri, 19 Sep 2025 20:51:24 -0400 Subject: [PATCH 1/2] Add services field to manifest --- apk/src/manifest.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/apk/src/manifest.rs b/apk/src/manifest.rs index c1e4ffd..3e4e77b 100644 --- a/apk/src/manifest.rs +++ b/apk/src/manifest.rs @@ -82,6 +82,9 @@ pub struct Application { #[serde(rename(serialize = "activity"))] #[serde(default)] pub activities: Vec, + #[serde(rename(serialize = "service"))] + #[serde(default)] + pub services: Vec } /// Android [activity element](https://developer.android.com/guide/topics/manifest/activity-element). @@ -115,6 +118,43 @@ pub struct Activity { pub color_mode: Option, } +/// Android [service element](https://developer.android.com/guide/topics/manifest/service-element). +#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct Service { + #[serde(rename(serialize = "android:description"))] + pub description: Option, + #[serde(rename(serialize = "android:directBootAware"))] + pub direct_boot_aware: Option, + #[serde(rename(serialize = "android:enabled"))] + pub enabled: Option, + #[serde(rename(serialize = "android:exported"))] + pub exported: Option, + #[serde(rename(serialize = "android:foregroundServiceType"))] + pub foreground_service_type: Option, + #[serde(rename(serialize = "android:icon"))] + pub icon: Option, + #[serde(rename(serialize = "android:isolatedProcess"))] + pub isolated_process: Option, + #[serde(rename(serialize = "android:label"))] + pub label: Option, + #[serde(rename(serialize = "android:name"))] + pub name: Option, + #[serde(rename(serialize = "android:permission"))] + pub permission: Option, + #[serde(rename(serialize = "android:process"))] + pub process: Option, + #[serde(rename(serialize = "android:stopWithTask"))] + pub stop_with_task: Option, + + #[serde(rename(serialize = "meta-data"))] + #[serde(default)] + pub meta_data: Vec, + #[serde(rename(serialize = "intent-filter"))] + #[serde(default)] + pub intent_filters: Vec, +} + /// Android [intent filter element](https://developer.android.com/guide/topics/manifest/intent-filter-element). #[derive(Clone, Debug, Default, Deserialize, Serialize)] #[serde(deny_unknown_fields)] From d0a4afff21b7e0992f36a2cbaa01aebc0e5a7f7f Mon Sep 17 00:00:00 2001 From: LAGonauta Date: Sat, 20 Sep 2025 14:04:40 -0400 Subject: [PATCH 2/2] Fix lint error --- apk/src/manifest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apk/src/manifest.rs b/apk/src/manifest.rs index 3e4e77b..a13aa10 100644 --- a/apk/src/manifest.rs +++ b/apk/src/manifest.rs @@ -84,7 +84,7 @@ pub struct Application { pub activities: Vec, #[serde(rename(serialize = "service"))] #[serde(default)] - pub services: Vec + pub services: Vec, } /// Android [activity element](https://developer.android.com/guide/topics/manifest/activity-element).