File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed
app/src/main/java/tech/httptoolkit/android Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -182,12 +182,20 @@ class ProxyVpnService : VpnService(), IProtectSocket {
182
182
when {
183
183
isGenymotion -> {
184
184
// For some reason, with Genymotion the whole device crashes if we intercept
185
- // blindly, but intercepting every single application explicitly is fine, so
186
- // we have to individually allow every app instead:
187
- allPackageNames.forEach { name ->
188
- if (name != httpToolkitPackage && ! uninterceptedApps.contains(name)) {
189
- addAllowedApplication(name)
190
- }
185
+ // the whole system, so we have to ensure we *always* explicitly allow
186
+ // every app that we care about.
187
+
188
+ val pkgsToIntercept = allPackageNames.filter { name ->
189
+ name != httpToolkitPackage && ! uninterceptedApps.contains(name)
190
+ }
191
+
192
+ if (! pkgsToIntercept.isEmpty()) {
193
+ pkgsToIntercept.forEach { pkg -> addAllowedApplication(pkg) }
194
+ } else {
195
+ // We can never intercept nothing (or the whole emulator crashes), so
196
+ // instead we intercept a random bit of Genymotions internals, which
197
+ // (AFAICT) doesn't seem to ever send traffic.
198
+ addAllowedApplication(" com.genymotion.genyd" )
191
199
}
192
200
}
193
201
else -> {
You can’t perform that action at this time.
0 commit comments