Tuesday, 31 May 2011

DroidWall has leaky boots


Update: DroidWall out, AFWall+ in. Unlike DroidWall, AFWall+ doesn't leak on boot.

DroidWall is an Android firewall that usually does its job. But not always.

When you boot your phone, there is a brief period in which blocked apps can go online before DroidWall wakes up and starts blocking them. My network log shows that some apps indeed manage to go online even though I blocked them in DroidWall. This may cause unwanted updates or worse.

My Windows firewall (Comodo) makes sure that no data can go in or out before the firewall itself is up and running. DroidWall should do the same. A firewall should not leak. Never.

Does anyone know a way to force DroidWall to start blocking unwanted traffic when I boot my phone without giving apps a chance to sneak traffic through in the seconds between booting my phone and DroidWall getting out of bed? Of course there is a workaround: rename your access points with an app like ApnDroid before you shut down your phone, but then you have to switch your data connection back on by hand after your phone has finished booting. If your phone crashes you don't get a chance for that before you reboot, in which case the only way to close the data gap is to take your SIM card out and stay out of WiFi range.

Would there be a better method? A method that simply denies apps permission to switch your internet connection on behind your back? Or a way to force Android to start DroidWall before any other apps are allowed to run? Please leave a comment or hit the email link on the bottom of this page.

• DroidWall (Google code)
• DroidWall (Android Market)

Update: DroidWall out, AFWall+ in. Unlike DroidWall, AFWall+ doesn't leak on boot.


tweet this reddit digg this StumbleUpon digg this digg this

Thursday, 26 May 2011

LBE Privacy Guard controls app permissions


An old Android problem is that it doesn't give you any control over what apps are allowed to do, and what not. You can't grant an app some permissions, but deny others. When you accept the list of permissions upon installing an app you're writing a blank check.

You can wrestle a bit of control back by tuning internet access control with DroidWall, and block access to advertising banner farms with AdFree. But what about other permissions, such as reading your address book or your messages?

Denying access to contacts and messages is essential for apps that break if you don't give them internet access. For example, a music streaming app obviously needs to go online, but that doesn't mean you want it to read your emails or snoop in your contacts list. You probably don't want to share your location with apps and advertisers either.

Privacy Settings Manager promised to fix that, but didn't deliver yet. Permissions Denied works, but only on some phones. And now there is a new permissions manager: LBE Privacy Guard.

LBE Privacy Guard runs in the background, and pops up an alert whenever an app tries to do something that may violate your privacy or cost you money. Permissions that you can control:
- sending SMSs;
- making phone calls;
- reading your SMSs;
- reading your contacts;
- reading your call logs;
- getting your location (by GPS or from networks);
- identify your phone by IMEI, IMSI, phone number, or SIM card ID;
- internet access.
You can grant or deny permissions, and for most permission requests it's up to you whether your answer is remembered or whether you're asked again next time. But there's no prompt for internet access or phone identification, only an allow/deny switch in the settings screen.

The internet permission switch in LBE Privacy Guard is an all or nothing setting. If you want to allow access by WiFi but not by mobile data (or vice versa) you'll need DroidWall.

LBE Privacy Guard will only let you allow or deny permissions. It won't let you feed spoofed contacts or a fake location to an app, which is what Privacy Settings Manager is supposed to do when it's ready. LBE Privacy Guard should include a spoofing feature, because some apps break if they don't get the permissions they want, even though you may have very good reasons not to give them what they ask for.

When LBE Privacy Guard stops or starts (which it sometimes does when you change app permissions) it shuts down all sorts of background processes. This may stop your widgets from auto-updating: my clock and battery widget froze after an LBE Privacy Guard restart. My Quick Settings icon and SetVSel indicator also disappeared from the notification bar, and GO Launcher also shut down together with LBE. Only my launcher restarted by itself, I had to restart everything else myself. This is a bug that definitely needs to get fixed.

Like all privacy and internet control apps, LBE Privacy Guard requires root access. It wants internet permission too, but you can force it to stay offline with DroidWall. It tells you it's running with an icon in the notification bar and an entry when you pull the bar down. There's no option to switch off this icon yet, but maybe we can make it go away in a future version? Ask for it when you leave feedback in the Android Market to encourage the developer to add an off switch [update: the new version of LBE lets you kill the icon]. An option to protect the app with a password would be useful too.

• LBE Privacy Guard (Android Market)
• LBE Privacy Guard (xda developers)
tweet this reddit digg this StumbleUpon digg this digg this

Saturday, 14 May 2011

Toggle network location?


There are plenty of widgets to toggle GPS on and off with a single tap. But what about the other location service? Getting your location from cell towers and WiFi networks also eats up your battery, and it lets Google track all your movements.

I toggle GPS with Dazzle. Of course Powerbar and Widgetsoid also work, and there are many more widgets to control GPS.

But managing network location still requires a trip to the settings menu. There's no widget for one click network location toggling. Sure, Google's warning popup (we'll track you even if you're not running location aware apps) may get in the way of a one click solution, but I'm sure that can be automated with a bit of code.

Any coders out there willing to give it a shot?
tweet this reddit digg this StumbleUpon digg this digg this

Thursday, 12 May 2011

Apps that repair flaws in Android and its stock apps


I've downloaded and installed dozens of apps from the Android Market and elsewhere. You'd think that by doing so I would have added lots of functions and bells and whistles to my phone, but...

...swiping through my app drawer it dawned on me that most of my downloaded apps don't really add anything new.

Instead, they repair flaws in Android and the stock apps that came with it.

Obviously apps like Z4Root and Superuser are in this category. They don't add anything to Android but merely open up something that was in there to begin with. A simple "switch on root access" option in the settings menu would have done the job. Just add a bit of legalese along the lines of "if something breaks you're on your own" to scare off those who don't know what they're doing.

And then I have:

Adobe Reader, Jota Text Editor, Olive Office.
I wouldn't need those if the version of QuickOffice that Motorola hammered into my phone could make plain text files in addition to DOCs, if it could read PDF files like any modern office suite should, and if it wouldn't try to sell me the same editing capabilities that Olive gives me for free.

AndroZip, Crypto, ES File Explorer & ES Bookmark Manager, Root Explorer.
The stock file manager that came with my phone takes ages to launch, thinks that ZIP is the only compression format, doesn't understand why some files on pocketable and stealable devices shouldn't be open to everybody, and it wrongly believes that all paying customers are too dumb to trust with access to system files. That's why I need five apps to do what the stock app should have done.
Update: now that ES File Explorer can edit files on internal memory I don't need Root Explorer anymore.

Alarms Solo, ClockSync, Timers4Me, Ultimate Stopwatch.
The stock alarm clock is unreliable. Especially when my phone is charging, because then the alarm clock stops making noise after a few seconds for no apparent reason. Miss the alarm once and it won't give you a second chance. The automatic network time sync option in Android never worked for me either. I wouldn't need Timers4Me if the stock Alarm & Timer app would come with an option to save presets. And since the stock clock has a countdown timer, how hard can it be to teach it how to count up?

Calendar Snooze, Jorte, Smooth Calendar, Pocket Informant Business Calendar.
Four apps to patch the shortcomings of Google's own calendar app and its widget. The stock app plays calendar alarms only once so they're easily missed. I need Calendar Snooze to make sure calendar alarms keep ringing until I stop 'em myself. The stock calendar widget was designed by someone who thought: "how can I waste as much screen space as possible by filling it with as little useful information as possible." The only reason I had Jorte installed is that it lets me cram more useful info into a tiny 2x1 widget than any other app (The Smooth Calendar widget is almost as good as Jorte). Most calendar apps (including Jorte and the stock calendar) won't let you set custom reminder times. I need Pocket Informant Business Calendar for the trivial job of setting reminders at the start of an event (i.e. zero minutes before), or an hour and a half, or 4 hours and 45 minutes. Why not let me enter a custom reminder time instead of letting me pick from a very limited list of preset offsets? A calendar alarm should remind you at exactly the right time, not in the middle of a meeting because the fixed offsets are spaced an entire hour apart. What makes those fixed reminders even more ridicilous is that the Tasks app has custom reminder times which you can import into your Google calendar. Google, take a good look at the calendar that comes with any Nokia smartphone. Symbian may be dying, but it can still teach you a trick or two. For example, it can set reminders in the middle of all-day events (think birthdays) and it comes with an integrated task manager too. The calendar on my ancient Nokia is an app that I'd love to see ported to Android!

Go Launcher EX, Home Switcher.
There are many alternative launchers out there, and for a good reason. The stock launcher won't let you do basic things like resize widgets, change the icon grid size on your home screens, or make folders in the app drawer. Did the makers of the default app drawer really believe a scrolling screen with a hundred icons is useful for anything?

Contact Remover.
For some reason the stock contacts app won't let me select multiple contacts, so if I want to delete a bunch of people without getting blue fingers from excess tapping I need this third party workaround.

CSipSimple, Nimbuzz, imo.
Gingerbread comes with a native SIP stack. Unfortunately it's not available for those stuck on previous versions. And why does the stock chat app only work with a single instant messaging network? You don't use separate web browsers for .com, .net, and .org either, do you?

DroidStats.
Google is the world champion of data analysis, so their call log should be able to tell you how many minutes and messages you've burned today, last week, this month, or since your last phone bill. All the info is there, but your phone won't tell you unless you force it out.

GPS Status, Location Cache, Locus & Locus add-on Map Tweak, Navigon.
The location settings screen won't let you do much more than switch GPS and network location on and off. It won't even show what info it collects behind your back to send to Google. Speaking of Google, their maps are excellent, but useless if you travel abroad and pay a fortune for international data roaming. Sure, Google Maps can cache routes to some extent, but that just doesn't cut it. Until someone ports Nokia's Ovi Maps to Android I'm stuck with apps like Navigon for true offline navigation and patched versions of Locus for a quick offline peek at the map. The only thing in favor of Google Maps for Android is that those poor iPhone victims get even less than we do.

K-9 Mail.
My phone came with a native email app. Correction: it came with two native email apps. One for all mail, and another one for Gmail. Why Gmail deserves its own stand-alone app is beyond me, but I'm sure the bean counters at Google HQ have a good reason. Either way, both stock apps are no match for K-9.

Permissions Denied LBE Privacy Guard.
Just because an app asks me for permission to go online, read my address book, see my location, and look into my boxers doesn't mean I'm gonna let it. The stock app manager may let me view permissions, but it won't let me edit them. That's where Permissions Denied LBE Privacy Guard kicks in.

Player Pro, QueueTube, RockPlayer.
The music app that came with my phone was filled to the brim with bloatware, but it wouldn't let me sort music by the genre tag or folder. YouTube refuses to play when sent to the background: if you want to listen to a music video you're forced to watch it. All of it. And why the stock video player chokes on so many movie formats and won't support additional codecs...

RealCalc.
My phone came with a calculator out of the box. It even came with an "advanced" panel. Unfortunately it wasn't even remotely close to being advanced.

Skyfire, Dolphin Mini & HD.
There are many reasons why you wouldn't want to use a proxy-based browser like Skyfire. Especially when it makes even the smallest site eat up a truckload of data. But if your phone manufacturer didn't bother to update your phone's software to Froyo or beyond you'll need to jump through hoops to get a little bit of Flash on your phone. If I wanted a Flashless phone I could have shopped at Apple. The stock browser hides my tabs in the menu, and won't reflow text to fit my screen. That's why I had to go out fishing and catch me a Dolphin.

Wi-Fi Ruler.
What's the point of a Wi-Fi settings screen if it's short on Wi-Fi settings?

ApnDroid, QuickSettings, WidgetSoid.
Sometimes you just have to be sure that when you switch off mobile data, it stays switched off. International roaming charges, anyone? You could delete or rename your access points by hand to keep your phone bill tamed, but that's just so 2009!

DroidWall.
You go through all the settings screens, disable every auto-sync and auto-update feature that comes with an off switch, tell each and every app that it can only go online when spoken too, but all to no avail. Whenever they sniff an open connection all sorts of apps and services will snoop around online without any grasp of the meaning of the word "no." Some apps are very hard of hearing. They go online whenever they feel like it without any need to do so. Even the stock apps are guilty, and so is the operating system itself! That's why you need a firewall that works in both directions. Sometimes you just need to teach your apps that no means no.

MyBackup Root or MyBackup Pro (and Titanium).
Google's core business is data. So shouldn't Android come with a stock app to reliably and completely back up and restore your data? All of it? Whenever I sync my contacts back and forth to Gmail some info gets lost or garbled up. Especially names are handled badly: two first names sync back as a first and a middle name. And just see what happens when you sync "Al's Pizza (open 'till midnight)" back to your phone. It won't come back under A. MyBackup restores my contact details exactly how I entered them. It preserves the time stamps on my SMSs too, which you'll learn to appreciate if you send and receive messages from every time zone under the sun. Sometimes updating an app breaks it, but Android doesn't have an option to roll back to the previous version unless you root your phone. Once rooted, MyBackup can backup and restore your apps and settings. Titanium does it even better. But wouldn't it be nice if the Android Market would come with its own rollback feature?

Wireless Tether.
Yes, my phone came with an app called 3G mobile hotspot. No, it didn't work. Wireless Tether requires root access, but it does what the default app does not.

I could have made this list much longer. A stock gallery app that won't let you reverse the sort order of your pictures, a camera that needs either root or a replacement app to get rid of the shutter sound, a stock SMS app that gives you bogus delivery reports and doesn't export or backup or do line breaks... there are plenty of reasons to download apps that don't add anything but only fix things.

Mind you, it wouldn't be fair to put all the blame on Google. Just think of the bloatware that companies like Motorola install on their phones and the things you have to do to keep junk like MotoBlur out of the way. And Symbian, iOS, WinMo etcetera are just as guilty as Android.

Most of the apps in this list are free. Some cost a euro or two. Navigon is expensive, especially in Europe.

These apps need root access: Root Explorer (duh!), ClockSync (yes really), Location Cache, Permissions Denied, DroidWall, MyBackup, and Titanium.

OK, one more for the road. I'm looking for an app that can backup and restore my widgets. Any suggestions? Then click the email link at the bottom of this page please.


tweet this reddit digg this StumbleUpon digg this digg this