[Dev/App/Framework] PDroid 2.0 Touchwiz port for JB OTA
Thanks always have to go out first - Many thanks to Eschelon for the many hours of wiping/testing for me along with the rest of the Synergy team. I still don't have a gs3 so most of this was done blind and let me say that was a very difficult task. Of course thanks to all the original PDroid developers that made the base code available.
If you want to use this prebuilt into a rom - starting tonight (01Jan13 r147) Synergy builds will have this framework already ported in. You will just need to load on an APK to start blocking perms. Other rom devs I have included just the framework in post 2 - just make sure to give credit back to me/this thread- this took awhile to port over
What is it?
PDroid is a (awesome) security framework similar to superuser but allows selective blocking of app permissions. It creates a "proxy" between the actual permissions and the PDroid framework which allow passing of different return data.
Because of the proxy created this method is better than apps which just remove permissions from manifests because it should not cause any fcs- Apps will never know the difference. It also allows patching permissions such as location/android id/camera to return spoofed data.
PDroid is a very complex mod across many parts of framework. I have not seen a proper port of this done as of yet - We have spent much time verifying that this port of PDroid 2.0 successfully works with various permissions. See below screenshots for proof.
The framework portion of this mod is a port of the 20121017 patch of pdroid2.0 for cyanogenmod rewritten by me to work on TW.
The main patches are located here: https://github.com/mateor/auto-patch.../jellybean/cm/
I believe it is based off of CollegeDev's source from
Downloads section below contain the modded services.jar/core.jar/framework.jar from the JellyBean OTA.
The app I preferred and what most of our testing was done on is called PDroid Manager - This is one of the only GPL licensed PDroid apps I have seen. The original thread is up here - http://forum.xda-developers.com/show....php?t=1994860
I needed to make some changes to deal with exception errors the original source was throwing. The original code is GPL'ed, my source is up in the Downloads section
If you do not want to use Pdroid Manager you can switch to the PDroid 2.0 App by installing it from original thread http://forum.xda-developers.com/show....php?t=1923576
**when switching apps you probably want to uninstall old one, delete /data/system/privacy.db reboot then install new app. I do not believe 2 can coexist**
Verifying PDroid Works:
A good test app is "Network Info II"
from market. You can also use my Logging Test App
to test some values such as android id. Other valid tests are items such as blocking Phone from Calls and verifying you get a call error or blocking maps from location.
The one thing we did notice was the stock camera app was not able to be blocked, but any 3rd party app that uses camera blocking will work (probably due to samsung's app using some hidden calls in framework via reflection)