diff --git a/Android.bp b/Android.bp
index 89b4d3b..fdf386f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -146,5 +146,19 @@
         "linkerconfig_modules",
         "linkerconfig_contents",
     ],
-    host_supported: true,
+}
+
+prebuilt_etc {
+    name: "ld.config.recovery.txt",
+    recovery: true,
+    filename: "ld.config.txt",
+    src: ":generate_recovery_linker_config",
+}
+
+genrule {
+    name: "generate_recovery_linker_config",
+    recovery: true,
+    out: ["ld.config.recovery.txt"],
+    tools: ["linkerconfig"],
+    cmd: "$(location linkerconfig) --recovery --target $(out)",
 }
diff --git a/main.cc b/main.cc
index 28aabfa..6c799c5 100644
--- a/main.cc
+++ b/main.cc
@@ -35,6 +35,7 @@
 #ifndef __ANDROID__
     {"root", required_argument, 0, 'r'},
     {"vndk", required_argument, 0, 'v'},
+    {"recovery", no_argument, 0, 'y'},
 #endif
     {"help", no_argument, 0, 'h'},
     {0, 0, 0, 0}};
@@ -43,6 +44,7 @@
   std::string target_file;
   std::string root;
   std::string vndk_version;
+  bool is_recovery;
 };
 
 [[noreturn]] void PrintUsage(int status = EXIT_SUCCESS) {
@@ -50,6 +52,7 @@
 #ifndef __ANDROID__
                " --root <root dir>"
                " --vndk <vndk version>"
+               " --recovery"
 #endif
                " [--recovery]"
                " [--help]"
@@ -60,7 +63,7 @@
 bool ParseArgs(int argc, char* argv[], ProgramArgs* args) {
   int parse_result;
   while ((parse_result = getopt_long(
-              argc, argv, "t:r:v:h", program_options, NULL)) != -1) {
+              argc, argv, "t:r:v:hy", program_options, NULL)) != -1) {
     switch (parse_result) {
       case 't':
         args->target_file = optarg;
@@ -71,6 +74,9 @@
       case 'v':
         args->vndk_version = optarg;
         break;
+      case 'y':
+        args->is_recovery = true;
+        break;
       case 'h':
         PrintUsage();
       default:
@@ -85,11 +91,22 @@
   return true;
 }
 
-android::linkerconfig::modules::Configuration GetConfiguration() {
-  if (android::linkerconfig::modules::IsRecoveryMode()) {
+android::linkerconfig::modules::Configuration GetConfiguration(ProgramArgs args) {
+  // Recovery mode does not require environmental variables.
+  if (args.is_recovery || android::linkerconfig::modules::IsRecoveryMode()) {
     return android::linkerconfig::contents::CreateRecoveryConfiguration();
   }
 
+#ifndef __ANDROID__
+  if (args.root == "" || args.vndk_version == "") {
+    PrintUsage();
+  }
+  android::linkerconfig::modules::Variables::AddValue("ro.vndk.version",
+                                                      args.vndk_version);
+#endif
+
+  android::linkerconfig::generator::LoadVariables(args.root);
+
   if (android::linkerconfig::modules::IsLegacyDevice()) {
     return android::linkerconfig::contents::CreateLegacyConfiguration();
   }
@@ -121,7 +138,7 @@
 #endif
   );
 
-  ProgramArgs args;
+  ProgramArgs args = {.is_recovery = false};
 
   if (!ParseArgs(argc, argv, &args)) {
     PrintUsage(EXIT_FAILURE);
@@ -139,16 +156,7 @@
     out = &file_out;
   }
 
-#ifndef __ANDROID__
-  if (args.root == "" || args.vndk_version == "") {
-    PrintUsage();
-  }
-  android::linkerconfig::modules::Variables::AddValue("ro.vndk.version",
-                                                      args.vndk_version);
-#endif
-
-  android::linkerconfig::generator::LoadVariables(args.root);
-  auto config = GetConfiguration();
+  auto config = GetConfiguration(args);
   android::linkerconfig::modules::ConfigWriter config_writer;
 
   config.WriteConfig(config_writer);
