Guard DISABLE_PLUGIN with PLUGIN permission.

Fixes a p0 security bug. We already have the plugin permission
defined in our manifest. Ensure that senders of the DISABLE_PLUGIN
broadcast have that permission.

Bug: 193444889
Test: manual
Change-Id: Iebaba435c17c5644c5357c0683858447f5ffb897
Merged-In: Iebaba435c17c5644c5357c0683858447f5ffb897
This commit is contained in:
Dave Mankoff
2021-07-21 10:08:04 -04:00
parent 2e440eb0a8
commit c279a42a3f

View File

@@ -183,10 +183,12 @@ public class PluginManagerImpl extends BroadcastReceiver implements PluginManage
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addDataScheme("package");
mContext.registerReceiver(this, filter);
filter.addAction(PLUGIN_CHANGED); filter.addAction(PLUGIN_CHANGED);
filter.addAction(DISABLE_PLUGIN); filter.addAction(DISABLE_PLUGIN);
filter.addDataScheme("package"); filter.addDataScheme("package");
mContext.registerReceiver(this, filter); mContext.registerReceiver(this, filter, PluginInstanceManager.PLUGIN_PERMISSION, null);
filter = new IntentFilter(Intent.ACTION_USER_UNLOCKED); filter = new IntentFilter(Intent.ACTION_USER_UNLOCKED);
mContext.registerReceiver(this, filter); mContext.registerReceiver(this, filter);
} }