[Android Apps and Games] CollegeDev:
this release is a prerelease

I'm ready now and want to pull out a pre-release of PDroid2.0 v1.54. Please feel free to test it and report bugs if there are any :).

The patches are not tested so please report if anything fails! I'm now going to host all this stuff on github asap.

News related to the Manager Application:

fixed angry birds bugs (multiple apps with same name can't access the privacy settings)

Fixed bug in batch profile mode where also system apps gets the profile instead of user only

Minor GUI improvements -> new dialog layout, fixed layout for devices which have no hard-keyboard, fixed layout for tablets (ou, that was ugly), a lot of more gui improvements

Added Random button in batch profile mode

Added random and clear button in the settings dialog if you want to add custom values

Added installed notification preference, now you can disable instant notification

Changed the update notification to smartmode -> same function as discussed in thread. Only if permissions changed you will get instant notification

Fixed the search bar

Fixed the keyboard bug if you leave pdroid with home button

Added failSafeMode handler(description look at core feature)

Added persistence notification in notificationbar which is showing current protection state(logging state, failsafeMode state, current PermissionMode, Database Connection Error Count or Manager Connection Error Count). You're also able to quick access settings, preferences, and logs

Switch Debug mode for core logging feature

Disable applications handling (description look at core feature)

Additional information in "Core and App Information" to see which current hardcoded default deny mode is active

many more...

News related to Core:

Fixed llam bug

fixed google listen crashed

fixed camera bug (thx to MB66)

a lot of more fixes. I can't listen them all here, if you want to know some specific fixes, just ask for :)

Fixed the announced security bugs (thx to FFuy5)

Fixed bug where users have to delete the privacyDatabases to upgrade to PDroid2.0 or OpenPDroid

Fixed more security related bugs (every app was able to create its own data access log and a lot of more)

Implemented FailSafeMode with self recovery:

Until the latest versions every root application was able to delete your privacy database which causes that all "doors" are open and PDroid decided to give the applications the real value. It also was able to modify entries inside of the database for ALL applications and change the settings. But what is the FailSafeMode? This mode is permament watching for unauthorized database accesses. That means if anyone tries to make changes in your privacy database or delete it to get your personal information PDroid triggers the FailSafeMode. The database and all current settings will be deleted and the return values of all settings will be empty, so all accesses will be blocked while you're in FailSafeMode. If PDroid detects a possible attack you will get an instant notification which informs you about the attack and that your system is now in FailSafeMode. After that PDroid tries to handle this case itself, that means it will try to recover the latest privacySettings and set up PDroid from scratch. It will take some seconds and you will receive another notification if the recovery was successful or not. Than you can go to preferences and deactivate the failSafeMode. Now your system is safe again! Once again, if you're currently in FailSafeMode, no application is able to get your personal information.

Implemented a core Privacy Debugging Bridge (PDB):

A lot of developers wrote me emails and asked for such a feature. Here it is. With the latest version I wasn't able to detect a bug directly because of missing framework logs. But if you logging the whole time the problem is that your system logs will blow out, that's bad. Now you can enable and disable the core logging by enable/disable the preference in PDroid2.0. It alos has the advantage that you can now provide PDroid2.0 logs in a very effective way. You just have to open CatLog or other LogCat readers and type in the tag field "PDroid2.0". Now only core logs which are related to PDroid2.0 will appear and I can have a look at it.

enhanced core logging -> Added additional core logging information for EVERY class, now I'm able to give better support.

Restructured - partial or complete rewritten PDroid related framework classes.

I did it because I implemented also a hardcoded default deny mode

Enhanced complete database threading (in a similar way ffuy5 did it, but not the same)

Added complete privacyCaching:

I've added a complete privacy Cache handling system which allows very effectiv privacy settings access. Why you did that? If you open the Database in android it will cost a lot of CPU and that causes more battery consumption. PDroid open and closes the database a lot of times and that will cause a lot of battery and cpu consumption of your device. Harmful applications can hammer on the settings and your system will lag, that's not good at all! Now you can say: "ok, then i just leave the db connection open". Yes you can, but if you read the developers guide on android you will see that it is not a good way to do it. Summary: The cache will save battery, preserves your cpu. The only disadvantage of this is that it needs more memory, but you will never notice that :)

Fixed horrible service connection bug:

Until now the problem is that the connection to the privacy service often fails. This causes some privacy information leaked. How did you implemented it? I was able to implement a central reconnection management. Now, on every dataaccess the system tries to connect to the service 5 times, if that fails the hardcoded default deny mode will trigger (description below). I'm running this bugFix now 3-5 weeks and never noticed (I have implemented a counter which is watching this error) a connection failure anymore.

Implemented a hardcoded default deny mode:

This mode is the last and deepest "surface" which prevents PDroid2.0 from leaking data. What will happen if ever security mechanism fails? The answer is the default deny mode. The default deny mode is hardcoded and cannot be changed dynamically. People who compiling by their own can easily change this hardcoded mode. They have just to change one variable. You can decide between 3 modes: EMPTY, REAL, RANDOM. Just adjust this setting before you compile. You can easily check the current default deny mode of your framework in the manager application at "Core and App information". If you have notification enabled, you will get a special notification which indicates that the default deny mode was active. Btw: since I've fixed this bug I've never noticed that this hardcoded surface was active. So now PDroid works really really stable.

Implement disabling apps feature:

The disabling apps feature allows you to automatically disable (freeze) the application until you've commit and saved the settings of the new installed application. There are some additional features (like freeze also system apps or freeze on update ....) which allows you to fine tune your settings. This feature will not disable the application like TitaniumBackup does. It search for every provider, receiver, activity or service and deactivates them. So the application cannot receive broadcast's or whatever until you enabled it.

Implemented/enhanced task Killing feature:

First: the task killing feature is NOT similar to other task-killer you've ever seen on android. It does not showing you current running processes or whatever. With this feature you're able to FORCE CLOSE an application, similar to the force-close-button in the detailed app screen on android. Why should I need this feature? Sometimes you don't want that applications like face-book or google-play running in background. Normal taskkiller are not able to kill background service so task-killing won't work. With PDroid2.0 you can just kill them and they won't restart anymore until you opened the application by yourself.

many more.....

For people who compile by their own, you can change the dafault deny mode in the package android.privacy [class PrivacySettings.java].

Just

change this line

:

public static final int CURRENT_DEFAULT_DENY_MODE = DEFAULT_DENY_EMPTY;

to your demanded mode. Examples:

Empty

public static final int CURRENT_DEFAULT_DENY_MODE = DEFAULT_DENY_EMPTY;

Real

public static final int CURRENT_DEFAULT_DENY_MODE = DEFAULT_DENY_REAL;

Random

public static final int CURRENT_DEFAULT_DENY_MODE = DEFAULT_DENY_RANDOM;

Ready Build for SGS2:

I'm not sure if this build contains the latest changes. If it doesn't work for you please get in touch with me.

Preview: