Integrate StrictMode with CloseGuard

In additional to adding the StringMode API for controling CloseGuard,
this checkin fixes several CloseGuard issues found booting a device.

Bug: 3041575
Change-Id: I4dffd184f49438d6d477ed81a1c2a2a5b56cc76b
diff --git a/services/java/com/android/server/DockObserver.java b/services/java/com/android/server/DockObserver.java
index f993093..dea9007 100644
--- a/services/java/com/android/server/DockObserver.java
+++ b/services/java/com/android/server/DockObserver.java
@@ -102,6 +102,7 @@
         try {
             FileReader file = new FileReader(DOCK_STATE_PATH);
             int len = file.read(buffer, 0, 1024);
+            file.close();
             mPreviousDockState = mDockState = Integer.valueOf((new String(buffer, 0, len)).trim());
         } catch (FileNotFoundException e) {
             Slog.w(TAG, "This kernel does not have dock station support");
diff --git a/services/java/com/android/server/InputManager.java b/services/java/com/android/server/InputManager.java
index e7eb129..13be984 100644
--- a/services/java/com/android/server/InputManager.java
+++ b/services/java/com/android/server/InputManager.java
@@ -493,7 +493,9 @@
                     CALIBRATION_DIR_PATH + deviceName + ".idc");
             if (calibrationFile.exists()) {
                 try {
-                    properties.load(new FileInputStream(calibrationFile));
+                    FileInputStream fis = new FileInputStream(calibrationFile);
+                    properties.load(fis);
+                    fis.close();
                 } catch (IOException ex) {
                     Slog.w(TAG, "Error reading input device calibration properties for device "
                             + deviceName + " from " + calibrationFile + ".", ex);
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 7c758a2..7ad95da 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -1225,6 +1225,7 @@
                 }
 
             }
+            permReader.close();
         } catch (XmlPullParserException e) {
             Slog.w(TAG, "Got execption parsing permissions.", e);
         } catch (IOException e) {
diff --git a/services/java/com/android/server/UsbObserver.java b/services/java/com/android/server/UsbObserver.java
index 546e5f8..cfa83be 100644
--- a/services/java/com/android/server/UsbObserver.java
+++ b/services/java/com/android/server/UsbObserver.java
@@ -119,6 +119,7 @@
         try {
             FileReader file = new FileReader(USB_CONFIGURATION_PATH);
             int len = file.read(buffer, 0, 1024);
+            file.close();
             mPreviousUsbConfig = mUsbConfig = Integer.valueOf((new String(buffer, 0, len)).trim());
 
         } catch (FileNotFoundException e) {
@@ -133,6 +134,7 @@
                 File file = new File(files[i], "enable");
                 FileReader reader = new FileReader(file);
                 int len = reader.read(buffer, 0, 1024);
+                reader.close();
                 int value = Integer.valueOf((new String(buffer, 0, len)).trim());
                 String functionName = files[i].getName();
                 if (value == 1) {