diff --git a/tools/aconfig/aconfig_storage_file/Android.bp b/tools/aconfig/aconfig_storage_file/Android.bp
index c089d54..2a606bf 100644
--- a/tools/aconfig/aconfig_storage_file/Android.bp
+++ b/tools/aconfig/aconfig_storage_file/Android.bp
@@ -6,7 +6,6 @@
     name: "aconfig_storage_file.defaults",
     edition: "2021",
     lints: "none",
-    srcs: ["src/lib.rs"],
     rustlibs: [
         "libanyhow",
         "libthiserror",
@@ -22,12 +21,21 @@
     crate_name: "aconfig_storage_file",
     host_supported: true,
     defaults: ["aconfig_storage_file.defaults"],
+    srcs: ["src/lib.rs"],
+}
+
+rust_binary_host {
+    name: "aconfig-storage",
+    defaults: ["aconfig_storage_file.defaults"],
+    srcs: ["src/main.rs"],
+    rustlibs: ["libaconfig_storage_file"],
 }
 
 rust_test_host {
     name: "aconfig_storage_file.test",
     test_suites: ["general-tests"],
     defaults: ["aconfig_storage_file.defaults"],
+    srcs: ["src/lib.rs"],
 }
 
 rust_protobuf {
diff --git a/tools/aconfig/aconfig_storage_file/Cargo.toml b/tools/aconfig/aconfig_storage_file/Cargo.toml
index 9b9a615..641f481 100644
--- a/tools/aconfig/aconfig_storage_file/Cargo.toml
+++ b/tools/aconfig/aconfig_storage_file/Cargo.toml
@@ -14,6 +14,10 @@
 thiserror = "1.0.56"
 clap = { version = "4.1.8", features = ["derive"] }
 
+[[bin]]
+name = "aconfig-storage"
+path = "src/main.rs"
+
 [build-dependencies]
 protobuf-codegen = "3.2.0"
 cxx-build = "1.0"
diff --git a/tools/aconfig/aconfig_storage_file/src/lib.rs b/tools/aconfig/aconfig_storage_file/src/lib.rs
index ec41a4e..202f6a4 100644
--- a/tools/aconfig/aconfig_storage_file/src/lib.rs
+++ b/tools/aconfig/aconfig_storage_file/src/lib.rs
@@ -78,7 +78,9 @@
             "package_map" => Ok(Self::PackageMap),
             "flag_map" => Ok(Self::FlagMap),
             "flag_val" => Ok(Self::FlagVal),
-            _ => Err(anyhow!("Invalid storage file to create")),
+            _ => Err(anyhow!(
+                "Invalid storage file type, valid types are package_map|flag_map|flag_val]"
+            )),
         }
     }
 }
diff --git a/tools/aconfig/aconfig_storage_file/src/main.rs b/tools/aconfig/aconfig_storage_file/src/main.rs
index 2c7b87c..b5e6158 100644
--- a/tools/aconfig/aconfig_storage_file/src/main.rs
+++ b/tools/aconfig/aconfig_storage_file/src/main.rs
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-//! `aconfig_storage` is a debugging tool to parse storage files
+//! `aconfig-storage` is a debugging tool to parse storage files
 
 use aconfig_storage_file::{
     list_flags, read_file_to_bytes, AconfigStorageError, FlagTable, FlagValueList, PackageTable,
@@ -24,7 +24,7 @@
 use clap::{builder::ArgAction, Arg, Command};
 
 fn cli() -> Command {
-    Command::new("aconfig_storage_file")
+    Command::new("aconfig-storage")
         .subcommand_required(true)
         .subcommand(
             Command::new("print")
@@ -39,13 +39,13 @@
         .subcommand(
             Command::new("list")
                 .arg(
-                    Arg::new("package_map")
-                        .long("package_map")
+                    Arg::new("package-map")
+                        .long("package-map")
                         .required(true)
                         .action(ArgAction::Set),
                 )
-                .arg(Arg::new("flag_map").long("flag_map").required(true).action(ArgAction::Set))
-                .arg(Arg::new("flag_val").long("flag_val").required(true).action(ArgAction::Set)),
+                .arg(Arg::new("flag-map").long("flag-map").required(true).action(ArgAction::Set))
+                .arg(Arg::new("flag-val").long("flag-val").required(true).action(ArgAction::Set)),
         )
 }
 
@@ -80,9 +80,9 @@
             print_storage_file(file_path, file_type)?
         }
         Some(("list", sub_matches)) => {
-            let package_map = sub_matches.get_one::<String>("package_map").unwrap();
-            let flag_map = sub_matches.get_one::<String>("flag_map").unwrap();
-            let flag_val = sub_matches.get_one::<String>("flag_val").unwrap();
+            let package_map = sub_matches.get_one::<String>("package-map").unwrap();
+            let flag_map = sub_matches.get_one::<String>("flag-map").unwrap();
+            let flag_val = sub_matches.get_one::<String>("flag-val").unwrap();
             let flags = list_flags(package_map, flag_map, flag_val)?;
             for flag in flags.iter() {
                 println!("{}: {}", flag.0, flag.1);
