diff --git a/PACKAGING.md b/PACKAGING.md
index 5982b71c5af8833bf60b7ef63508c3b51ade322c..0a927159b8593c06614e25c54c1abcfcce4d0ce5 100644
--- a/PACKAGING.md
+++ b/PACKAGING.md
@@ -49,6 +49,12 @@ make package-cli-linux-deb-{target}
 make package-gui-linux-deb-{target}
 ```
 
+- Service
+
+```
+make package-service-linux-deb-{target}
+```
+
 Where `target` is the platform you are building for. Currently, the following targets have been tested:
 - x86_64-unknown-linux-gnu
 - aarch64-unknown-linux-gnu
@@ -73,12 +79,20 @@ For different host/target pair, see [Cross Compilation](#cross-compilation)
 
 ## Linux Generic
 
-Just a tarball of everything. Useful for creating packages that need to be maintained out of tree. Only supported for CLI for now.
+Just a tarball of everything. Useful for creating packages that need to be maintained out of tree.
+
+- CLI
 
 ```
 make package-cli-linux-xz-{target}
 ```
 
+- Service
+
+```
+make package-service-linux-xz-{target}
+```
+
 Where `target` is the platform you are building for. Currently, the following targets have been tested:
 - x86_64-unknown-linux-gnu
 - aarch64-unknown-linux-gnu
diff --git a/README.md b/README.md
index 87025b30c4c877dd769a930e1164b16feefa1431..98852fd9de00b14c19735fa8f920107f0ad6bddf 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ A Rust rewrite of [bb-imager](https://openbeagle.org/beagleboard/bb-imager) with
 # Run
 
 ```shell
-cargo run --package gui --release
+cargo run --package bb-imager-gui --release
 ```
 
 # Configuration
diff --git a/bb-imager-service/README.md b/bb-imager-service/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ba33b2196a9e3d69c5fb3f95b37cef4685b68c88
--- /dev/null
+++ b/bb-imager-service/README.md
@@ -0,0 +1,14 @@
+# Introduction
+
+A D-BUS service that allows to perform firmware upgrade for BeagleBoard devices (specifically Pocketbeagle2 MSPM0), from userspace applications (GUI).
+
+This is needed because there is no existing D-BUS service (like UDisk2) to open root sysfs entries as a non root user/application. Additionally, it seems most distributions heavily discourage use of `pkexec` since [CVE-2021-4034](https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034).
+
+It uses polkit to verify if the application has necessary permissions to perform firmware upgrade.
+
+## Dependencies
+
+- polkit
+- systemd
+
+It is possible to make things work without systemd, but it is not officially supported right now.