Commit Graph

172 Commits

Author SHA1 Message Date
emanuele-f
0a935be6e4 Initial export of app info in PCAP
Initial work for #36
2021-07-02 00:45:19 +02:00
emanuele-f
da141fa8df Cleanup pcap_utils 2021-07-01 18:58:37 +02:00
emanuele-f
51dc0dde7e Fix bogus connections with root due to fragments
Connections with random ports sometimes appeared while capturing packets
as root, in particular while exporting data via the UDP exporter. These
were actually IP fragments, whose data was misinterpreted due to the
lack of L4 headers.
2021-07-01 18:27:28 +02:00
emanuele-f
9d427461cb Fix UDP exporter and HTTP dump modes with root
When exporting traffic over the network, we must exclude this traffic
from the monitoring, otherwise the traffic will be captured in a loop
2021-07-01 14:30:37 +02:00
emanuele-f
91cc995eff Refactor PCAP dump
PCAP dump now always occurs in Java
2021-07-01 11:01:15 +02:00
emanuele-f
258930d110 Fix multiple issues with ICMP connections
- Fix ping to known DNS servers being blocked
- Hide port number for ICMP connections
- Fix monodirectional ICMP connnections in root mode
2021-06-30 17:31:41 +02:00
emanuele-f
ca7c8127d9 Hide connections matching whitelist after delay
Some info of the connections, such as the host and the protocol, can
become available after the connection has been shown. Such info could
determine a match with the whitelist, in which case the connection must
be hidden.
2021-06-29 19:39:11 +02:00
emanuele-f
5b50e3e8a1 Optimize JNI calls on connections updates
Connections data is now split into three groups:

- The connection identifier (e.g. 5 tuple)
- The connection statistics
- The connection L7 information (e.g. HTTP URL and request data)

With this optimization, most updates will only pass the connection
statistics throught the JNI interface. The connection identifier will
only be passed for new connections and the L7 information will only be
passed when needed (e.g. after extracting the URL).

Closes #82
2021-06-29 15:31:30 +02:00
emanuele-f
f1a69ccfa7 Fix missing save button with open search bar 2021-06-29 01:01:17 +02:00
emanuele-f
69f21be864 Allow searching by destination port 2021-06-28 23:55:04 +02:00
emanuele-f
a1f96c08ed Implement separate connections activity
This allows filtering by app by keeping activities navigation
consistent
2021-06-28 23:50:55 +02:00
emanuele-f
762b09620e Add copy/share to the App Details activity 2021-06-28 23:12:34 +02:00
emanuele-f
b308666687 Add packet drops for root capture 2021-06-27 19:43:18 +02:00
emanuele-f
bfb1390499 Implement app details
Show information about an app, including its target SDK version,
install/update date and its requested permissions. Also add a button to
quickly open the app info/settings in android.

Closes #45
2021-06-25 14:50:38 +02:00
emanuele-f
6b3fb1c2d0 Fix root domain rule label 2021-06-25 09:22:56 +02:00
emanuele-f
01b4fa1a60 Add null check 2021-06-14 18:34:38 +02:00
emanuele-f
0c4b33c4ba Implement ability yo search connections
Through the search bar is now possible to search connections by host,
IP, protocol, uid, app name or package name.

Closes #67
2021-06-14 18:25:58 +02:00
emanuele-f
209b24ccd6 Remove leftover 2021-06-14 15:47:35 +02:00
emanuele-f
66f27ff805 Add ability to copy/share whitelist 2021-06-14 15:38:29 +02:00
emanuele-f
f49c34ddec Rework whitelist
The whitelist editor is now a separate activity. Whitelist removed from
the ConnectionRegister.
2021-06-14 15:21:57 +02:00
emanuele-f
9b7675d6e2 Rename "exclusions" to "whitelist" 2021-06-14 11:15:36 +02:00
emanuele-f
c5ef7caf31 Fix label for apps exclusions 2021-06-11 21:19:27 +02:00
emanuele-f
a642ddbd0d Optimize connections matching 2021-06-11 21:01:17 +02:00
emanuele-f
8701eb9145 Add ability to exclude a root domain 2021-06-11 18:53:09 +02:00
emanuele-f
2983be8ecf Optimize adapter ops with connections filters 2021-06-11 18:22:25 +02:00
emanuele-f
c190caadfd Fix app filter not working when using exclusions 2021-06-11 15:29:10 +02:00
emanuele-f
4a4886b0ed Make exclusions persistent 2021-06-09 16:52:46 +02:00
emanuele-f
404f5e0238 Implement ability to ignore connections
An exclusion list can now be created to hide connections matching the
specified host, app, IP address or protocol.

Closes #68
2021-06-09 15:35:45 +02:00
emanuele-f
0d48c1f141 Fix deprecations 2021-06-05 13:06:02 +02:00
Taco
c28acd2804
Fix several deprecations (#63)
* Update Gradle and RecyclerView
* Use FragmentContainerView
* Fix onActivityResult deprecations
* Fix onRequestPermissionsResult deprecation

Co-authored-by: emanuele-f <black.silver@hotmail.it>
2021-06-05 11:47:31 +02:00
emanuele-f
50bc81e575 Show request plaintext regardless of the protocol 2021-06-03 12:27:28 +02:00
emanuele-f
78d2e12233 Add ads placeholders 2021-06-03 11:36:06 +02:00
emanuele-f
e65ff93972 Add ability to read the root daemon log 2021-06-02 00:01:10 +02:00
emanuele-f
f777ed16c2 String trailing newlines from HTTP request data 2021-06-01 22:39:07 +02:00
emanuele-f
1f32813f1f HTTP requests data is now shown in the details
Also move to the material theme

Closes #38
2021-06-01 19:02:17 +02:00
emanuele-f
2ff3fec947 Fix URL when an HTTP proxy is used
Also show the proxy URL in the connection details
2021-05-01 16:42:53 +02:00
emanuele-f
c2df8436ab Implement ability to capture packets as root
This requires a rooted device. It allows PCAPdroid to run with other VPN
apps.
2021-05-01 12:02:48 +02:00
emanuele-f
72949b0284 Update zdtun 2021-04-14 12:32:42 +02:00
emanuele-f
b02989598f Implement SOCKS5 proxy support
When enabled, all the TCP connections will be redirected to a SOCKS5
proxy. This also removes the need to use a customized mitmproxy to
perform the TLS decryption.
2021-04-09 10:52:25 +02:00
emanuele-f
547af36b73 Implement splash screen for cold start 2021-03-30 13:00:26 +02:00
emanuele-f
2b52fcaa50 Make fab down clickable on Android TV 2021-03-30 13:00:26 +02:00
emanuele-f
049af45f42 Implement dark theme
Closes #46
2021-03-30 13:00:26 +02:00
emanuele-f
4ac471f3a1 Handle missing Storage Access Framework on save
The Storage Access Framework may be missing in some Android devices,
expecially TVs, which sometimes implement an empty stub. In such cases,
PCAPdroid uses the deprecated API to save the file to the Downloads
folder in the internal memory.

Fixes #53
2021-03-30 00:56:49 +02:00
emanuele-f
8a8e96ee39 Remove home screen channel on Android TV 2021-03-29 22:14:07 +02:00
emanuele-f
1bb6ae3165 Fix UDP broadcast connections 2021-03-29 12:01:51 +02:00
emanuele-f
9bb1741456 Handle file selector exception 2021-03-29 11:11:03 +02:00
emanuele-f
fbabe5478f Fix host LRU resolution not performed in some cases 2021-03-25 11:29:40 +01:00
emanuele-f
429215400e Refresh connection details activity 2021-03-24 00:52:21 +01:00
emanuele-f
ab3d684fe7 Implement language switch
It is now possible to switch between the system default language and
the english language.
2021-03-23 23:40:14 +01:00
emanuele-f
6ae5f3fd04 Add initial language switch support
Also add italian translation
2021-03-23 19:26:15 +01:00