Add dumpsys support to carrier config service.

Bug: b/20825995
Change-Id: I2f7e7c8e65b34e5e661f6c595ed9c21e36c65133
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 199c942..53e67bd 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -26,10 +26,12 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.content.ServiceConnection;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.os.AsyncResult;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -52,6 +54,8 @@
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyIntents;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 import java.util.List;
 
 /**
@@ -329,6 +333,22 @@
         }
     }
 
+    @Override
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+                != PackageManager.PERMISSION_GRANTED) {
+            pw.println("Permission Denial: can't dump carrierconfig from from pid="
+                    + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
+            return;
+        }
+        pw.println("CarrierConfigLoader: " + this);
+        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+            pw.println("  Phone Id=" + i);
+            pw.println("  mConfigFromDefaultApp=" + mConfigFromDefaultApp[i]);
+            pw.println("  mConfigFromCarrierApp=" + mConfigFromCarrierApp[i]);
+        }
+    }
+
     private class ConfigServiceConnection implements ServiceConnection {
         int phoneId;
         int eventId;