ProtectMyPrivacy(PMP) helps you to manage and control usages of privacy data of applications installed on your Android device! (Download at: https://play.google.com/store/apps/details?id=com.synergylabs.androidpmp)
Features
√ Get notifications and flags whenever an application that you're currently using accesses data on your device (e.g. Location, Phone Identifiers, Call logs, Contacts, Calendar, Messages, Notifications etc.)
√ Choose how you want the app to access your privacy data. (Options: Allow, Deny, Fake, Ask)
√ Easily access privacy controls from within PMP on an attractive listview display
√ Scroll between your list of 'Protected', 'System' as well as 'Unprotected' Apps to see what data accesses the apps that you’ve installed are currently accessing
√ Attractive icons and views that quickly orientate you what types of data your application is accessing
√ Real-time interactive warning mechanism that notifies you whenever an app requires the use of privacy data
PMP runs only on rooted devices running Android 4.1 and above, and requires Cydia Substrate as well as SELinuxModeChanger to function properly.
Installation Instructions:
1. PMP requires a rooted Android device (Please refer to http://android.stackexchange.com/questions/1184/how-do-i-root-my-android-device). Check that you have root access on your device. Download a root checker: e.g. (https://play.google.com/store/apps/details?id=com.joeykrim.rootcheck&hl=en) to check.
2. Install the PMP application. The list of Protected Applications will not be visible, as steps (3) and (4) have not been performed yet.
3. Download SELinuxModeChanger (http://forum.xda-developers.com/showthread.php?t=2524485). Change the mode of your device to “Permissive”.
4. Download Cydia Substrate (https://play.google.com/store/apps/details?id=com.saurik.substrate&hl=en). Link the Substrate Files by clicking on the “Link Substrate Files” button, followed by the “Restart System (Soft)” button to restart your device.
5. Navigate into the PMP application, and you should see your installed apps in the list.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Developer
SynergyLabs @ CMU
Push
..
Bump
Has anyone used this app successfully? Some reviews on play store complain about bootloop
blue5055 said:
Has anyone used this app successfully? Some reviews on play store complain about bootloop
Click to expand...
Click to collapse
Hi, I think the complain was due to the phone rooting process rather than PMP installation. In any case, we have found that the installation works best by installing PMP only after installing the Cydia Substrate and SELinuxModeChanger dependencies. If not, uninstall and re-install PMP, followed by a phone reboot by clicking on 'Restart System(Soft)' in Cydia Substrate. The list of protected apps should show up in PMP properly after this.
Use ProtectMyPrivacy(PMP), control your application privacy now!
https://play.google.com/store/apps/details?id=com.synergylabs.pmpandroid
Updated PlayStore link for PMP
Updated link:
HTML:
https://play.google.com/store/apps/details?id=com.synergylabs.androidpmp
Updated PlayStore link for PMP
Updated link:
https://play.google.com/store/apps/details?id=com.synergylabs.androidpmp
nice app worth sharing this app..!!
force close android marshmallow and android lollipop.here is the log.hope my helped.
3C Toolbox Pro (logcat)
======================
I/16:16:39.427 Sending signal. PID: 11859 SIG: 9
E/16:16:39.091 at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)
E/16:16:39.091 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
E/16:16:39.091 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
E/16:16:39.091 at java.lang.reflect.Method.invoke(Method.java:372)
E/16:16:39.091 at java.lang.reflect.Method.invoke(Native Method)
E/16:16:39.091 at android.app.ActivityThread.main(ActivityThread.java:5348)
E/16:16:39.091 at android.os.Looper.loop(Looper.java:139)
E/16:16:39.091 at android.os.Handler.dispatchMessage(Handler.java:95)
E/16:16:39.091 at android.os.Handler.handleCallback(Handler.java:739)
E/16:16:39.091 at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
E/16:16:39.091 at android.view.Choreographer.doFrame(Choreographer.java:550)
E/16:16:39.091 at android.view.Choreographer.doCallbacks(Choreographer.java:580)
E/16:16:39.091 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
E/16:16:39.091 at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5935)
E/16:16:39.091 at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1075)
E/16:16:39.091 at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1860)
E/16:16:39.091 at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2108)
E/16:16:39.091 at android.view.ViewGroup.layout(ViewGroup.java:5046)
E/16:16:39.091 at android.view.View.layout(View.java:15715)
E/16:16:39.091 at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
E/16:16:39.091 at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
E/16:16:39.091 at android.view.ViewGroup.layout(ViewGroup.java:5046)
E/16:16:39.091 at android.view.View.layout(View.java:15715)
E/16:16:39.091 at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:494)
E/16:16:39.091 at android.view.ViewGroup.layout(ViewGroup.java:5046)
E/16:16:39.091 at android.view.View.layout(View.java:15715)
E/16:16:39.091 at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
E/16:16:39.091 at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
E/16:16:39.091 at android.view.ViewGroup.layout(ViewGroup.java:5046)
E/16:16:39.091 at android.view.View.layout(View.java:15715)
E/16:16:39.091 at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)
E/16:16:39.091 at android.view.ViewGroup.layout(ViewGroup.java:5046)
E/16:16:39.091 at android.view.View.layout(View.java:15715)
E/16:16:39.091 at android.widget.AbsListView.onLayout(AbsListView.java:2151)
E/16:16:39.091 at android.widget.ListView.layoutChildren(ListView.java:1673)
E/16:16:39.091 at android.widget.ListView.fillFromTop(ListView.java:759)
E/16:16:39.091 at android.widget.ListView.fillDown(ListView.java:698)
E/16:16:39.091 at android.widget.ListView.makeAndAddView(ListView.java:1864)
E/16:16:39.091 at android.widget.AbsListView.obtainView(AbsListView.java:2347)
E/16:16:39.091 at com.synergylabs.androidpmp.ui.adapters.ApplicationAdapter.getView(ApplicationAdapter.java:77)
E/16:16:39.091 at com.synergylabs.androidpmp.ui.adapters.ApplicationAdapter.loadPossiblePermissions(ApplicationAdapter.java:89)
E/16:16:39.091 at com.synergylabs.androidpmp.Util.opToString(Util.java:193)
E/16:16:39.091 java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
E/16:16:39.091 Process: com.synergylabs.androidpmp, PID: 11859
E/16:16:39.091 FATAL EXCEPTION: main
D/16:16:39.090 Shutting down VM
W/16:16:39.085 Asset path /system/framework/oneplus-framework-res.apk is neither a directory nor file (type=1).
I/16:16:39.084 Success to hydrongen resources /system/framework/hydrongen-framework-res.apk
E/16:16:39.053 [com.tencent.FileManager, com.keramidas.TitaniumBackup, com.synergylabs.androidpmp, info.kfsoft.android.TrafficIndicatorPro, com.flarejune.perfectcolorbar, com.UCMobile, ccc71.at, me.piebridge.forcestopgb, com.riteshsahu.SMSBackupRestorePro, com.coolapk.market, de.robv.android.xposed.installer, com.naxy.xykey, cn.wq.myandroidtoolspro, org.adawaycn, biz.bokhorst.xprivacy, com.maxmpz.audioplayer, com.mixplorer, com.dv.adm.pay, de.defim.apk.lightningwall]
D/16:16:38.701 Enabling debug mode 0
I/16:16:38.687 Initialized EGL, version 1.4
I/16:16:38.686 Reconstruct Branch: NOTHING
I/16:16:38.686 Local Patches: NONE
I/16:16:38.686 Remote Branch: quic/LA.BF.1.1.1.c4
I/16:16:38.686 Local Branch: mybranch15158111
I/16:16:38.686 Build Date: 10/12/15 Mon
I/16:16:38.686 OpenGL ES Shader Compiler Version: E031.25.03.06
I/16:16:38.686 <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.1.C4__release_AU ()
D/16:16:38.670 App Event: start
W/16:16:38.667 More than 500 ms to handle , msg.target = Handler (android.app.ActivityThread$H) {3e7ab1b4} , msg.callback = null, msg.what = 100 , takenTime = 908 , startTime = 800376
D/16:16:38.662 mPerfLockEnabled false mPerfLockTraceEnabled false mPerfLockDuration 100 mPerfLockCpuMinFreq 1500
D/16:16:38.661 Validating map...
D/16:16:38.659 Use EGL_SWAP_BEHAVIOR_PRESERVED: true
D/16:16:38.657 mPerfLockEnabled true
E/16:16:37.775 server might already have been initialized
E/16:16:37.773 created from an instance of the manager
E/16:16:37.773 PMPServer created
W/16:16:24.728 responed with 3 for request PermissionModeRequestImpl [opNum=1, stackTrace=[dalvik.system.VMStack.getThreadStackTrace(Native Method), java.lang.Thread.getStackTrace(Thread.java:580), com.synergylabs.androidpmp.hooks.xposed.XHookImpl$1.beforeHookedMethod(XHookImpl.java:62), de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:661), android.location.LocationManager.requestLocationUpdates(<Xposed>), android.location.LocationManager.requestLocationUpdates(LocationManager.java:534), com.a.b.a.g.d.i(Unknown Source), com.a.b.a.g.d.h(Unknown Source), com.a.b.a.g.d.<init>(Unknown Source), com.a.b.a.b.<init>(Unknown Source), com.a.b.a.a.a(Unknown Source), com.amap.android.location.internal.server.NetworkLocationService.a(Unknown Source), com.amap.android.location.internal.server.NetworkLocationService.onCreate(Unknown Source), android.app.ActivityThread.handleCreateService(ActivityThread.java:2838), android.app.ActivityThread.access$1900(ActivityThread.java:155), android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437), android.os.Handler.dispatchMessage(Handler.java:102), android.os.Looper.loop(Looper.java:139), android.app.ActivityThread.main(ActivityThread.java:5348), java.lang.reflect.Method.invoke(Native Method), java.lang.reflect.Method.invoke(Method.java:372), com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950), com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745), de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)], uid=10000]
W/16:16:24.641 sent request AppopsRequest [type=SET, num=1, uid=10000, op=1, packageName=com.amap.android.location, mode=0]
W/16:16:24.641 sending request AppopsRequest [type=SET, num=1, uid=10000, op=1, packageName=com.amap.android.location, mode=0]
W/16:16:24.554 called storeMode with com.amap.android.location, Fine Grained Location, Fake
E/16:16:17.828 waiting on user response for com.amap.android.location op Fine Grained Location
D/16:16:17.794 mPerfLockEnabled true
W/16:16:17.786 Failure retrieving resources for com.amap.android.location: Resource ID #0x0
W/16:16:17.784 No package identifier when getting value for resource number 0x00000000
W/16:16:17.779 Asset path /system/framework/oneplus-framework-res.apk is neither a directory nor file (type=1).
I/16:16:17.779 Success to hydrongen resources /system/framework/hydrongen-framework-res.apk
E/16:16:17.751 request sent repackaged as an ad request: PermissionModeRequestImpl [opNum=1, stackTrace=[dalvik.system.VMStack.getThreadStackTrace(Native Method), java.lang.Thread.getStackTrace(Thread.java:580), com.synergylabs.androidpmp.hooks.xposed.XHookImpl$1.beforeHookedMethod(XHookImpl.java:62), de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:661), android.location.LocationManager.requestLocationUpdates(<Xposed>), android.location.LocationManager.requestLocationUpdates(LocationManager.java:534), com.a.b.a.g.d.i(Unknown Source), com.a.b.a.g.d.h(Unknown Source), com.a.b.a.g.d.<init>(Unknown Source), com.a.b.a.b.<init>(Unknown Source), com.a.b.a.a.a(Unknown Source), com.amap.android.location.internal.server.NetworkLocationService.a(Unknown Source), com.amap.android.location.internal.server.NetworkLocationService.onCreate(Unknown Source), android.app.ActivityThread.handleCreateService(ActivityThread.java:2838), android.app.ActivityThread.access$1900(ActivityThread.java:155), android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437), android.os.Handler.dispatchMessage(Handler.java:102), android.os.Looper.loop(Looper.java:139), android.app.ActivityThread.main(ActivityThread.java:5348), java.lang.reflect.Method.invoke(Native Method), java.lang.reflect.Method.invoke(Method.java:372), com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950), com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745), de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)], uid=10000]
E/16:15:55.877 Service's server started
W/16:15:55.875 More than 500 ms to handle , msg.target = Handler (android.app.ActivityThread$H) {3e7ab1b4} , msg.callback = null, msg.what = 114 , takenTime = 2199 , startTime = 756294
W/16:15:54.882 sent request AppopsRequest [type=GETALL, num=0, uid=-1, op=-1, packageName=, mode=-1]
W/16:15:54.882 sending request AppopsRequest [type=GETALL, num=0, uid=-1, op=-1, packageName=, mode=-1]
E/16:15:53.930 server might already have been initialized
E/16:15:53.928 created from an instance of the manager
E/16:15:53.928 PMPServer created
W/16:15:53.676 More than 500 ms to handle , msg.target = Handler (android.app.ActivityThread$H) {3e7ab1b4} , msg.callback = null, msg.what = 110 , takenTime = 900 , startTime = 755394
W/16:15:53.645 Asset path /system/framework/oneplus-framework-res.apk is neither a directory nor file (type=1).
I/16:15:53.645 Success to hydrongen resources /system/framework/hydrongen-framework-res.apk
W/16:15:53.508 Suspending all threads took: 5.787ms
E/16:15:53.041 at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)
E/16:15:53.041 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
E/16:15:53.041 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
E/16:15:53.041 at java.lang.reflect.Method.invoke(Method.java:372)
E/16:15:53.041 at java.lang.reflect.Method.invoke(Native Method)
E/16:15:53.041 at android.app.ActivityThread.main(ActivityThread.java:5348)
E/16:15:53.041 at android.os.Looper.loop(Looper.java:139)
E/16:15:53.041 at android.os.Handler.dispatchMessage(Handler.java:102)
E/16:15:53.041 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415)
E/16:15:53.041 at android.app.ActivityThread.access$1600(ActivityThread.java:155)
E/16:15:53.041 at android.app.ActivityThread.handleBindApplication(<Xposed>)
E/16:15:53.041 at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:661)
E/16:15:53.041 at de.robv.android.xposed.XposedBridge$1.beforeHookedMethod(XposedBridge.java:176)
E/16:15:53.041 at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:71)
E/16:15:53.041 at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:35)
E/16:15:53.041 at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
E/16:15:53.041 at com.phoneinfo.changer.hooks.MainHook.handleLoadPackage(Unknown Source)
E/16:15:53.041 at com.phoneinfo.changer.hooks.d.a(Unknown Source)
E/16:15:53.041 at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:136)
E/16:15:53.041 at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:129)
E/16:15:53.041 at de.robv.android.xposed.XposedHelpers.findMethodExact(XposedHelpers.java:174)
E/16:15:53.041 java.lang.NoSuchMethodError: android.os.Binder#execTransact(int,int,int,int)#exact
E/16:15:52.983 Hook Name: android.net.wifi.WifiInfo
E/16:15:52.983 Hook Name: android.content.ContentResolver
E/16:15:52.982 Hook Name: android.content.ContentResolver
E/16:15:52.981 Hook Name: android.telephony.TelephonyManager
E/16:15:52.944 Hook Name: android.location.LocationManager
E/16:15:52.944 Hook Name: android.content.ContentResolver
E/16:15:52.915 Hook Name: android.content.ContentResolver
I/16:15:52.699 Late-enabling -Xcheck:jni
Now you need xposed right?
This app is really very awesome. Thanks to the Dev.
But unfortunately the app force closes in CM13 rom in my Redmi 1S. Please fix it.
Installation failure?
Salut!
I cannot install .apk, not 2.1.3, neither 2.1.2. (19FF2875422ADA503517768A99342576 and 57B5919F7F9DAA269A95B9108C7BBD8B)
System message for both APK's "there was a problem parsing the package."
Xposed message for both APK's "Downloaded file is not a valid APK (or incompatible)"
Both files pass ZIP integrity check and could be unzipped with no problems.
HTC One X+ (enrc2b), Android (4.2.2) Revolution 8 HD, rooted, XPosed Installer 2.6.1.
How can I carry out step-2 of the installation instruction?
Thank you.
Cydia Substrate is years old. How are we supposed to rely on an app designed in 2013 for 2.x-4.x for your app released in 2015 for 4.3+?
I downloaded Substrate and immediately ran into a brick wall (that "can't perform initial check, please email the dev" message). For as "easy" as people say PMP is to use compared to XPrivacy, it's colossally more difficult to install, and sorely lacking in helpful resources. This thread is the only place that informed me I should even be installing Substrate in the first place.
Has anyone gotten this to work on 6 or 7? I just get bootloops all day.
qu4gmire said:
Has anyone gotten this to work on 6 or 7? I just get bootloops all day.
Click to expand...
Click to collapse
Yes. Use xposed installer to get it, menu>download>pmp>versions (or download from play) lastest version was 2.4.0 on Jan 28th 2017.
This thread on xda seems long abandoned. No separate cydia download or whatever needed.
+always have the xposed uninstaller zip handy on sdcard in case of bootloops.
Is this app open source so we can confirm that our private data is actually private?
BillTheCat said:
Is this app open source so we can confirm that our private data is actually private?
Click to expand...
Click to collapse
No it is not, we have been asking for that from the beginning, but it has been moved to xposed instead of cydia now