Giter Site home page Giter Site logo

emanuele-f / pcapdroid Goto Github PK

View Code? Open in Web Editor NEW
1.9K 42.0 242.0 14.41 MB

No-root network monitor, firewall and PCAP dumper for Android

Home Page: https://emanuele-f.github.io/PCAPdroid

License: GNU General Public License v3.0

Java 52.74% CMake 0.32% C 46.35% Python 0.37% Lua 0.12% Shell 0.06% Makefile 0.04%
pcap capture-traffic android no-root traffic-monitor pcap-files sniffer network-analysis sniffing decryption

pcapdroid's Introduction

PCAPdroid

PCAPdroid is a privacy-friendly open source app which lets you track, analyze and block the connections made by the other apps in your device. It also allows you to export a PCAP dump of the traffic, inspect HTTP, decrypt TLS traffic and much more!

PCAPdroid simulates a VPN in order to capture the network traffic without root. It does not use a remote VPN server, instead data is processed locally on the device.

Features:

  • Log and examine the connections made by user and system apps
  • Extract the SNI, DNS query, HTTP URL and the remote IP address
  • Inspect HTTP requests and replies thanks to the built-in decoders
  • Inspect the full connections payload as hexdump/text
  • Decrypt the HTTPS/TLS traffic and export the SSLKEYLOGFILE
  • Dump the traffic to a PCAP file, download it from a browser, or stream it to a remote receiver for real-time analysis (e.g. Wireshark)
  • Create rules to filter out the good traffic and easily spot anomalies
  • Identify the country and ASN of remote server via offline DB lookups
  • On rooted devices, capture the traffic while other VPN apps are running

Paid features:

  • Firewall: create rules to block individual apps, domains and IP addresses
  • Malware detection: detect malicious connections by using third-party blacklists
  • PCAPng format: makes it easier to export and analyze decrypted traffic

If you plan to use PCAPdroid to perform packet analysis, please check out the specific section of the manual.

Get it on F-Droid Get it on Google Play

You can test the latest features before the official release by adding the Beta repository to the F-Droid app.

User Guide

Check out the quick start instructions or the full User Guide.

Sponsors

The PCAPdroid project is sponsored by AVEQ GmbH.

If you want to sponsor this project drop me an email.

Community

You can help the PCAPdroid project in many ways:

Translation status
  • Discuss new features
  • Improve the app theme and layout
  • Star the project on Github and on Google Play
  • Of course provide code pull requests!

Join the international PCAPdroid community on Telegram or on Matrix.

Integrating into your APP

Some features of PCAPdroid can be integrated into a third-party app to provide packet capture capabilities.

  • For rooted devices, the pcapd daemon can be directly integrated into your APK to capture network packets.
  • For all the devices, PCAPdroid exposes an API to control the packet capture and send the captured packets via UDP to your app. This requires to install PCAPdroid along with your app.

Third Party

  • zdtun: TCP/UDP/ICMP connections proxy
  • nDPI: deep packet inspection library, used to extract the connections metadata
  • mitmproxy: a local proxy used to perform TLS decryption

For the complete list of third party libraries and the corresponding licenses check out the "About" page in the app.

Building

  1. On Windows, install gitforwindows
  2. Clone this repo
  3. Inside the repo dir, run git submodule update --init. The submodules directory should get populated.
  4. Open the project in Android Studio, install the appropriate SDK and the NDK
  5. Build the app

Note: If you get "No valid CMake executable was found", be sure to install the CMake version used by PCAPdroid (currently 3.22.1) from the SDK manager

pcapdroid's People

Contributors

ahohnmyc avatar akihironagai avatar atalanttore avatar atrate avatar bleach4u avatar blockythedev avatar comradekingu avatar dgs7 avatar elicec avatar emanuele-f avatar grumpyrobsel avatar ionicpoet avatar izzysoft avatar lisapple avatar m4rc3lus avatar mittalshubham avatar mrikso avatar mylinde avatar myzhan avatar nek-ra avatar odkate avatar oersen avatar phyrz91 avatar rezaalmanda avatar rikhwanto avatar sr093906 avatar tacothedank avatar topminipie avatar xdisk-translator avatar yamoling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pcapdroid's Issues

Enrich exported PCAP with app information

The android app package name and/or its uid should be exported as part of the capture, either by encapsulation or by using other formats. This should allow users to filter by app in programs like wireshark.

Support standard device sizes

The app layout should be adapted to the standard device sizes. In particular, the horizontal orientation should be fixed.

Improve apps information

PCAPdroid uses some virtual app names to identify core android daemons, e.g. netd. The gui should clarify that these apps actually do not exist. For existing apps, it would be useful to provide a link to the app information activity to make it simple to uninstall unwanted apps.

Built-in TLS Decryption

At the current status, PCAPdroid requires an external proxy in order to decrypt TLS packets. On the other hand, a built-in solution would provide the following advantages:

  • No need to have a PC to decrypt TLS
  • PCAPdroid could show the decrypted payload directly into the app. This is related to #38.
  • PCAPdroid could produce a decrypted decryptable PCAP

Requirements

  • Should support TLS 1.3
  • Should not impact the main PCAPdroid development. TLS decryption is a secondary topic in PCAPdroid, so this feature should be supported by an active third party
  • Should comply to the F-Droid policy (e.g. do not bundle any binary)
  • The solution should be light, primary in terms of device resources (cpu, memory) and possibly in terms of dependencies and APK size

Candidates

  • LittleProxy-mitm/LittleProxy is an HTTP proxy. It fits the purpose of a ready-to-use library, however depends on netty, which is big dependency.
  • nitmproxy is a self contained SOCKS/HTTP proxy also using netty. SOCKS offers the possibility to decrypt non-HTTPS traffic.

Other approaches:

  • NetBare: unmaintained, requires heavy modifications to only extract the proxy code, does not support TLS 1.3, it has the advantage of using java.nio for networking, which fits the minimal dependencies requirement
  • any native C/C++ library could be integrated

User Experience

Users will have an option to enable the built-in TLS decryption by a toggle. The old mitmproxy option will be replaced with a more generic ability to use socks5 proxy, which is independent from the TLS decryption. Once enabled, the TLS decryption will happen under the hoods; android proxy settings will be untouched. It will have the following effects:

  • In the connections view, the TLS connections data will be replaced by decrypted protocol data, e.g. HTTPS will be decrypted and the HTTP request/reply will be shown
  • The PCAP will also contain the decrypted payload data in place of the original TLS data The traffic could be dumped in the PCAPNG file format, which contains a "Decryption Secrets Block" to store the decryption keys.

In essence TLS will be decapsulated and its inner data shown.

Roadmap

The built-in decryption is now implemented via the PCAPdroid-mitm addon.

  • Implement socks5 client in PCAPdroid (#44)
  • Build the mitm proxy addon
  • Verify that embedded mitm proxy properly proxies the packets received by the socks5 interface
  • Show the decrypted connection in PCAPdroid
  • Report rejected certificates warnings from mitmproxy in the app
  • There are some TLS connections which are not decrypted, possibly fix/report to the user why this happens
  • Provide certificate installation via Intent on Android < 11
  • Harden the proxy via the SOCKS5 authentication
  • Fix export of SSLKEYLOG
  • Improve matching of HTTP request/replies in the UI (e.g. highlight row when clicking "jump" icon, or sort connections)
  • Documentation, updates docs on methods to bypass untrusted user certs (on Android 7, e.g. magisk trust user certs, bromite chrome://flags), pinning (LSposed module sslunpinning) and Certificate transparency (avoid using a system cert or use magisk hide) - see the docs
  • Suggest users to disable Autostart or similar software which can prevent the mitm addon execution

Implement start via intent

The ability to control the capture via intents would enable other apps to use PCAPdroid as a capture tool. The requirements are:

  • start and stop the app, with ability to specify the configuration (e.g. dump mode and filter)
  • avoid opening the pcapdroid gui
  • ask for user confirmation the first time another app tries to control Pcapdroid to prevent malicious apps from dumping users traffic

02f238a implemented the ability to start PCAPdroid via an intent, for example:

adb shell am start -e autostart true -e proxyIp 192.168.200.2 -e proxyPort 1234 -e collectorIp 192.168.200.3 -e collectorPort 8080 -e filterPackage com.google.ar.core -n com.emanuelef.remote_capture/.MainActivity

However, there are the following issues which prevent the functionality from being functional and secure:

  • Since permissions are bypassed (normally an app would require the BIND_VPN_SERVICE permission to start the CaptureService), a malicious app could start the PCAPdroid app to mirror the device traffic to a remote server via the UDP exporter (since it can change the app configuration).
  • Rotating the device/resuming the app (thus calling onCreate again) restarts the app as the getIntent still returns the autostart intent.
  • Sending a new intent does not restart the app if it's in foreground/background (OnNewIntent is not called so I've removed it)
  • Minimal docs on how to use this would be useful (to https://github.com/emanuele-f/PCAPdroid/tree/gh-pages, after these issues are fixed)

Update: due to the issues above, the commit is now reverted.

upload big file when PCAPdroid on

hi, not a bug more of a request. here is,
step 1. install PCAPdroid app, start VPN connect.
2. open my web page, upload a big file, like 100MB
3. wait a minute, then upload fail
4. stop VPN connect, then upload a big file and upload success
5. start VPN connect, then upload a small file, like 100KB, and upload success
does a limit size in somewhere sets too slow?
Thanks and thanks for creating this very useful app

ps: PCAPdroid 1.3.4 from github.

local reference table overflow

I've been trying to use this APK but I've been running into a strange issue. I'm getting this stack trace:

2020-...art/runtime/indirect_reference_table.cc:132] JNI ERROR (app bug): local reference table overflow (max=512)
2020-...art/runtime/indirect_reference_table.cc:132] local reference table dump:
2020-...art/runtime/indirect_reference_table.cc:132]   Last 10 entries (of 512):
2020-...art/runtime/indirect_reference_table.cc:132]       511: 0x12ded740 java.lang.String ""
2020-...art/runtime/indirect_reference_table.cc:132]       510: 0x12df90e8 com.emanuelef.remote_capture.ConnDescriptor[] (3 elements)
2020-...art/runtime/indirect_reference_table.cc:132]       509: 0x12ca9d30 java.lang.Class<com.emanuelef.remote_capture.ConnDescriptor>
2020-...art/runtime/indirect_reference_table.cc:132]       508: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       507: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       506: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       505: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       504: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       503: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]       502: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/indirect_reference_table.cc:132]   Summary:
2020-...art/runtime/indirect_reference_table.cc:132]        53 of com.emanuelef.remote_capture.ConnDescriptor (53 unique instances)
2020-...art/runtime/indirect_reference_table.cc:132]         1 of com.emanuelef.remote_capture.ConnDescriptor[]
2020-...art/runtime/indirect_reference_table.cc:132]         5 of com.emanuelef.remote_capture.ConnDescriptor[] (2 elements) (5 unique instances)
2020-...art/runtime/indirect_reference_table.cc:132]        14 of com.emanuelef.remote_capture.ConnDescriptor[] (3 elements) (14 unique instances)
2020-...art/runtime/indirect_reference_table.cc:132]         1 of com.emanuelef.remote_capture.ConnDescriptor[] (4 elements)
2020-...art/runtime/indirect_reference_table.cc:132]         1 of java.lang.Thread
2020-...art/runtime/indirect_reference_table.cc:132]       274 of java.lang.String (274 unique instances)
2020-...art/runtime/indirect_reference_table.cc:132]       163 of java.lang.Class (2 unique instances)
2020-...art/runtime/indirect_reference_table.cc:132] 
2020-...art/runtime/runtime.cc:422] Runtime aborting...
2020-...art/runtime/runtime.cc:422] Aborting thread:
2020-...art/runtime/runtime.cc:422] "CaptureService Thread" prio=5 tid=17 Runnable
2020-...art/runtime/runtime.cc:422]   | group="" sCount=0 dsCount=0 obj=0x12d25160 self=0x7f18b21400
2020-...art/runtime/runtime.cc:422]   | sysTid=4480 nice=0 cgrp=default sched=0/0 handle=0x7f153ae450
2020-...art/runtime/runtime.cc:422]   | state=R schedstat=( 6287098280 1315732660 5421 ) utm=43 stm=584 core=4 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f152ac000-0x7f152ae000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes= "abort lock" "mutator lock"(shared held)
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000047e090  /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000047e08c  /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 00000000004521f8  /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+480)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000440170  /system/lib64/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+56)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 000000000043ff90  /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+576)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000433998  /system/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+148)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 00000000000e5a7c  /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1592)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 000000000024d918  /system/lib64/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+308)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 000000000034c78c  /system/lib64/libart.so (_ZN3art3JNI12NewStringUTFEP7_JNIEnvPKc+616)
2020-...art/runtime/runtime.cc:422]   native: #09 pc 0000000000003a90  /data/app/com.emanuelef.remote_capture-1/lib/arm64/libvpnproxy-jni.so (???)
2020-...art/runtime/runtime.cc:422]   native: #10 pc 00000000000034b0  /data/app/com.emanuelef.remote_capture-1/lib/arm64/libzdtun.so (zdtun_iter_connections+108)
2020-...art/runtime/runtime.cc:422]   at com.emanuelef.remote_capture.CaptureService.runPacketLoop(Native method)
2020-...art/runtime/runtime.cc:422]   at com.emanuelef.remote_capture.CaptureService.run(CaptureService.java:235)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock
2020-...art/runtime/runtime.cc:422] All threads:
2020-...art/runtime/runtime.cc:422] DALVIK THREADS (17):
2020-...art/runtime/runtime.cc:422] "CaptureService Thread" prio=5 tid=17 Runnable
2020-...art/runtime/runtime.cc:422]   | group="" sCount=0 dsCount=0 obj=0x12d25160 self=0x7f18b21400
2020-...art/runtime/runtime.cc:422]   | sysTid=4480 nice=0 cgrp=default sched=0/0 handle=0x7f153ae450
2020-...art/runtime/runtime.cc:422]   | state=R schedstat=( 6307026989 1315763576 5423 ) utm=44 stm=585 core=4 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f152ac000-0x7f152ae000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes= "abort lock" "mutator lock"(shared held)
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000047e090  /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000047e08c  /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 00000000004521f8  /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+480)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000469d7c  /system/lib64/libart.so (_ZN3art14DumpCheckpoint3RunEPNS_6ThreadE+832)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000461f64  /system/lib64/libart.so (_ZN3art10ThreadList13RunCheckpointEPNS_7ClosureE+476)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000461b54  /system/lib64/libart.so (_ZN3art10ThreadList4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEb+848)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000043ffa0  /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+592)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 0000000000433998  /system/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+148)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 00000000000e5a7c  /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1592)
2020-...art/runtime/runtime.cc:422]   native: #09 pc 000000000024d918  /system/lib64/libart.so (_ZN3art22IndirectReferenceTable3AddEjPNS_6mirror6ObjectE+308)
2020-...art/runtime/runtime.cc:422]   native: #10 pc 000000000034c78c  /system/lib64/libart.so (_ZN3art3JNI12NewStringUTFEP7_JNIEnvPKc+616)
2020-...art/runtime/runtime.cc:422]   native: #11 pc 0000000000003a90  /data/app/com.emanuelef.remote_capture-1/lib/arm64/libvpnproxy-jni.so (???)
2020-...art/runtime/runtime.cc:422]   native: #12 pc 00000000000034b0  /data/app/com.emanuelef.remote_capture-1/lib/arm64/libzdtun.so (zdtun_iter_connections+108)
2020-...art/runtime/runtime.cc:422]   at com.emanuelef.remote_capture.CaptureService.runPacketLoop(Native method)
2020-...art/runtime/runtime.cc:422]   at com.emanuelef.remote_capture.CaptureService.run(CaptureService.java:235)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "main" prio=5 tid=1 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x753d2850 self=0x7f33895a00
2020-...art/runtime/runtime.cc:422]   | sysTid=4434 nice=0 cgrp=default sched=0/0 handle=0x7f37911a98
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 652039840 66308616 670 ) utm=53 stm=11 core=3 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7fc61dc000-0x7fc61de000 stackSize=8MB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: SyS_epoll_wait+0x2cc/0x384
2020-...art/runtime/runtime.cc:422]   kernel: SyS_epoll_pwait+0xb4/0x12c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ab80  /system/lib64/libc.so (__epoll_pwait+8)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000001e1a4  /system/lib64/libc.so (epoll_pwait+64)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000018010  /system/lib64/libutils.so (_ZN7android6Looper9pollInnerEi+156)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000017eb4  /system/lib64/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+60)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 00000000000f05f0  /system/lib64/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvP8_jobjecti+48)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 00000000008a3e40  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
2020-...art/runtime/runtime.cc:422]   at android.os.MessageQueue.nativePollOnce(Native method)
2020-...art/runtime/runtime.cc:422]   at android.os.MessageQueue.next(MessageQueue.java:323)
2020-...art/runtime/runtime.cc:422]   at android.os.Looper.loop(Looper.java:136)
2020-...art/runtime/runtime.cc:422]   at android.app.ActivityThread.main(ActivityThread.java:6119)
2020-...art/runtime/runtime.cc:422]   at java.lang.reflect.Method.invoke!(Native method)
2020-...art/runtime/runtime.cc:422]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
2020-...art/runtime/runtime.cc:422]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:792)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Jit thread pool worker thread 0" prio=5 tid=2 Native (still starting up)
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x0 self=0x7f2c00d000
2020-...art/runtime/runtime.cc:422]   | sysTid=4439 nice=9 cgrp=default sched=0/0 handle=0x7f32f04450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 153258252 10977789 45 ) utm=12 stm=2 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32e06000-0x7f32e08000 stackSize=1021KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000046bb24  /system/lib64/libart.so (_ZN3art10ThreadPool7GetTaskEPNS_6ThreadE+248)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 000000000046afcc  /system/lib64/libart.so (_ZN3art16ThreadPoolWorker3RunEv+124)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 000000000046a8f0  /system/lib64/libart.so (_ZN3art16ThreadPoolWorker8CallbackEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Signal Catcher" prio=5 tid=3 WaitingInMainSignalCatcherLoop
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44670 self=0x7f33896400
2020-...art/runtime/runtime.cc:422]   | sysTid=4440 nice=0 cgrp=default sched=0/0 handle=0x7f32e03450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 847250 0 1 ) utm=0 stm=0 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32d09000-0x7f32d0b000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: do_sigtimedwait+0xe8/0x1cc
2020-...art/runtime/runtime.cc:422]   kernel: SyS_rt_sigtimedwait+0xc8/0x118
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ad60  /system/lib64/libc.so (__rt_sigtimedwait+8)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 0000000000024d48  /system/lib64/libc.so (sigwait+64)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 00000000004448d4  /system/lib64/libart.so (_ZN3art9SignalSet4WaitEv+48)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000444390  /system/lib64/libart.so (_ZN3art13SignalCatcher13WaitForSignalEPNS_6ThreadERNS_9SignalSetE+232)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000442924  /system/lib64/libart.so (_ZN3art13SignalCatcher3RunEPv+400)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "JDWP" prio=5 tid=4 WaitingInMainDebuggerLoop
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44700 self=0x7f2c016400
2020-...art/runtime/runtime.cc:422]   | sysTid=4441 nice=0 cgrp=default sched=0/0 handle=0x7f32d06450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 2313751 860708 11 ) utm=0 stm=0 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32c0c000-0x7f32c0e000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: poll_schedule_timeout+0x50/0x84
2020-...art/runtime/runtime.cc:422]   kernel: do_select+0x4b8/0x510
2020-...art/runtime/runtime.cc:422]   kernel: core_sys_select+0x234/0x390
2020-...art/runtime/runtime.cc:422]   kernel: SyS_pselect6+0x180/0x218
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006acb8  /system/lib64/libc.so (__pselect6+8)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 0000000000023244  /system/lib64/libc.so (select+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000557324  /system/lib64/libart.so (_ZN3art4JDWP12JdwpAdbState15ProcessIncomingEv+348)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 00000000003056c0  /system/lib64/libart.so (_ZN3art4JDWP9JdwpState3RunEv+916)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000304b70  /system/lib64/libart.so (_ZN3art4JDWPL15StartJdwpThreadEPv+48)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "ReferenceQueueDaemon" prio=5 tid=5 Waiting
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44790 self=0x7f3386a000
2020-...art/runtime/runtime.cc:422]   | sysTid=4442 nice=0 cgrp=default sched=0/0 handle=0x7f32c09450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 921918 120168 12 ) utm=0 stm=0 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32b07000-0x7f32b09000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000037c49c  /system/lib64/libart.so (_ZN3art7Monitor4WaitEPNS_6ThreadElibNS_11ThreadStateE+660)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000000810  /system/framework/arm64/boot.oat (Java_java_lang_Object_wait__+124)
2020-...art/runtime/runtime.cc:422]   at java.lang.Object.wait!(Native method)
2020-...art/runtime/runtime.cc:422]   - waiting on <0x0762088f> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
2020-...art/runtime/runtime.cc:422]   at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150)
2020-...art/runtime/runtime.cc:422]   - locked <0x0762088f> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "FinalizerDaemon" prio=5 tid=6 Waiting
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44820 self=0x7f3386aa00
2020-...art/runtime/runtime.cc:422]   | sysTid=4443 nice=0 cgrp=default sched=0/0 handle=0x7f32b04450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 928957 7974417 7 ) utm=0 stm=0 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32a02000-0x7f32a04000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000037c49c  /system/lib64/libart.so (_ZN3art7Monitor4WaitEPNS_6ThreadElibNS_11ThreadStateE+660)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000000980  /system/framework/arm64/boot.oat (Java_java_lang_Object_wait__JI+140)
2020-...art/runtime/runtime.cc:422]   at java.lang.Object.wait!(Native method)
2020-...art/runtime/runtime.cc:422]   - waiting on <0x00f3671c> (a java.lang.Object)
2020-...art/runtime/runtime.cc:422]   at java.lang.Object.wait(Object.java:407)
2020-...art/runtime/runtime.cc:422]   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
2020-...art/runtime/runtime.cc:422]   - locked <0x00f3671c> (a java.lang.Object)
2020-...art/runtime/runtime.cc:422]   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
2020-...art/runtime/runtime.cc:422]   at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:204)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "FinalizerWatchdogDaemon" prio=5 tid=7 Waiting
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c448b0 self=0x7f3386b400
2020-...art/runtime/runtime.cc:422]   | sysTid=4444 nice=0 cgrp=default sched=0/0 handle=0x7f329ff450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 178458 409792 2 ) utm=0 stm=0 core=2 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f328fd000-0x7f328ff000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000037c49c  /system/lib64/libart.so (_ZN3art7Monitor4WaitEPNS_6ThreadElibNS_11ThreadStateE+660)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000000810  /system/framework/arm64/boot.oat (Java_java_lang_Object_wait__+124)
2020-...art/runtime/runtime.cc:422]   at java.lang.Object.wait!(Native method)
2020-...art/runtime/runtime.cc:422]   - waiting on <0x0cb59f25> (a java.lang.Daemons$FinalizerWatchdogDaemon)
2020-...art/runtime/runtime.cc:422]   at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:269)
2020-...art/runtime/runtime.cc:422]   - locked <0x0cb59f25> (a java.lang.Daemons$FinalizerWatchdogDaemon)
2020-...art/runtime/runtime.cc:422]   at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:249)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Binder:4434_1" prio=5 tid=8 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44af0 self=0x7f2c027800
2020-...art/runtime/runtime.cc:422]   | sysTid=4446 nice=0 cgrp=default sched=0/0 handle=0x7f326f7450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 5998415 7011460 18 ) utm=0 stm=0 core=5 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f325fd000-0x7f325ff000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: binder_thread_read+0xdd8/0xfb8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl_write_read+0x1ac/0x2f8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl+0x278/0x6ac
2020-...art/runtime/runtime.cc:422]   kernel: do_vfs_ioctl+0x4d0/0x5c0
2020-...art/runtime/runtime.cc:422]   kernel: SyS_ioctl+0x60/0x88
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ac6c  /system/lib64/libc.so (__ioctl+4)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000001fab4  /system/lib64/libc.so (ioctl+140)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000055568  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14talkWithDriverEb+264)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 00000000000556cc  /system/lib64/libbinder.so (_ZN7android14IPCThreadState20getAndExecuteCommandEv+24)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000055e04  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb+72)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000072d60  /system/lib64/libbinder.so (???)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #09 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "HeapTaskDaemon" prio=5 tid=9 Blocked
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44940 self=0x7f3386be00
2020-...art/runtime/runtime.cc:422]   | sysTid=4445 nice=0 cgrp=default sched=0/0 handle=0x7f328fa450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 14572538 10085543 26 ) utm=1 stm=0 core=4 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f327f8000-0x7f327fa000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 00000000002427f8  /system/lib64/libart.so (_ZN3art2gc13TaskProcessor7GetTaskEPNS_6ThreadE+276)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000243130  /system/lib64/libart.so (_ZN3art2gc13TaskProcessor11RunAllTasksEPNS_6ThreadE+92)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 00000000001e6ac0  /system/framework/arm64/boot-core-libart.oat (Java_dalvik_system_VMRuntime_runHeapTasks__+124)
2020-...art/runtime/runtime.cc:422]   at dalvik.system.VMRuntime.runHeapTasks(Native method)
2020-...art/runtime/runtime.cc:422]   - waiting to lock an unknown object
2020-...art/runtime/runtime.cc:422]   at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:433)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Binder:4434_2" prio=5 tid=10 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44b80 self=0x7f2c02dc00
2020-...art/runtime/runtime.cc:422]   | sysTid=4447 nice=0 cgrp=default sched=0/0 handle=0x7f325fa450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 5146749 1634500 25 ) utm=0 stm=0 core=1 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f32500000-0x7f32502000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: binder_thread_read+0xdd8/0xfb8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl_write_read+0x1ac/0x2f8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl+0x278/0x6ac
2020-...art/runtime/runtime.cc:422]   kernel: do_vfs_ioctl+0x4d0/0x5c0
2020-...art/runtime/runtime.cc:422]   kernel: SyS_ioctl+0x60/0x88
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ac6c  /system/lib64/libc.so (__ioctl+4)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000001fab4  /system/lib64/libc.so (ioctl+140)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000055568  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14talkWithDriverEb+264)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 00000000000556cc  /system/lib64/libbinder.so (_ZN7android14IPCThreadState20getAndExecuteCommandEv+24)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000055e04  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb+72)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000072d60  /system/lib64/libbinder.so (???)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #09 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Profile Saver" prio=5 tid=11 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12c44f70 self=0x7f3386c800
2020-...art/runtime/runtime.cc:422]   | sysTid=4448 nice=-10 cgrp=default sched=0/0 handle=0x7f324f5450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 13715042 292291 11 ) utm=1 stm=0 core=1 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f323fb000-0x7f323fd000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000031ea04  /system/lib64/libart.so (_ZN3art12ProfileSaver3RunEv+284)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 000000000032013c  /system/lib64/libart.so (_ZN3art12ProfileSaver21RunProfileSaverThreadEPv+100)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "ModernAsyncTask #1" prio=5 tid=12 Waiting
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12d52b80 self=0x7f295bcc00
2020-...art/runtime/runtime.cc:422]   | sysTid=4452 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0x7f2c4a2450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 34034000 12822583 59 ) utm=1 stm=1 core=4 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f2c3a0000-0x7f2c3a2000 stackSize=1037KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 00000000000e7dcc  /system/lib64/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+156)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000037c49c  /system/lib64/libart.so (_ZN3art7Monitor4WaitEPNS_6ThreadElibNS_11ThreadStateE+660)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000000980  /system/framework/arm64/boot.oat (Java_java_lang_Object_wait__JI+140)
2020-...art/runtime/runtime.cc:422]   at java.lang.Object.wait!(Native method)
2020-...art/runtime/runtime.cc:422]   - waiting on <0x0b7038fa> (a java.lang.Object)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.parkFor$(Thread.java:2127)
2020-...art/runtime/runtime.cc:422]   - locked <0x0b7038fa> (a java.lang.Object)
2020-...art/runtime/runtime.cc:422]   at sun.misc.Unsafe.park(Unsafe.java:325)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
2020-...art/runtime/runtime.cc:422]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
2020-...art/runtime/runtime.cc:422]   at java.lang.Thread.run(Thread.java:761)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "RenderThread" prio=5 tid=13 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12cf9dc0 self=0x7f18ab3800
2020-...art/runtime/runtime.cc:422]   | sysTid=4453 nice=0 cgrp=default sched=0/0 handle=0x7f187ff450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 355637056 31252585 787 ) utm=24 stm=10 core=5 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f18705000-0x7f18707000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: SyS_epoll_wait+0x2cc/0x384
2020-...art/runtime/runtime.cc:422]   kernel: SyS_epoll_pwait+0xb4/0x12c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ab80  /system/lib64/libc.so (__epoll_pwait+8)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000001e1a4  /system/lib64/libc.so (epoll_pwait+64)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000018010  /system/lib64/libutils.so (_ZN7android6Looper9pollInnerEi+156)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 0000000000017eb4  /system/lib64/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+60)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 000000000003ac98  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+664)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "hwuiTask2" prio=5 tid=14 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12d255e0 self=0x7f189df000
2020-...art/runtime/runtime.cc:422]   | sysTid=4465 nice=-2 cgrp=default sched=0/0 handle=0x7f1723c450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 6521626 2698416 52 ) utm=0 stm=0 core=1 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f17142000-0x7f17144000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 0000000000067e78  /system/lib64/libc.so (pthread_cond_wait+96)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000003bb54  /system/lib64/libhwui.so (???)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "hwuiTask1" prio=5 tid=15 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12d25550 self=0x7f1799b000
2020-...art/runtime/runtime.cc:422]   | sysTid=4464 nice=-2 cgrp=default sched=0/0 handle=0x7f17339450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 12443959 8062332 91 ) utm=0 stm=0 core=1 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f1723f000-0x7f17241000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait_queue_me+0xd8/0x144
2020-...art/runtime/runtime.cc:422]   kernel: futex_wait+0xec/0x200
2020-...art/runtime/runtime.cc:422]   kernel: do_futex+0xdc/0x49c
2020-...art/runtime/runtime.cc:422]   kernel: SyS_futex+0x110/0x19c
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000001bcec  /system/lib64/libc.so (syscall+28)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 0000000000067e78  /system/lib64/libc.so (pthread_cond_wait+96)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 000000000003bb54  /system/lib64/libhwui.so (???)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] "Binder:4434_3" prio=5 tid=16 Native
2020-...art/runtime/runtime.cc:422]   | group="" sCount=1 dsCount=0 obj=0x12d254c0 self=0x7f189e5400
2020-...art/runtime/runtime.cc:422]   | sysTid=4466 nice=0 cgrp=default sched=0/0 handle=0x7f15949450
2020-...art/runtime/runtime.cc:422]   | state=S schedstat=( 2590874 2143168 9 ) utm=0 stm=0 core=1 HZ=100
2020-...art/runtime/runtime.cc:422]   | stack=0x7f1584f000-0x7f15851000 stackSize=1005KB
2020-...art/runtime/runtime.cc:422]   | held mutexes=
2020-...art/runtime/runtime.cc:422]   kernel: __switch_to+0xb4/0xc0
2020-...art/runtime/runtime.cc:422]   kernel: binder_thread_read+0xdd8/0xfb8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl_write_read+0x1ac/0x2f8
2020-...art/runtime/runtime.cc:422]   kernel: binder_ioctl+0x278/0x6ac
2020-...art/runtime/runtime.cc:422]   kernel: do_vfs_ioctl+0x4d0/0x5c0
2020-...art/runtime/runtime.cc:422]   kernel: SyS_ioctl+0x60/0x88
2020-...art/runtime/runtime.cc:422]   kernel: el0_svc_naked+0x24/0x28
2020-...art/runtime/runtime.cc:422]   native: #00 pc 000000000006ac6c  /system/lib64/libc.so (__ioctl+4)
2020-...art/runtime/runtime.cc:422]   native: #01 pc 000000000001fab4  /system/lib64/libc.so (ioctl+140)
2020-...art/runtime/runtime.cc:422]   native: #02 pc 0000000000055568  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14talkWithDriverEb+264)
2020-...art/runtime/runtime.cc:422]   native: #03 pc 00000000000556cc  /system/lib64/libbinder.so (_ZN7android14IPCThreadState20getAndExecuteCommandEv+24)
2020-...art/runtime/runtime.cc:422]   native: #04 pc 0000000000055e04  /system/lib64/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb+72)
2020-...art/runtime/runtime.cc:422]   native: #05 pc 0000000000072d60  /system/lib64/libbinder.so (???)
2020-...art/runtime/runtime.cc:422]   native: #06 pc 000000000001245c  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
2020-...art/runtime/runtime.cc:422]   native: #07 pc 000000000009eeb0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
2020-...art/runtime/runtime.cc:422]   native: #08 pc 0000000000068748  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
2020-...art/runtime/runtime.cc:422]   native: #09 pc 000000000001da7c  /system/lib64/libc.so (__start_thread+16)
2020-...art/runtime/runtime.cc:422]   (no managed stack frames)
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:422] 
2020-...art/runtime/runtime.cc:427] JNI ERROR (app bug): local reference table overflow (max=512)
2020-...art/runtime/runtime.cc:427] local reference table dump:
2020-...art/runtime/runtime.cc:427]   Last 10 entries (of 512):
2020-...art/runtime/runtime.cc:427]       511: 0x12ded740 java.lang.String ""
2020-...art/runtime/runtime.cc:427]       510: 0x12df90e8 com.emanuelef.remote_capture.ConnDescriptor[] (3 elements)
2020-...art/runtime/runtime.cc:427]       509: 0x12ca9d30 java.lang.Class<com.emanuelef.remote_capture.ConnDescriptor>
2020-...art/runtime/runtime.cc:427]       508: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       507: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       506: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       505: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       504: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       503: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]       502: 0x12cb5800 java.lang.Class<com.emanuelef.remote_capture.CaptureService>
2020-...art/runtime/runtime.cc:427]   Summary:
2020-...art/runtime/runtime.cc:427]        53 of com.emanuelef.remote_capture.ConnDescriptor (53 unique instances)
2020-...art/runtime/runtime.cc:427]         1 of com.emanuelef.remote_capture.ConnDescriptor[]
2020-...art/runtime/runtime.cc:427]         5 of com.emanuelef.remote_capture.ConnDescriptor[] (2 elements) (5 unique instances)
2020-...art/runtime/runtime.cc:427]        14 of com.emanuelef.remote_capture.ConnDescriptor[] (3 elements) (14 unique instances)
2020-...art/runtime/runtime.cc:427]         1 of com.emanuelef.remote_capture.ConnDescriptor[] (4 elements)
2020-...art/runtime/runtime.cc:427]         1 of java.lang.Thread
2020-...art/runtime/runtime.cc:427]       274 of java.lang.String (274 unique instances)
2020-...art/runtime/runtime.cc:427]       163 of java.lang.Class (2 unique instances)
2020-...art/runtime/runtime.cc:427] 
2020-...art/runtime/runtime.cc:427] 
2020-...Fatal signal 6 (SIGABRT), code -6 in tid 4480 (CaptureService )

Update translations (1.4.0)

@akihironagai @mezysinc @NEK-RA please update the translations for the upcoming 1.4.0 release

@sr093906 to ease the localization process, for this and the next releases I will commit to the dev branch and only merge to master when the localization strings are settled.

@NEK-RA I will ping you once the docs update is completed (#93), here is a list of the current changes:

Submit to F-Droid

PCAPdroid is a fully open source project. Making it available on F-Droid will increase its visibility and facilitate the life of some foss users.

Ability to annotate the capture

When capturing a big app traffic it could be useful to "annotate" the PCAP so that it a specific action in the app can be associated to the corresponding network traffic. For example:

  1. start PCAPdroid
  2. start the target app
  3. make a checkpoint C1
  4. perform an action
  5. make another checkpoint C2

when you review the PCAP, you can then check the traffic between C1 and C2. This would probably require a floating window / notification area button.

Optimize JNI calls

During each connections update, PCAPdroid passes unnecessary data from the native code to java via the JNI interface. As highlighted in the perf-jni article, marshaled data should be reduced to the minimum to improve efficiency.

UDP broadcast Error — unable to connect to IoT device via PCAPdroid's VPN

Hi!
I am trying to capture the API of my LED backpack. It acts as a Wi-Fi hotspot and is controlled by a special app LED Space. When I am enabling the VPN for the capture, the app is unable to connect to the backpack. I think, the reason is in broadcast requests, like the one below.

App: LED Space (10476)
Protocol: UDP
Source: 10.215.173.1:9001
Destination: 255.255.255.255:9090
Status: Error
Bytes: 0 B down — 42 B up
Packets: 0 down — 1 up
Duration: < 1 s
First Seen: 03/29/21 11:53:18
Last Seen: 03/29/21 11:53:18

Add floating window

Currently most users run PCAPdroid in a split view. A floating window makes it easier to operate on an app and see its connections in PCAPdroid at the same time.

can't compile this app cause of problem with command: System.loadLibrary("vpnproxy-jni");

Hi,
I'm new at this app and trying to compile it but face with crash, this is the log:

E/CustomActivityOnCrash: The previous app process crashed. This is the stack trace of the crash:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.emanuelef.remote_capture-QR5mNpfoMwalm_T060NAGQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.emanuelef.remote_capture-QR5mNpfoMwalm_T060NAGQ==/lib/x86, /system/lib]]] couldn't find "libvpnproxy-jni.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
at com.emanuelef.remote_capture.CaptureService.(CaptureService.java:126)
at com.emanuelef.remote_capture.CaptureService.isServiceActive(CaptureService.java:483)
at com.emanuelef.remote_capture.activities.MainActivity.initAppState(MainActivity.java:498)
at com.emanuelef.remote_capture.activities.MainActivity.onCreate(MainActivity.java:120)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

thanks!

udp_receiver

Hello !!

When I use the command

udp_receiver.py -p 1234 | wireshark -k -i -"

I have following the error messages
(terminal)
"13:36:58.902 Main Warn QXcbConnection: XCB error: 3 (BadWindow), sequence: 915, resource id: 35652163, major code: 40 (TranslateCoords), minor code: 0"

(wireshark)
Couldn't run /usr/bin/dumpcap in child process: Permission non accordée

Thanks for your contribution
ma

Optimize apps memory usage

PCAPdroid preloads all the installed apps in multiple activities. This has a big impact on the memory usage (in particular for the bitmaps data).

Add basic payload information

Add a a text/binary visualization of the first packet of the connections. This includes HTTP request method and headers.

Save file dialog not working in Android TV

Some Android TV devices show "You don’t have an app that can do this" or the new message "No app found to handle file
selection" when trying to open the file selector with "ACTION_CREATE_DOCUMENT". This should be addressed.

Properly pull dependencies

Currently the app dependencies must be manually pulled. To make automatic build possible, it is necessary to pull the dependencies in a standard way (e.g. via git submodules?).

No internet connection / only DNS traffic caputured

Hi,

great app! Unfortunately not working with my setup, similar to issue #8.
While capturing (http mode), my applications are not connecting to the internet anymore.
PCAPdroid is only showing DNS traffic, and it seems the applications are not getting DNS answers.

Example capture

Protocol: Unknown (UDP)
Source: 10.215.173.1:14973
Destination: 10.215.173.2:53
Bytes: 0B down, 116B up

I already tried to switch my wifi setup to use my router as DNS, instead of an external IP. Didn't help.

Is there anything else I could try, or more debug info to provide?

Environment:
PCAPdroid 1.2.12 from F-Droid (latest not available, switched to google play later)
PCAPdroid 1.2.13 from google play
Phone: Samsung Galaxy S9 SM-G960F, Android 10, security patch level 01.02.2021

Install instruction fix mitmproxy installation

On the page https://emanuele-f.github.io/PCAPdroid/tls_decryption instead of using:

git clone https://github.com/emanuele-f/mitmproxy
cd mitmproxy
sudo python3 setup.py install

Use:

git clone https://github.com/emanuele-f/mitmproxy
cd mitmproxy
sudo pip3 install .

The last line enables to uninstall the application with sudo pip3 uninstall mitmproxy, otherwise the installation must be done manually, which would require to know where all files have been installed.

[QUESTION] PCAPdroid on an Oculus Quest 2

Is it possible to install PCAPdroid on the Oculus Quest 2 headset? Is android based, and tools like adb work.

I apologize if this has been documented somewhere :)

Ability to log all the connections

Currently the app only shows the active connections. It would be great to add an option to record and show all the connections since the app start.

  • Retain all the connections until app is stopped
  • Ability to filter the connections by app
  • Improve app layout
  • Ability to export the connections log

Ongoing development on the dev branch. The new features can be tested by installing the PCAPdroid-debug-dc08b8a.apk.
Note: this is a debug apk, you need to uninstall PCAPdroid in order to switch between this and the official release apk.

This is how the new app looks like:

  • The apps tab shows a grouped view of the connections by app (indicated in parenthesis)
  • By clicking on an app, it is applied as a filter and the connections tab is shown
  • The app filter can be removed by simply tapping on the app icon in the action bar
  • The connections tab now logs all the connections since the app start. There is a limit of 4192 max connections, after which the old ones will be discarded.
  • By clicking on the "fab down" icon its possible to scroll the connections view to the bottom and autoscroll on new connections

As the next step, I'm willing to improve the overall layout. The tabs in the ViewPager do not look good and scrolling is not perfect as the pager sometimes catches the scroll of the recyclerviews. Maybe the app tab should become a separate activity and menu should be reorganized in navigation drawer.

[update]

Navigation drawer now implemented. The apps and connections views have been moved to the new Inspector activity. This clearly divides the capture data from the in-memory analysis. Changes can be tested via the PCAPdroid-debug-e5a7748.apk

[update 2]

The connections export (in CSV format) is now implemented. The connections tab has been brought back to the main activity to simplify interaction and a new Apps has been created. Changes can be tested via the PCAPdroid-debug-e5a7748.apk.

Add ability to ignore some connections

While running PCAPdroid for a long time, it's difficult to spot unknown connections which happen periodically. Adding the ability to ignore some apps, hosts, IPs or protocols would improve this.

Connections retention option

Hi, not a bug more of a request. When filtering an app to keep the information in the Connections tab until you stop. The problem with taking the pcap file to wireshark is that it does not resolve the ip to a DNS name, it takes time to check every IP. In the Connections tab it does tell you at a quick glace what destination it was sending data to, however after about 30 seconds the information in the connections tab disappears. I would really like to know if there is a way to keep it there until you hit the stop button?

Thanks and thanks for creating this very useful app

Android 11 - KEY_USAGE_BIT_INCORRECT mitmproxy certificate

I was trying to intercept some TLS with the modified version of the mitmproxy. I was not successful and created a simple demo application executing a query with OkHttp. There seems to be an issue with the mitmproxy certificate.

The CA certificate has these key usages:

        X509v3 Extended Key Usage: 
            TLS Web Server Authentication, TLS Web Client Authentication, E-mail Protection, Time Stamping, Microsoft Individual Code Signing, Microsoft Commercial Code Signing, Microsoft Trust List Signing, Microsoft Server Gated Crypto, Microsoft Encrypted File System, Netscape Server Gated Crypto
        X509v3 Key Usage: critical
            Certificate Sign, CRL Sign

Maybe it is also complaining about the generated server certificate. BoringSSL is failing at this line: https://github.com/google/boringssl/blob/master/ssl/ssl_cert.cc#L608

2021-03-12 03:02:26.785 30566-30621/com.gigsky.testmitmproxy E/com.gigsky.testmitmproxy.MainActivity: Error
javax.net.ssl.SSLHandshakeException: Read error: ssl=0x74b41d8058: Failure in SSL library, usually a protocol error
error:1000012e:SSL routines:OPENSSL_internal:KEY_USAGE_BIT_INCORRECT (external/boringssl/src/ssl/ssl_cert.cc:610 0x740ee2505a:0x00000000)
at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:362)
at com.android.org.conscrypt.ConscryptEngine.convertException(ConscryptEngine.java:1134)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:919)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:849)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:722)
at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:238)
at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:336)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:300)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:185)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
at okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
at okhttp3.RealCall.execute(RealCall.java:81)
at com.gigsky.testmitmproxy.MainActivity.lambda$testCall$4$MainActivity(MainActivity.java:74)
at com.gigsky.testmitmproxy.-$$Lambda$MainActivity$bZPwyLI6MhGRb52InxteaVjycNk.run(Unknown Source:2)
at java.lang.Thread.run(Thread.java:923)
Caused by: javax.net.ssl.SSLProtocolException: Read error: ssl=0x74b41d8058: Failure in SSL library, usually a protocol error
error:1000012e:SSL routines:OPENSSL_internal:KEY_USAGE_BIT_INCORRECT (external/boringssl/src/ssl/ssl_cert.cc:610 0x740ee2505a:0x00000000)
at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)
at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:568)
at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095)
at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)
... 29 more

Add ability to easily upload the TLS certificate

Manually installing the mitmproxy certificate requires some effort. It would be nice to provide a convenient way to install and delete the certificate, e.g. by adding an upload functionality in the embedded HTTP server.

[Optimize] display time accuracy (first_seen\last_seen)

hello gread god. My english is bad,the following are from translation software.

Now that the 10-bit time is returned, it is necessary to see milliseconds or microseconds to determine the capture time when it is actually being used.

No Internet Connection

Using the UDP receiver with Wireshark via /Users/mcp-pro/Downloads/udp_receiver.py -p 1234 | wireshark -k -i
The phone "loses its internet connection" (It also appears to have lost its connection when doing the HTTP dump as well)

Android OS 8.1.0
Device: BBB100-2

412	210.957917	DNS	✓	10.215.173.1	1882	10.215.173.2	53	69	Standard query 0xf716 A reports.crashlytics.com

Wireshark is just filling up with a bunch of DNS queries, but nothing else.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.