Add unaudited exported flag to exposed runtime receivers

Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting T or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the T release.

Bug: 161145287
Test: Build
Change-Id: I064c71b21a982401f191fda9d6d4d648f3669afe
diff --git a/PMC/src/com/android/pmc/BleScanReceiver.java b/PMC/src/com/android/pmc/BleScanReceiver.java
index cb33a68..815f520 100644
--- a/PMC/src/com/android/pmc/BleScanReceiver.java
+++ b/PMC/src/com/android/pmc/BleScanReceiver.java
@@ -238,7 +238,8 @@
 
         // RegisterAlarmReceiver for BleScanListener
         mContext.registerReceiver(mAlarmScanListener,
-                new IntentFilter(BleScanListener.BLESCAN));
+                new IntentFilter(BleScanListener.BLESCAN),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
 
     }
 
diff --git a/PMC/src/com/android/pmc/GattPMCReceiver.java b/PMC/src/com/android/pmc/GattPMCReceiver.java
index 4a29dbb..28676f2 100644
--- a/PMC/src/com/android/pmc/GattPMCReceiver.java
+++ b/PMC/src/com/android/pmc/GattPMCReceiver.java
@@ -48,7 +48,8 @@
 
         // RegisterAlarmReceiver for GattListener
         context.registerReceiver(mGattClientListener,
-                new IntentFilter(GattClientListener.GATTCLIENT_ALARM));
+                new IntentFilter(GattClientListener.GATTCLIENT_ALARM),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
         Log.d(TAG, "Start GattPMCReceiver()");
     }
 
diff --git a/PMC/src/com/android/pmc/PMCMainActivity.java b/PMC/src/com/android/pmc/PMCMainActivity.java
index 8f59ef2..25ecb91 100644
--- a/PMC/src/com/android/pmc/PMCMainActivity.java
+++ b/PMC/src/com/android/pmc/PMCMainActivity.java
@@ -109,11 +109,16 @@
         mBtnStart = (Button) findViewById(R.id.btnstart);
         mBtnStop = (Button) findViewById(R.id.btnstop);
         addListenerOnButton();
-        registerReceiver(mPMCReceiver, new IntentFilter(AUTOPOWER_INTENT_STRING));
-        registerReceiver(mPMCReceiver, new IntentFilter(SETPARAMS_INTENT_STRING));
-        registerReceiver(mBleScanReceiver, new IntentFilter(BleScanReceiver.BLE_SCAN_INTENT));
-        registerReceiver(mGattPMCReceiver, new IntentFilter(GattPMCReceiver.GATTPMC_INTENT));
-        registerReceiver(mA2dpReceiver, new IntentFilter(A2dpReceiver.A2DP_INTENT));
+        registerReceiver(mPMCReceiver, new IntentFilter(AUTOPOWER_INTENT_STRING),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        registerReceiver(mPMCReceiver, new IntentFilter(SETPARAMS_INTENT_STRING),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        registerReceiver(mBleScanReceiver, new IntentFilter(BleScanReceiver.BLE_SCAN_INTENT),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        registerReceiver(mGattPMCReceiver, new IntentFilter(GattPMCReceiver.GATTPMC_INTENT),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        registerReceiver(mA2dpReceiver, new IntentFilter(A2dpReceiver.A2DP_INTENT),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
     }
 
     @Override
@@ -201,7 +206,8 @@
             mDR = new WifiDownloadReceiver(PMCMainActivity.this,
                     "http://" + mServerIP + ":" + mServerPort + "/" + filename, mIntervalMillis,
                     mAlarmManager, mPIDownload);
-            registerReceiver(mDR, new IntentFilter(sDownloadAction));
+            registerReceiver(mDR, new IntentFilter(sDownloadAction),
+                    Context.RECEIVER_EXPORTED_UNAUDITED);
             Log.d(TAG, "Setting download data alarm. Interval: " + mIntervalMillis);
             mDR.scheduleDownload();
             mBtnStart.setEnabled(false);
@@ -225,7 +231,8 @@
         // Stop any ongoing scans before starting a new instance.
         stopConnectivityScan();
         mConnSR = new WifiConnScanReceiver(this, mIntervalMillis, mAlarmManager, mPIConnScan);
-        registerReceiver(mConnSR, new IntentFilter(sConnScanAction));
+        registerReceiver(mConnSR, new IntentFilter(sConnScanAction),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
         Log.d(TAG, "Setting connectivity scan alarm. Interval: " + mIntervalMillis);
         mConnSR.scheduleConnScan();
         mBtnStart.setEnabled(false);
@@ -262,7 +269,8 @@
         }
         mGScanR = new WifiGScanReceiver(
                 this, scanSettings, mIntervalMillis, mAlarmManager, mPIGScan);
-        registerReceiver(mGScanR, new IntentFilter(sGScanAction));
+        registerReceiver(mGScanR, new IntentFilter(sGScanAction),
+                Context.RECEIVER_EXPORTED_UNAUDITED);
         Log.d(TAG, "Setting Gscan alarm. Interval: " + mIntervalMillis);
         mGScanR.scheduleGscan();
         mBtnStart.setEnabled(false);