Remove apps from hidelist if uninstalled

This commit is contained in:
topjohnwu 2017-11-15 05:14:59 +08:00
parent 826543a291
commit 389299afd1

View File

@ -6,34 +6,26 @@ import android.content.Intent;
import com.topjohnwu.magisk.MagiskManager; import com.topjohnwu.magisk.MagiskManager;
import com.topjohnwu.magisk.container.Policy; import com.topjohnwu.magisk.container.Policy;
import com.topjohnwu.magisk.utils.Shell;
import com.topjohnwu.magisk.utils.Utils; import com.topjohnwu.magisk.utils.Utils;
public class PackageReceiver extends BroadcastReceiver { public class PackageReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
MagiskManager magiskManager = Utils.getMagiskManager(context); MagiskManager mm = Utils.getMagiskManager(context);
String pkg = intent.getData().getEncodedSchemeSpecificPart(); String pkg = intent.getData().getEncodedSchemeSpecificPart();
Policy policy = magiskManager.suDB.getPolicy(pkg);
if (policy == null)
return;
switch (intent.getAction()) { switch (intent.getAction()) {
case Intent.ACTION_PACKAGE_REPLACED: case Intent.ACTION_PACKAGE_REPLACED:
// This will only work pre-O // This will only work pre-O
if (magiskManager.suReauth) { if (mm.suReauth) {
magiskManager.suDB.deletePolicy(policy); mm.suDB.deletePolicy(pkg);
} else {
int uid = intent.getIntExtra(Intent.EXTRA_UID, -1);
// Update the UID if available
if (uid > 0) {
policy.uid = uid % 100000;
}
magiskManager.suDB.updatePolicy(policy);
} }
break; break;
case Intent.ACTION_PACKAGE_FULLY_REMOVED: case Intent.ACTION_PACKAGE_FULLY_REMOVED:
magiskManager.suDB.deletePolicy(policy); mm.suDB.deletePolicy(pkg);
Shell.su_raw("magiskhide --rm " + pkg);
break; break;
} }
} }