Note: Your device must be rooted to use this app.
Smartphones are sort of a security nightmare. They contain or grant access to much of your private data, and yet you install dozens or hundreds of untrusted applications onto them. The permission model helps, but how carefully do you review permissions before you decide to install an app? (How often do you sigh, say “FINE” and install the app anyway?)
DroidWall is an open source firewall app. It sits on top of Linux’s built-in firewall capability (iptables) and lets you grant or deny internet access on a per-app basis. This means you can block apps that don’t need internet access to function from sending your personal data back to their servers, tracking you, and even showing ads in some cases.
Everyone should be using this app. When in whitelist mode, you know exactly which apps you’ve given permission to reach the internet; no app can surprise you and phone home without your explicit permission.
(The open source project home can be found here.)