From 6922b1aedb8510338b75f496bf17d819c8c92a34 Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Wed, 15 Jun 2022 17:19:41 +0200 Subject: [PATCH] Fix ANR on first root capture start --- .../com/emanuelef/remote_capture/CaptureService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java index 9929078f..60c826f8 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java +++ b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java @@ -418,12 +418,6 @@ public class CaptureService extends VpnService implements Runnable { Utils.showToast(this, R.string.vpn_setup_failed); return abortStart(); } - } else { - // Root capture - if(checkCallingOrSelfPermission(Utils.INTERACT_ACROSS_USERS) != PackageManager.PERMISSION_GRANTED) { - boolean success = Utils.rootGrantPermission(this, Utils.INTERACT_ACROSS_USERS); - Utils.showToast(this, success ? R.string.permission_granted : R.string.permission_grant_fail, "INTERACT_ACROSS_USERS"); - } } mWhitelist = PCAPdroid.getInstance().getMalwareWhitelist(); @@ -874,6 +868,12 @@ public class CaptureService extends VpnService implements Runnable { @Override public void run() { if(mSettings.root_capture) { + // Check for INTERACT_ACROSS_USERS, required to query apps of other users/work profiles + if(checkCallingOrSelfPermission(Utils.INTERACT_ACROSS_USERS) != PackageManager.PERMISSION_GRANTED) { + boolean success = Utils.rootGrantPermission(this, Utils.INTERACT_ACROSS_USERS); + mHandler.post(() -> Utils.showToast(this, success ? R.string.permission_granted : R.string.permission_grant_fail, "INTERACT_ACROSS_USERS")); + } + runPacketLoop(-1, this, Build.VERSION.SDK_INT); } else { if(mParcelFileDescriptor != null) {