Commit Graph

117 Commits

Author SHA1 Message Date
emanuele-f
46889738c7 Rework PCAP dump to file
PCAP dump to file has been reworked as follows:

- File selection dialog is not shown anymore when the capture starts
- The PCAP filea are saved to the Downloads/PCAPdroid folder
- Simplified mechanism to dump to an arbitrary URI (pcap_uri param)
- Add pcap_name parameter to specify PCAP file name

Overall, this simplifies user interaction and make it easier to
access the PCAP file.

Closes #183
2022-12-27 13:59:02 +01:00
emanuele-f
553772724d Improve blacklists update process
- Stop blacklist download if it takes more than 10 sec
- Abort downloads if capture is stopped
- Update the UI status during each individual download

Closes #224
2022-12-18 20:05:30 +01:00
emanuele-f
68bd85b615 Add ability to choose DNS servers
The DNS servers used in VPN mode are now configurable. It's now
possible to ignore the system DNS server and use the specified
ones. Cloudflare DNS is now the default DNS server, which has a
no-logs policy.

Closes #275
2022-12-18 19:19:20 +01:00
emanuele-f
6bf8a6bd8b Add ability to manually add rules
It's now possible to define rules manually without first seeing a
related connection. This includes firewall and whitelist rules.

Closes #207
2022-12-13 23:24:08 +01:00
emanuele-f
2a22e89fef Add ability to configure port mapping
In VPN mode, it's now possible to redirect the traffic of specific
ports towards another host and port. This makes it possible to
integrate PCAPdroid with other apps, by forwarding the traffic to
a local server.

Closes #274
2022-12-12 23:48:56 +01:00
emanuele-f
cdafc69902 Write app log to file
See #282
2022-11-23 13:00:15 +01:00
emanuele-f
0b34620233 Rename AppDescriptor getters 2022-09-20 16:23:27 +02:00
emanuele-f
e9fed41efb Fix PackageManager deprecations
Closes #225
2022-08-17 00:03:34 +02:00
emanuele-f
ae7a06cfa3 Fix getSerializable/Extra deprecations
See #225
2022-08-16 23:22:12 +02:00
emanuele-f
7d794e2d65 Catch possible SecurityException in startActivity
It may be thrown if a private component is called
2022-08-13 11:19:43 +02:00
emanuele-f
618435a53f Changes to support paid features on non-play builds 2022-08-12 17:01:04 +02:00
emanuele-f
291cf836ef Add build info with prefs in about 2022-07-25 16:22:56 +02:00
emanuele-f
c411f637f2 Deny traffic dump to remote servers via CaptureCtrl
Some users may be tricked into accepting the traffic control request
and allow an attacker to enable the UDP dump to a remote server.
To prevent this, PCAPdroid now allows remote UDP dump via API only if
the server address is already configured by the user into the PCAPdroid
settings
2022-07-11 14:50:25 +02:00
emanuele-f
8446e0962d Access purchased paid features on beta builds
Since PCAPdroid 1.5.3, users which purchased paid features in official
builds will be able to use them in beta builds.
2022-07-09 23:49:22 +02:00
emanuele-f
c8f61760f8 Disable github workflow build
People can now use the beta repository
2022-07-09 23:27:30 +02:00
emanuele-f
2f2d3c87f1 Handle VPN exceptions back button if search open 2022-07-05 18:58:14 +02:00
emanuele-f
a620d914b7 Keep search query on screen rotation in VPN exceptions 2022-07-05 18:41:02 +02:00
emanuele-f
28e4fac618 Target Android SDK 33 2022-06-29 12:56:00 +02:00
emanuele-f
7238f7ea4a Disable full payload on low memory
Closes #220
2022-06-22 12:17:09 +02:00
emanuele-f
03865a0c4d Fix possible SecurityException in Android 11 2022-06-15 16:22:34 +02:00
emanuele-f
9c7a1d0952 Fix permission grant inside work profile 2022-06-06 16:43:18 +02:00
emanuele-f
fec54e9499 Add INTERACT_ACROSS_USERS permission
This is a signature-level permission required in order to call
getPackagesForUid for other users/profiles. It will be granted on first
root capture start.

See #217
2022-06-06 14:54:23 +02:00
emanuele-f
59488f1694 Improve app on-boarding 2022-05-31 12:53:11 +02:00
emanuele-f
b9615a4f42 Improve mitm addon setup wizard help messages 2022-05-30 11:16:08 +02:00
emanuele-f
bc5589d2e1 2nd-level domain rules now match all subdomains
A rule like "example.com" is now interpreted as "*.example.com", so it
will match all its sub-domains (e.g. "yet.another.example.com"). This is
importantant, in particular, to match malware subdomains.
2022-05-19 12:22:52 +02:00
emanuele-f
46af0e6fc1 Fix unrendered whitespaces in some devices
Some devices have a bad monospace font
2022-05-18 12:07:02 +02:00
emanuele-f
5facf66175 Add ability to import/export rules
This applies to: firewall, malware whitelist, hidden connections
2022-05-16 17:42:58 +02:00
emanuele-f
6774545da0 Ability to manually download the geolocation db
This removes the bundled geolocation db, saving about 8 MB of space.
It is now possible to manually download the database from the app settings.

Closes #172
2022-05-01 17:08:27 +02:00
emanuele-f
38e24f4a1f User can now specify text/hexdump visualization 2022-04-27 17:12:11 +02:00
emanuele-f
6854284db0 Fix export of SSLKEYLOG
The keylog export dialog now appears automatically when the capture is
stopped and PCAP dump is enabled
2022-04-26 16:32:11 +02:00
emanuele-f
3ca3603ed0 Show warning if no app data is exchanged 2022-04-19 19:25:48 +02:00
emanuele-f
7b8eb2d24b Fix IP, country and decryption status not copied
When copying to clipboard or sharing the connection details
2022-04-14 15:09:06 +02:00
emanuele-f
05ca7a4617 Improve connection overview
- Show the decryption status
- Show payload size
- Show warning if connection start is not seen (root)
2022-04-14 15:00:42 +02:00
emanuele-f
5dfe15c4d9 TLS decryption now uses SOCKS5 auth
This prevents other processes from using the proxy
2022-04-14 01:04:09 +02:00
emanuele-f
35cdd7086b Add ability to display the full packet payload
- 3 modes: no payload, minimal payload (save memory), full payload
- Display payload as hexdump
- Display HTTP requests and responses as string
- Show decrypted HTTPS (requires mitm addon)
- Decode chunked encoding and gzip body
- Show websockets messages (only with TLS decryption enabled)
- An icon indicates the connections decryption status
- Easily copy the HTTP request/response from the context menu

See #107
2022-03-21 18:00:43 +01:00
emanuele-f
12727bdb24 Add ability to export the SSL/TLS master secrets
When the TLS decryption is enabled, it's now possible to export the
SSLKEYLOGFILE to decrypt the PCAP file in Wireshark. The export only
works when the capture is running.
2022-03-08 23:47:57 +01:00
emanuele-f
00984fc224 Certificate export now uses the MitmService API 2022-02-15 19:02:54 +01:00
emanuele-f
6f42015873 Initial support for built-in TLS decryption
PCAPdroid can now decrypt TLS connections and show the decrypted data
with the help of a separate mitm addon
2022-02-13 00:00:07 +01:00
emanuele-f
fcd5f34355 Improve app strings
- Remove ending periods and exclamation marks (Material guidelines)
- Improve some apps strings (credits: @comradekingu)
- Improve labels of external projects

Closes #174
2022-01-14 19:52:10 +01:00
emanuele-f
cebeb37a38 Fix CaptureCtrl crash on Android 11/12
The CaptureCtrl is only started when the PCAPdroid control API is
invoked. The crash occurred because getInsetsController was called
before setContentView.

Fixes #179
2022-01-14 12:51:19 +01:00
emanuele-f
e7bc6ba8d1 Fix tests execution 2022-01-11 00:27:00 +01:00
emanuele-f
bd2f85f876 Detect build type to customize error reporting
The error reporting dialog now shows the build type. The dialog is now
shown only on unsupported builds.

Closes #177
2022-01-10 23:23:47 +01:00
emanuele-f
1ba0d8008f Improve fragments consistency while swiping
While swiping in the viewpager, the fragments onResume may haven't been
called yet. This commit initializes the status fragment before onResume and
also fixes the "No Connections" shown just briefly after the connections
fragment is shown
2022-01-02 11:36:34 +01:00
emanuele-f
63a5826e80 Improve navigation on Android TV 2021-12-14 16:36:51 +01:00
emanuele-f
ef53b36f7a Make wifi hardware not mandatory
Fixes #152
2021-12-14 15:30:50 +01:00
emanuele-f
a9b90d5ff2 Fix deprecation/warning messages
Closes #151
2021-12-14 15:13:16 +01:00
emanuele-f
41460fe9cf Add checks in startActivity/ActivityResultLauncher
This prevents crashes when no activity is found to handle the specified
Intent
2021-12-08 11:07:30 +01:00
emanuele-f
cc11790f0e Implement features unlock via unlock code 2021-12-02 23:07:53 +01:00
emanuele-f
62c84f9663 Initial firewall implementation (no-root mode)
- Block connections by IP, domain or app
- Add filter to show blocked connections
- Migrate IP matching to ndpi_ptree_t API
- IPv6 addresses now supported in blacklists
- Duplicate IP address rules now only counted once
2021-11-29 22:40:35 +01:00
emanuele-f
e7b8811f23 Initial malware detection overview (wip)
- Overall status of malware detection
- Show the blacklists used, check their status
- Whitelist moved to this activity
2021-11-19 18:21:44 +01:00