Update ANDROID_DEFAULT_CROSSTOOL to default to //external:android/crosstool. Remove the constant.

--
MOS_MIGRATED_REVID=115555161
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 9cd7a56..d33baeb 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -71,6 +71,7 @@
 import com.google.devtools.build.lib.runtime.commands.ShutdownCommand;
 import com.google.devtools.build.lib.runtime.commands.TestCommand;
 import com.google.devtools.build.lib.runtime.commands.VersionCommand;
+import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
 import com.google.devtools.build.lib.server.RPCServer;
 import com.google.devtools.build.lib.server.ServerCommand;
 import com.google.devtools.build.lib.server.signal.InterruptSignalHandler;
@@ -168,6 +169,8 @@
   private final BinTools binTools;
   private final WorkspaceStatusAction.Factory workspaceStatusActionFactory;
   private final ProjectFile.Provider projectFileProvider;
+  @Nullable
+  private final InvocationPolicy invocationPolicy;
 
   // Workspace state (currently exactly one workspace per server)
   private final BlazeDirectories directories;
@@ -187,7 +190,7 @@
       TimestampGranularityMonitor timestampGranularityMonitor,
       SubscriberExceptionHandler eventBusExceptionHandler,
       BinTools binTools, ProjectFile.Provider projectFileProvider,
-      Iterable<BlazeCommand> commands) {
+      InvocationPolicy invocationPolicy, Iterable<BlazeCommand> commands) {
     // Server state
     this.blazeModules = blazeModules;
     overrideCommands(commands);
@@ -196,6 +199,7 @@
     this.packageFactory = pkgFactory;
     this.binTools = binTools;
     this.projectFileProvider = projectFileProvider;
+    this.invocationPolicy = invocationPolicy;
 
     this.ruleClassProvider = ruleClassProvider;
     this.configurationFactory = configurationFactory;
@@ -215,6 +219,21 @@
     setupExecRoot();
   }
 
+  private static InvocationPolicy createInvocationPolicyFromModules(
+      InvocationPolicy initialInvocationPolicy,
+      Iterable<BlazeModule> modules) {
+    InvocationPolicy.Builder builder = InvocationPolicy.newBuilder();
+    builder.mergeFrom(initialInvocationPolicy);
+    // Merge the policies from the modules
+    for (BlazeModule module : modules) {
+      InvocationPolicy modulePolicy = module.getInvocationPolicy();
+      if (modulePolicy != null) {
+        builder.mergeFrom(module.getInvocationPolicy());
+      }
+    }
+    return builder.build();
+  }
+
   @Nullable CoverageReportActionFactory getCoverageReportActionFactory() {
     CoverageReportActionFactory firstFactory = null;
     for (BlazeModule module : blazeModules) {
@@ -266,6 +285,11 @@
     skyframeExecutor.setEventBus(null);
   }
 
+  @Nullable
+  public InvocationPolicy getInvocationPolicy() {
+    return invocationPolicy;
+  }
+
   /**
    * Conditionally enable profiling.
    */
@@ -1305,6 +1329,7 @@
     private BinTools binTools;
     private UUID instanceId;
     private final List<BlazeCommand> commands = new ArrayList<>();
+    private InvocationPolicy invocationPolicy = InvocationPolicy.getDefaultInstance();
 
     public BlazeRuntime build() throws AbruptExitException {
       Preconditions.checkNotNull(directories);
@@ -1453,10 +1478,13 @@
         }
       }
 
+      invocationPolicy = createInvocationPolicyFromModules(invocationPolicy, blazeModules);
+
       return new BlazeRuntime(directories, workspaceStatusActionFactory, skyframeExecutor,
           pkgFactory, ruleClassProvider, configurationFactory,
           clock, startupOptionsProvider, ImmutableList.copyOf(blazeModules),
-          timestampMonitor, eventBusExceptionHandler, binTools, projectFileProvider, commands);
+          timestampMonitor, eventBusExceptionHandler, binTools, projectFileProvider,
+          invocationPolicy, commands);
     }
 
     public Builder setBinTools(BinTools binTools) {
@@ -1464,6 +1492,11 @@
       return this;
     }
 
+    public Builder setInvocationPolicy(InvocationPolicy invocationPolicy) {
+      this.invocationPolicy = invocationPolicy;
+      return this;
+    }
+
     public Builder setDirectories(BlazeDirectories directories) {
       this.directories = directories;
       return this;