[APP] PDroid - The Better Privacy Protection [2012-03-18: Bugfixes in Patch 1.32]

Status
Not open for further replies.
Search This thread

krzych

Senior Member
Jul 29, 2009
1,141
301
Warsaw
I've set a fix GPS location for an app with PDroid. But: these data are only be accessed when I am enabled the hardware-GPS (although it is not really used). Is this intentionally?
I would prefer that PDroid returns the date (random or fixed) independend on the real hardware setting. Is there a chance to handle this that way?
Let's imagine that an App really needs a GPS location, but device doesn't have a GPS. For this problem PDroid is no workaround.

Mock location. Plenty of fake GPS apps I n the market, you choose wrong forum and you dig up almost dead thread.

Sent from my HTC Desire HD using xda app-developers app
 

jimmijam07

Member
Apr 10, 2013
16
1
PDroid causes Galaxy Ace to not fully boot after applying patch...

(Posted this originally in the Galaxy Ace Q&A/Troubleshooting/Help area but figured to re-post in this thread may be better. Apologies for the cross-posting.)

After creating and applying the patch based on the ROM I'm running, device will boot up to "Samsung Galaxy Cooper GT-S5830" screen and not proceed any futher beyond that point.


Device: Samsung Galaxy Ace GT-S5830D
ROM: Nitrogen[Android Un-Chained] Patched Up-To-Date with Patch 3. More --> http://xdaforums.com/showthread.php?t=2205818


Did notice some warnings generated in the patcher app log that may be of concern:

Note: Win7 User Dir Name has been changed and warning messages have been bolded and highlighted in red,

---
PDroid Patcher v0.321 - Patch v1.32

Patching C:\Users\******\Documents\Droidz\XDA_Nitrogen[Android Un-Chained][Revision1]-20130322-183515.zip

Extracting framework files from ROM
inflated: system/framework/core.jar
inflated: system/framework/framework.jar
inflated: system/framework/services.jar

inflated: META-INF/com/google/android/updater-script

inflated: META-INF/com/google/android/update-binary

Decompiling original files
I: Baksmaling...
I: Copying assets and libs...

I: Baksmaling...
I: Copying assets and libs...

I: Baksmaling...
I: Copying assets and libs...

Cleaning up smali

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" framework.mod.jar.out\smali\android\app\ContextImpl.smali 1>framework.mod.jar.out\smali\android\app\ContextImpl.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y framework.mod.jar.out\smali\android\app\ContextImpl.smali.new framework.mod.jar.out\smali\android\app\ContextImpl.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" framework.mod.jar.out\smali\android\content\ContentResolver.smali 1>framework.mod.jar.out\smali\android\content\ContentResolver.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y framework.mod.jar.out\smali\android\content\ContentResolver.smali.new framework.mod.jar.out\smali\android\content\ContentResolver.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" framework.mod.jar.out\smali\android\telephony\PhoneStateListener.smali 1>framework.mod.jar.out\smali\android\telephony\PhoneStateListener.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y framework.mod.jar.out\smali\android\telephony\PhoneStateListener.smali.new framework.mod.jar.out\smali\android\telephony\PhoneStateListener.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" framework.mod.jar.out\smali\android\telephony\PhoneStateListener$1.smali 1>framework.mod.jar.out\smali\android\telephony\PhoneStateListener$1.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y framework.mod.jar.out\smali\android\telephony\PhoneStateListener$1.smali.new framework.mod.jar.out\smali\android\telephony\PhoneStateListener$1.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" services.mod.jar.out\smali\com\android\server\am\ActivityManagerService.smali 1>services.mod.jar.out\smali\com\android\server\am\ActivityManagerService.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y services.mod.jar.out\smali\com\android\server\am\ActivityManagerService.smali.new services.mod.jar.out\smali\com\android\server\am\ActivityManagerService.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" services.mod.jar.out\smali\com\android\server\ServerThread.smali 1>services.mod.jar.out\smali\com\android\server\ServerThread.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y services.mod.jar.out\smali\com\android\server\ServerThread.smali.new services.mod.jar.out\smali\com\android\server\ServerThread.smali
1 file(s) moved.

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>..\tools\sed "/^\s*\.\(line\s[0-9]\{1,\}\)\s*$/d" core.mod.jar.out\smali\java\lang\ProcessManager$ProcessImpl.smali 1>core.mod.jar.out\smali\java\lang\ProcessManager$ProcessImpl.smali.new

C:\Users\******\AppData\Roaming\PDroidPatcher\tmp>move /Y core.mod.jar.out\smali\java\lang\ProcessManager$ProcessImpl.smali.new core.mod.jar.out\smali\java\lang\ProcessManager$ProcessImpl.smali
1 file(s) moved.

Applying PDroid patches
patching file smali/android/app/ContextImpl.smali
Hunk #2 succeeded at 151 (offset 5 lines).
Hunk #3 succeeded at 683 with fuzz 3 (offset 40 lines).
Hunk #4 succeeded at 1166 with fuzz 2 (offset 61 lines).
Hunk #5 succeeded at 1190 with fuzz 3 (offset 64 lines).
Hunk #6 succeeded at 1466 (offset 123 lines).
Hunk #7 succeeded at 1714 (offset 129 lines).
patching file smali/android/content/ContentResolver.smali
Hunk #1 succeeded at 2850 with fuzz 3.
patching file smali/android/privacy/IPrivacySettingsManager.smali
patching file smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
patching file smali/android/privacy/IPrivacySettingsManager$Stub.smali
patching file smali/android/privacy/PrivacyFileObserver.smali
patching file smali/android/privacy/PrivacyPersistenceAdapter.smali
patching file smali/android/privacy/PrivacySettings$1.smali
patching file smali/android/privacy/PrivacySettingsManagerService.smali
patching file smali/android/privacy/PrivacySettingsManager.smali
patching file smali/android/privacy/PrivacySettings.smali
patching file smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
patching file smali/android/privacy/surrogate/PrivacyAccountManager.smali
patching file smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
patching file smali/android/privacy/surrogate/PrivacyContentResolver.smali
patching file smali/android/privacy/surrogate/PrivacyCursor.smali
patching file smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
patching file smali/android/privacy/surrogate/PrivacyLocationManager.smali
patching file smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
patching file smali/android/telephony/PhoneStateListener$1.smali
patching file smali/android/telephony/PhoneStateListener.smali
Hunk #2 succeeded at 64 (offset 1 line).
Hunk #3 succeeded at 173 with fuzz 1 (offset 23 lines).

patching file smali/com/android/server/am/ActivityManagerService.smali
Hunk #1 succeeded at 13018 with fuzz 1 (offset 962 lines).
Hunk #2 succeeded at 19142 with fuzz 2 (offset 1304 lines).
patching file smali/com/android/server/ServerThread.smali
Hunk #1 succeeded at 44 (offset 4 lines).
Hunk #2 succeeded at 396 (offset 44 lines).

patching file smali/java/lang/PrivacyInputStream.smali
patching file smali/java/lang/PrivacyProcessManager$PrivacyFileReader.smali
patching file smali/java/lang/PrivacyProcessManager.smali
patching file smali/java/lang/ProcessManager$ProcessImpl.smali
Hunk #1 succeeded at 57 (offset 5 lines).
Hunk #2 succeeded at 79 (offset 5 lines).


Creating updater script
Building modified framework.jar
I: Checking whether sources has changed...
I: Smaling...
W: Unknown file type, ignoring: framework.mod.jar.out\smali\android\app\ContextImpl.smali.orig
W: Unknown file type, ignoring: framework.mod.jar.out\smali\android\content\ContentResolver.smali.orig
W: Unknown file type, ignoring: framework.mod.jar.out\smali\android\telephony\PhoneStateListener.smali.orig
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

at org.jf.dexlib.Util.ByteArrayAnnotatedOutput.ensureCapacity(ByteArrayAnnotatedOutput.java:577)
at org.jf.dexlib.Util.ByteArrayAnnotatedOutput.writeShort(ByteArrayAnnotatedOutput.java:180)
at org.jf.dexlib.Code.Format.Instruction22c.writeInstruction(Instruction22c.java:77)
at org.jf.dexlib.Code.Instruction.write(Instruction.java:57)
at org.jf.dexlib.CodeItem.writeItem(CodeItem.java:258)
at org.jf.dexlib.Item.writeTo(Item.java:116)
at org.jf.dexlib.Section.writeTo(Section.java:119)
at org.jf.dexlib.DexFile.writeTo(DexFile.java:716)
at brut.androlib.src.DexFileBuilder.getAsByteArray(DexFileBuilder.java:75)
at brut.androlib.src.DexFileBuilder.writeTo(DexFileBuilder.java:58)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:35)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:222)
at brut.androlib.Androlib.buildSources(Androlib.java:179)
at brut.androlib.Androlib.build(Androlib.java:170)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)

Error encountered, trying to build modified framework.jar again
I: Checking whether sources has changed...
W: Could not find resources

I: Building apk file...

created: META-INF/
inflated: META-INF/MANIFEST.MF
inflated: preloaded-classes

adding: preloaded-classes(in = 65693) (out= 11977)(deflated 81%)
updated manifest

Building modified services.jar
I: Checking whether sources has changed...
I: Smaling...
W: Unknown file type, ignoring: services.mod.jar.out\smali\com\android\server\ServerThread.smali.orig
W: Unknown file type, ignoring: services.mod.jar.out\smali\com\android\server\am\ActivityManagerService.smali.orig
W: Could not find resources

I: Building apk file...

created: META-INF/
inflated: META-INF/MANIFEST.MF

updated manifest

Building modified core.jar
I: Checking whether sources has changed...
I: Smaling...
W: Unknown file type, ignoring: core.mod.jar.out\smali\java\lang\ProcessManager$ProcessImpl.smali.orig
W: Could not find resources

I: Building apk file...

created: META-INF/
inflated: META-INF/MANIFEST.MF
inflated: classes.dex
inflated: org/apache/harmony/dalvik/ddmc/README.txt
inflated: com/ibm/icu4jni/ThirdPartyProject.prop
inflated: org/apache/xalan/Version.src
inflated: org/apache/xalan/processor/XSLProcessorVersion.src
inflated: org/apache/xalan/res/XSLTInfo.properties
inflated: org/apache/xml/serializer/XMLEntities.properties
inflated: org/apache/xml/serializer/output_text.properties
inflated: org/apache/xml/serializer/HTMLEntities.properties
inflated: org/apache/xml/serializer/Version.src
inflated: org/apache/xml/serializer/Encodings.properties
inflated: org/apache/xml/serializer/output_xml.properties
inflated: org/apache/xml/serializer/output_unknown.properties
inflated: org/apache/xml/serializer/output_html.properties
inflated: java/security/security.properties
inflated: java/util/logging/logging.properties
inflated: org/xml/ThirdPartyProject.prop
inflated: org/kxml2/ThirdPartyProject.prop
inflated: org/xmlpull/ThirdPartyProject.prop

adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/ibm/(in = 0) (out= 0)(stored 0%)
adding: com/ibm/icu4jni/(in = 0) (out= 0)(stored 0%)
adding: com/ibm/icu4jni/ThirdPartyProject.prop(in = 318) (out= 202)(deflated 36%)
adding: java/(in = 0) (out= 0)(stored 0%)
adding: java/security/(in = 0) (out= 0)(stored 0%)
adding: java/security/security.properties(in = 5084) (out= 1837)(deflated 63%)
adding: java/util/(in = 0) (out= 0)(stored 0%)
adding: java/util/logging/(in = 0) (out= 0)(stored 0%)
adding: java/util/logging/logging.properties(in = 3123) (out= 1129)(deflated 63%)
adding: org/(in = 0) (out= 0)(stored 0%)
adding: org/apache/(in = 0) (out= 0)(stored 0%)
adding: org/apache/harmony/(in = 0) (out= 0)(stored 0%)
adding: org/apache/harmony/dalvik/(in = 0) (out= 0)(stored 0%)
adding: org/apache/harmony/dalvik/ddmc/(in = 0) (out= 0)(stored 0%)
adding: org/apache/harmony/dalvik/ddmc/README.txt(in = 78) (out= 69)(deflated 11%)
adding: org/apache/xalan/(in = 0) (out= 0)(stored 0%)
adding: org/apache/xalan/processor/(in = 0) (out= 0)(stored 0%)
adding: org/apache/xalan/processor/XSLProcessorVersion.src(in = 4126) (out= 1696)(deflated 58%)
adding: org/apache/xalan/res/(in = 0) (out= 0)(stored 0%)
adding: org/apache/xalan/res/XSLTInfo.properties(in = 1061) (out= 606)(deflated 42%)
adding: org/apache/xalan/Version.src(in = 4999) (out= 1909)(deflated 61%)
adding: org/apache/xml/(in = 0) (out= 0)(stored 0%)
adding: org/apache/xml/serializer/(in = 0) (out= 0)(stored 0%)
adding: org/apache/xml/serializer/Encodings.properties(in = 11338) (out= 3094)(deflated 72%)
adding: org/apache/xml/serializer/HTMLEntities.properties(in = 4353) (out= 2220)(deflated 49%)
adding: org/apache/xml/serializer/output_html.properties(in = 1841) (out= 922)(deflated 49%)
adding: org/apache/xml/serializer/output_text.properties(in = 1525) (out= 832)(deflated 45%)
adding: org/apache/xml/serializer/output_unknown.properties(in = 1769) (out= 948)(deflated 46%)
adding: org/apache/xml/serializer/output_xml.properties(in = 1818) (out= 943)(deflated 48%)
adding: org/apache/xml/serializer/Version.src(in = 4720) (out= 1869)(deflated 60%)
adding: org/apache/xml/serializer/XMLEntities.properties(in = 1086) (out= 647)(deflated 40%)
adding: org/kxml2/(in = 0) (out= 0)(stored 0%)
adding: org/kxml2/ThirdPartyProject.prop(in = 209) (out= 173)(deflated 17%)
adding: org/xml/(in = 0) (out= 0)(stored 0%)
adding: org/xml/ThirdPartyProject.prop(in = 224) (out= 178)(deflated 20%)
adding: org/xmlpull/(in = 0) (out= 0)(stored 0%)
adding: org/xmlpull/ThirdPartyProject.prop(in = 224) (out= 179)(deflated 20%)
updated manifest

Creating flashable patch zip
added manifest
adding: system/(in = 0) (out= 0)(stored 0%)
adding: system/framework/(in = 0) (out= 0)(stored 0%)
adding: system/framework/core.jar(in = 1914926) (out= 1902928)(deflated 0%)
adding: system/framework/framework.jar(in = 12434) (out= 12293)(deflated 1%)
adding: system/framework/services.jar(in = 708944) (out= 708315)(deflated 0%)
ignoring entry META-INF/
adding: META-INF/com/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/android/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/android/update-binary(in = 228376) (out= 147107)(deflated 35%)
adding: META-INF/com/google/android/updater-script(in = 243) (out= 144)(deflated 40%)


Creating flashable restore zip
added manifest
adding: system/(in = 0) (out= 0)(stored 0%)
adding: system/framework/(in = 0) (out= 0)(stored 0%)
adding: system/framework/core.jar(in = 1862816) (out= 1851862)(deflated 0%)
adding: system/framework/framework.jar(in = 3128765) (out= 3116139)(deflated 0%)
adding: system/framework/services.jar(in = 684964) (out= 684053)(deflated 0%)
ignoring entry META-INF/
adding: META-INF/com/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/android/(in = 0) (out= 0)(stored 0%)
adding: META-INF/com/google/android/update-binary(in = 228376) (out= 147107)(deflated 35%)
adding: META-INF/com/google/android/updater-script(in = 243) (out= 144)(deflated 40%)



Successfully created PDroid patch.

PDroid Patch: C:\Users\******Documents\Droidz\pdroid\PDroid-v1.32-XDA_Nitrogen[Android Un-Chained][Revision1]-20130322-183515.zip.
You can flash it through recovery (for example CWM).

To restore your ROM and remove PDroid, flash PDroid-RESTORE-XDA_Nitrogen[Android Un-Chained][Revision1]-20130322-183515.zip
---

Also used Android Debug Monitor and captured the following errors from LogCat:

---
04-10 07:39:55.689: E/AudioHardwareMSM72XX(213): audioeq library open failure
04-10 07:40:02.819: E/dalvikvm(330): too small to be DEX
04-10 07:40:02.819: E/dalvikvm(330): Optimization failed
04-10 07:40:02.819: E/dalvikvm(212): Unable to extract+optimize DEX from '/system/framework/framework.jar'
04-10 07:40:05.639: E/JNIHelp(212): Native registration unable to find class 'android/debug/JNITest'
04-10 07:40:05.639: E/AndroidRuntime(212): Unable to register all android natives
04-10 07:40:06.059: E/dalvikvm(352): too small to be DEX
04-10 07:40:06.069: E/dalvikvm(352): Optimization failed
04-10 07:40:06.069: E/dalvikvm(348): Unable to extract+optimize DEX from '/system/framework/framework.jar'
04-10 07:40:06.159: E/JNIHelp(348): Native registration unable to find class 'android/debug/JNITest'
04-10 07:40:06.159: E/AndroidRuntime(348): Unable to register all android natives
---

And this keeps going on until I dsconnected the phone from my system.

Any assistance with this would be appreciated.

Cheers
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 328

    PDroid-banner.png


    1.png
    2.png
    4.png
    5.png
    7.png
    3.png
    8.png

    PDroid allows blocking access for any installed application to the following data separately:

    • Device ID (IMEI/MEID/ESN)
    • Subscriber ID (IMSI)
    • SIM serial (ICCID)
    • Phone and mailbox number
    • Incoming call number
    • Outgoing call number
    • GPS location
    • Network location
    • List of accounts (including your google e-mail address)
    • Account auth tokens
    • Contacts
    • Call logs
    • Calendar
    • SMS
    • MMS
    • Browser bookmarks and history
    • System logs
    • SIM info (operator, country)
    • Network info (operator, country)
    For device ID, phone and mailbox number, SIM serial, subscriber ID and device location it also allows supplying custom or random values.


    Why you would want to use it:

    • Applicaitons do NOT crash when access to private data is blocked (unlike with Permissions Denied or CM)
    • Fine-grained tuning of access to private data
    • No background service needed
    • Very small memory footprint (~700KB)
    • No impact on battery life
    • No impact on performance (5ms overhead on access to private data; yes, that's 0.005s)
    • 100% reliable unlike ROOT applications (LBE), which need to start their background service on boot (see android underground to learn why this is an issue)
    • No ROOT required for the app to run
    • No Android permissions required for the app to run
    • Open-source


    Download:

    Automatic PDroid Patcher for Windows (XP/Vista/7):

    • JDK 6 or newer is required (get it here http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html)
    • Install JDK 6 into the default directory (don't change anything when installing)
    • .NET Framework 2.0 or newer required (ships with Windows since XP SP2)
    • Currently only supports Gingerbread (Android 2.3)
    • Will only work with deodexed ROMs (take a look into your ROM's system/framework directory; if there are any *.odex files, your ROM is NOT deodexed)
    • You will need to re-create your settings backup after updating from version 1.27 (it is not compatible with the newer version)

    Download PDroid Patcher v1.32 Beta 0.321 for Windows

    Patch Installation Requirements:

    Installation Instructions:
    1. BACKUP YOUR ROM (HOWTO)
    2. Make a PDroid Patch for your ROM with the PDroid Patcher and put the patch on your SD card
    3. Boot your device into your custom (CWM) recovery (Desire HD: vol down + power)
    4. If you flashed the patch before but PDroid said it still was not installed, then select "mount /system"
    5. Select "install zip from sdcard"
    6. Select "choose zip from sdcard"
    7. Select the PDroid patch you have put on your SD card
    8. After flashing is finished, reboot the device
    9. Install the PDroid app from the Android Market
    10. Rate the app at the Android market ;) (let me know, if you have any issues beforehand)


    Patch Changelog:

    1.32: Fixed updating from version 1.27 and below
    1.31: Fixed patching incompatibility with some ROMs (like Zeus v5)
    1.30:
    • Fixed the alarm being put to snooze every time a call is received or made
    • Fixed FC for some applications (like Yandex Maps)
    • Fixed bootloops for AT&T and SonyEricsson devices (hopefully)
    • Many small tweaks
    1.27: Fixed an issue, where the Touchwiz launcher (and probably others) would continuously crash
    1.26: Fixed an issue, which would make Google Listen and probably other apps crash
    1.25:
    • Fixed an issue, where PDroid would conflict with some ROOT applications making them freeze
    • Fixed random geocoordinates generation
    • Fixed other minor bugs
    1.22: Fixed the patch version reporting bug (v1.21 reports that it's 1.2) :)
    1.21: Fixed the bug where the device would sometimes boot loop right after the boot is finished
    1.2: Added data access notification feature
    1.1: Bugfixes
    1.0: Initial release


    Source:

    • Download: PDroid 2.3.4 source (v1.27) (yes it is based on 2.3.4 but also works with 2.3.3 and 2.3.5 flawlessly)
    • Get the 2.3.4 source from AOSP (branch: android-2.3.4_r1)
    • Extract the patches from the above archive to the 2.3.4 tree root
    • Run:
      Code:
      patch -p1 -i build.patch
      patch -p1 -i frameworks.patch
      patch -p1 -i libcore.patch
    Building from source:
    1. Make a clean build
    2. Apply the patches (see above)
    3. Run:
      Code:
      source build/envsetup.sh
      make update-api
      mmm frameworks/base
      mmm frameworks/base/services/java
      mmm libcore
      make snod


    FAQ:

    I do not have Market access, where can I download the PDroid app?
    Right here

    What about controlling the internet access?
    Controlling access to the network/internet requires either patching the kernel or using ROOT access within the PDroid app. I try avoiding the former due to portability and the latter due to user privacy/security reasons. I am looking into adding internet access control in a way, which would be the most acceptable/convenient for the user. However, this feature currently isn't on the top of my to-do list.

    How do I make a patch manually myself?
    For experienced developers the following basic steps for creating a PDroid patch should be enough to get you started:
    • Make a clean AOSP build (2.3.4, assuming that your ROM is based on 2.3.x)
    • Make another build with PDroid sources added
    • Decompile the framework.jar, services.jar and core.jar files inside the system/framework directory (of both above builds) using apktool
    • Diff the output so that you know, which parts were changed by PDroid
    • Decompile the above three files from your ROM, you want to patch
    • Add the missing code to your ROM files based on the above diff
    • Recompile your patched ROM files using apktool

    Do you plan on adding Froyo/ICS support?
    Yes. But I have not ported PDroid to Froyo or ICS yet. No ETAs yet. You'll need some patience there.

    Will you provide a public source code repository for PDroid?
    I might, when I get some more spare time :)

    Can I backup the privacy settings with TitaniumBackup?
    Yes, however you will need to backup your settings to internal memory (PDroid preferences) before making a backup with TitaniumBackup. After restoring with TitaniumBackup, you will need to restore the previously backed up settings. Alternatively you can backup privacy settings to the SD card.

    Can I use LBE Privacy Guard together with PDroid?
    Yes.

    I have applied the correct patch but my device does not boot, how do I find out what the error is?
    • Restore your backup
    • Get the Android SDK
    • Install it (you don't need the eclipse part)
    • Enable USB-debugging on your device
    • Connect it to your PC
    • Start ddms, which is located in the android-sdk-[platform]\tools directory
    • Apply PDroid patch
    • Reboot the device
    • When your device appears in the ddms window, click on it to see the system log
    • Filter the log by "error"
    • Watch the system log for errors and post them here ;)

    I have flashed a patch but I am having very weird issues I didn't have before (like you cannot unlock the SIM card or there are weird graphics etc.)?
    Have you flashed other mods to your ROM? If so, PDroid is most likely conflicting with them. You will need to create a patch for your customized ROM.

    Also make sure that you are using a patch appropriate for your ROM (the CyanogenMod patches for stable 7.1 will mostly not work on nightlies unless the link says so).

    How do I make a patch for my device after I have flashed some other mods?
    If your other mods DO NOT replace any of the three files: framework.jar, services.jar or core.jar in /system/framework, you can just create a patch normally based on your original ROM file.

    Otherwise you will need to extract those three files from your device (use a root file manager or adb pull), put them into your ROM zip (also in /system/framework) and then create a PDroid patch based on the ROM zip.
    22
    Reserved, just in case ;)
    21
    Hi guys, I'm sorry for the continuous lack of updates to PDroid. The ICS update is almost ready. However, I'm currently moving and spending all my free time on renovating the new apartment, so I never get to finishing and releasing it. It might take a while until I'm done.

    I'll try to update the code when I have a free minute or two, so that at least the hackers amongst you will be able to make their own PDroid builds.
    20
    Short update on ICS progress: It does seem to work in the emulator. Patching real ROMs next ;).
    17
    PDroidPatcher-v1.31

    Here is PDroidPatcher-v1.31 :cool:
    Code:
      File: PDroidPatcher-v1.31.zip
    CRC-32: ac588eaa
       MD4: 5406d23053e69a9e03b68125999f7344
       MD5: 5b01a3b2a1a0b3aa68936a33dc7f7365
     SHA-1: 24da1f0aab6a215ecd24a9a1e122d6bb52b193e5
    grEEtZ,
    gongoscho