summaryrefslogtreecommitdiffstats
path: root/service/java/com
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2014-11-06 17:58:11 -0800
committerVinit Deshpande <vinitd@google.com>2014-11-12 10:47:55 -0800
commitcc9395f7b604c626e8c45021b52dad3abff9bd18 (patch)
treebd740a7e02df8d77fc8ad3324d5cb8d36bc0262b /service/java/com
parentf93f774c884d2fcbeadaf575a3b3fa065da2e3d0 (diff)
downloadandroid_frameworks_opt_net_wifi-cc9395f7b604c626e8c45021b52dad3abff9bd18.tar.gz
android_frameworks_opt_net_wifi-cc9395f7b604c626e8c45021b52dad3abff9bd18.tar.bz2
android_frameworks_opt_net_wifi-cc9395f7b604c626e8c45021b52dad3abff9bd18.zip
Don't allow SCAN_REQUEST broadcast to launch apps
This change sets the package to Wifi package for all the timer broadcasts it schedules. This way, the alarm manager won't wake up any other apps. Bug: 17611296 Change-Id: I248695b2c4763c799b730a236945e91757dfde16
Diffstat (limited to 'service/java/com')
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index f02248413..ca0a18943 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -900,11 +900,8 @@ public class WifiStateMachine extends StateMachine {
}
mAlarmManager = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
- Intent scanIntent = new Intent(ACTION_START_SCAN, null);
- mScanIntent = PendingIntent.getBroadcast(mContext, SCAN_REQUEST, scanIntent, 0);
-
- Intent batchedIntent = new Intent(ACTION_REFRESH_BATCHED_SCAN, null);
- mBatchedScanIntervalIntent = PendingIntent.getBroadcast(mContext, 0, batchedIntent, 0);
+ mScanIntent = getPrivateBroadcast(ACTION_START_SCAN, SCAN_REQUEST);
+ mBatchedScanIntervalIntent = getPrivateBroadcast(ACTION_REFRESH_BATCHED_SCAN, 0);
mDefaultFrameworkScanIntervalMs = mContext.getResources().getInteger(
R.integer.config_wifi_framework_scan_interval);
@@ -1054,6 +1051,14 @@ public class WifiStateMachine extends StateMachine {
mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
}
+
+ PendingIntent getPrivateBroadcast(String action, int requestCode) {
+ Intent intent = new Intent(action, null);
+ intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+ intent.setPackage(this.getClass().getPackage().getName());
+ return PendingIntent.getBroadcast(mContext, requestCode, intent, 0);
+ }
+
private int mVerboseLoggingLevel = 0;
int getVerboseLoggingLevel() {
@@ -5341,6 +5346,7 @@ public class WifiStateMachine extends StateMachine {
/* send regular delayed shut down */
Intent driverStopIntent = new Intent(ACTION_DELAYED_DRIVER_STOP, null);
+ driverStopIntent.setPackage(this.getClass().getPackage().getName());
driverStopIntent.putExtra(DELAYED_STOP_COUNTER, mDelayedStopCounter);
mDriverStopIntent = PendingIntent.getBroadcast(mContext,
DRIVER_STOP_REQUEST, driverStopIntent,