Don't crash the system process when a backup transport unregisters

Bug: 2342503
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index ad0fb0c..2e45512 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -497,11 +497,21 @@
         }
     }
 
-    // Add a transport to our set of available backends
+    // Add a transport to our set of available backends.  If 'transport' is null, this
+    // is an unregistration, and the transport's entry is removed from our bookkeeping.
     private void registerTransport(String name, IBackupTransport transport) {
         synchronized (mTransports) {
             if (DEBUG) Log.v(TAG, "Registering transport " + name + " = " + transport);
-            mTransports.put(name, transport);
+            if (transport != null) {
+                mTransports.put(name, transport);
+            } else {
+                mTransports.remove(name);
+                if (mCurrentTransport.equals(name)) {
+                    mCurrentTransport = null;
+                }
+                // Nothing further to do in the unregistration case
+                return;
+            }
         }
 
         // If the init sentinel file exists, we need to be sure to perform the init