[Discontinued-ROM][2013-06-16][Guhl] Andromadus Permission Spoofing Framw. AOSP 4.2.2

Search This thread

guhl99

Senior Member
Aug 25, 2010
459
581
[Closing message]
Hi,

I am discontinuing the work on the Android Permission Spoofing Framework as I am not using Android anymore.
If anybody is interested in taking over the development I would be very happy to help her or him getting started as much as possible.
Feel free to contact me if you would like to work on it.

Sorry and have fun - Guhl
[End closing message]


This ROM is based on the Andromadus 4.2.x AOSP build.

There is also a CM10.1 based version available here [ROM][21-01-13][Guhl] Andromadus Permission Spoofing Framework CM10.1

In addition to the original AOSP rom it includes the permission spoofing framework enhancement that was originally developed by Plamen K. Kosseff for Android 2.3. The functionality has been ported to Android 4.x and enhanced by me and is now available.

The source of the enhancement can be found on github in the repositories:
android_frameworks_base
android_frameworks_opt_telephony
android_packages_apps_Settings

The current work is done in the JB4.2 branch and the relevant commits are:
framework initial commit
framework bug fix 1
framework bug fix 2
frameworks telephony initial commit
app settings initial commit
framework permission spoofing - location
framework pff: infrastructure code cleanup
framework pff: permission spoofing - contacts and phone log
framework permission spoofing - calendar (Instances)
framework pff: permission revoking - initial commit
framework pff: add PFFInfoDatabase to make spoofed informations persistant and changeable
framework pff: bug fix for permission revoking

What is permission spoofing
Permission spoofing means that the framework will return spoofed informations to Apps instead of the original information based on permissions that the App requested during installation. The main motivation for the development of this functionality is the protection of the privacy of the phones owner.
Examples for spoofed information are:
  • Empty contact list instead of real contacts - READ_CONTACTS
  • False location instead of real location - ACCESS_COARSE_LOCATION / ACCESS_FINE_LOCATION
  • False Information for phone id and phone number - READ_PHONE_STATE
  • Empty log instead of real phone call log - READ_CALL_LOG
  • Empty calendar list instead of real calendar entries - READ_CONTACTS
  • ....

Current implementation
Currently the following permissions are available:
READ_PHONE_STATE
While this permission allows the App to read the state of the phone (in call, ...) it also allows the App to read information like the phone number or the IMEI of the phone. Instead of revoking the permission that has to be granted to an App, permission spoofing provides spoofed information for this sensitive data.
ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION
Instead of the real location the top of Mount Everest will be reported. The implimentation is not perfect yet (Google maps and Latitude still seem to know the location - working on that)
READ_CONTACTS and READ_CALL_LOG
Instead of the contacts and the call log an empty list will be reported. The implementation sets the limit paramter of the query to 0 if the permission is spoofed.
READ_CALENDAR
The implementation changes the date for which the items will returned to the first week of 1970.

More permissions will be added in the near future.

Usage
Spoofing can be enabled on a per App basis. To enable spoofing go to Settings - Apps, choose the App for which you want to spoof the permission. Below the spoofable permission will be a switch that can be set to On to enable spoofing or Off to disable spoofing for this App.

Optional Apps
The source of these apps is also available at https://github.com/guhl

PFF-GPSPath
The PFF-GPSPath App can be used to set the spoofed location and in addition it can also be used to define a path the can then be simulated in the App (by effectively moveing the spoofed location)!
HowTo for PFF-GPSPath HowTo

PFF-Settings
The PFF-Settings app provides the same functionality as App - Settings but in a more comprehensive way.
It provides a list of all Apps (including system Apps) that have a spoofable permission and allows you to set spoofing On/Off for them

PFF-Test
If you spoof a spoofable permission for the app PFF-Test you can check the info that the framework provides to PFF-Test

Downloads
ROM AndromadusAOSP4.2-vision-pff-16062013.zip
Gapps are not included in the rom - they can be found at gapps-jb-20130301-signed.zip
PFF-GPSPath_1_2.apk (needs a ROM >= 20130526)
PFF-AppSettings_1_1.apk
PFF-Test

Communication
I do not want to start a flame war on spoofing on XDA. Whiile spoofing is important for me I do understand people opposing it.
If you want to talk to me, the best way to do this is to look for me (Guhl) at #G2ROOT or #andromadus on freenode IRC.

Changelog
2013-10-21
  • Fix permission unspoofing bug in PFF-AppSettings -> Version 1.1 - see downloads
2013-06-16
  • PFF-GPSPath_1_2.apk added Altitude detection and routing!
  • Updated from Andromadus
  • Bugfix - Crash of PackageManager when installing apk from file.
2013-05-26
  • Framework change to make the spoofed information persistent and changeable
  • App PFF-GPSPath to set and simulate the spoofed location
  • permission revoking moved to Main-ROM and removed the Test-ROM
2013-04-28
  • Enabled permission revoking (in Test-ROM)
2013-04-20
  • Switched Wifi driver to WPA without p2p
2013-04-17
  • Fixed kernel config that broke Wifi
2013-04-09
  • Added the "Kill app back button" functionality to the AOSP rom
2013-04-07
  • Updated from Andromadus (no new spoofing)
  • Added buttons to PFF-AppSettings to spoof/unspoof all apps with one click
2013-03-26
  • Updated from Andromadus (no new spoofing)
2013-03-09
  • Updated from Andromadus (no new spoofing)
2013-02-27
  • Added spoofing for READ_CALENDAR
2013-02-21
  • Added spoofing for READ_CONTACTS and READ_CALL_LOG
  • Updated PFF-AppSettings to reflect the new permissions
2013-02-15
  • Updated from Andromadus (no new spoofing)
2013-01-21
  • Updated from Andromadus (no new spoofing)
2013-01-14
  • Added location spoofing
  • Added location testing to PFF-Test

Credits
  • Plamen K. Kosseff for the original framework changes
  • Flinny for his huge work on the Andromadus roms and supporting me
  • pierre_ja, Nipqer, Hymie and all the others at #G2ROOT for their endless help and entertainment
 
Last edited:

Vauvenal7

Senior Member
Nov 2, 2012
1,464
63
Xiaomi Poco F1
Is this available for other 4.x ROMs?
Like any senseROM or the CM10.1 ROM by flinny?
Cus for me is spoofinge also important but i prefere CM or sense ROMs before AOSP (tweak thing^^)
Btw: thanks for porting it to newer android versions :D

Greets Vauvenal7

Sent from my HTC Vision
 

guhl99

Senior Member
Aug 25, 2010
459
581
Is this available for other 4.x ROMs?
Like any senseROM or the CM10.1 ROM by flinny?
Cus for me is spoofinge also important but i prefere CM or sense ROMs before AOSP (tweak thing^^)
Btw: thanks for porting it to newer android versions :D

Greets Vauvenal7

Sent from my HTC Vision
Hi,

I will rebase it to the CM10.1 branch of Andromadus and support all Andromdus builds for sure.
I'll just wanted to give Flinny some head start to make CM10.1 kind of "stable".
Sense ROMS are not my thing so i don't think it will be availabel from me.

But I think that a CM10.1 version will be available in some days.

Have fun - Guhl
 

demkantor

Inactive Recognized Contributor
Nov 10, 2011
6,861
3,764
mpls
Perfect! I have bee having lots of issues creating pdroid patches for many of these newer ROMs so this is exactly what I need! Setherio has helped me a great deal making them but there are still some that won't build.
Thanks and I'll test soon!

Sent from my Nexus 7 using xda premium
 

Authorita

Senior Member
Nov 26, 2012
60
24
Something I never understood about the implementation of Android, is that there was never any provision for DENYING requested permissions. End users should have the right to deny access to sensitive information, and application developers should be forced to verify the correct functionality of their software in the event that they encounter permission denials.

Spoofing permissions does, of course, go one step further and make sure that the software will continue to function correctly despite access denials. It will be really nice once this expands to cover the full set of permission requests.

Now for google services not being properly controlled by this, I thought that google services were treated separately from other applications? It may also be possible that google is considering the probability that you're actually standing on the top of mt everest, concluding that you're full of sh*t, and handing back your location based on your IP address.

Imagine it like this; google maps is a network service, tied in with their location services. Why would their server ask your phone to ask their server for your location? It would just add unnecessary complexity. If you authorize a coarse location, it is probably smart enough to just bypass your phone altogether for that information. Perhaps, rather than going to the extreme of mt everest, simply handing back a "fine" location with a massive error would be a more slick solution. For example, some random coordinates within 50 miles of your real location.

Without employing a proxy server, you can never keep your geographical location a complete secret when network communications are enabled. As far as privacy goes, network communications is one of the most sensitive permissions. Blocking that one would basically block the risk associated with the other permissions. Now implementing a fake network may be extreme, but telling that application that the data network is disconnected may be an option... Most applications that don't depend on network for their function, should be able to gracefully handle a "there is no network" situation.
 

guhl99

Senior Member
Aug 25, 2010
459
581
...
Now for google services not being properly controlled by this, I thought that google services were treated separately from other applications? It may also be possible that google is considering the probability that you're actually standing on the top of mt everest, concluding that you're full of sh*t, and handing back your location based on your IP address.

Imagine it like this; google maps is a network service, tied in with their location services. Why would their server ask your phone to ask their server for your location? It would just add unnecessary complexity. If you authorize a coarse location, it is probably smart enough to just bypass your phone altogether for that information. Perhaps, rather than going to the extreme of mt everest, simply handing back a "fine" location with a massive error would be a more slick solution. For example, some random coordinates within 50 miles of your real location.

Without employing a proxy server, you can never keep your geographical location a complete secret when network communications are enabled. As far as privacy goes, network communications is one of the most sensitive permissions. Blocking that one would basically block the risk associated with the other permissions. Now implementing a fake network may be extreme, but telling that application that the data network is disconnected may be an option... Most applications that don't depend on network for their function, should be able to gracefully handle a "there is no network" situation.


Hi,

I will still try to find out how Goggle Maps gets the coarse (network) location but at the moment i do not focus on it as you can turn of the access of the Google Apps to the location in the Settings anyway. But sometime i'll find and spoof it and if i have to go down to the C-libraries.

Of course you can not hide your location completely as you can not hide your IMEI from your network carrier. Spoofing on the framework level will not help here. But the main purpose of the spoofing framework extension at them moment is to deal with all those apps that ask for endless permissions. i.e. Angrybirds has access to all your phone id's (and is activly reading them) and to your fine location. Not that i'd like that game but it is just an hilarious example.
Same thing for example with the time schedule app for the Austrian railway. Of course in some situations it might make sense that this app can read my location but in general it does not need to as it's primary purpose is to tell me the next connection from place A to B.
As I can never know when the App really reads my location and what they use it for (and i can not even check it as the App is not open source) i want to be able to spoof that info.

Anyway, i will try to focus on releasing the CM10.1 version and then adding the contacts and phone log.

If you (or anybody else) have additional suggestions of permissions that you would like to see spoofed and how that spoofing should work please come forward.

Have fun - Guhl
 
  • Like
Reactions: demkantor

guhl99

Senior Member
Aug 25, 2010
459
581
Hi,
Updated the rom from the Andromadus sources.
No new spoofing yet
Have fun Guhl
 

guhl99

Senior Member
Aug 25, 2010
459
581
Contacts and phone log

Hi,
I added contacts and phone log spoofing - The CM version will be updated soon.
Have fun - Guhl
 
  • Like
Reactions: Vauvenal7

Nuke101

Member
Nov 15, 2010
46
11
Re: [ROM][27-02-13][Guhl] Andromadus Permission Spoofing Framework AOSP 4.2.2

I'm interested, how does this compare to flinnys aosp? I think I'll give this a whirl, I'm assuming full wipe is necessary? Thanks

Sent from my HTC Vision
 

guhl99

Senior Member
Aug 25, 2010
459
581
I'm interested, how does this compare to flinnys aosp? I think I'll give this a whirl, I'm assuming full wipe is necessary? Thanks
Sent from my HTC Vision
Hi,

Die ROM is the same as Flinnys AOSP ROMS but adds the functionality to spoof permissions.
I do update the sources about every week from Flinnys (the Andromadus) sources and provide new nightlies.

If you come from Flinnys AOSP ROM or from CM10.1 it is not necessary to wipe data.

Have fun - Guhl
 

guhl99

Senior Member
Aug 25, 2010
459
581
Hi,
Updated the rom from the Andromadus sources.
No new spoofing yet
Have fun Guhl
 

prairie-dad

Senior Member
Aug 12, 2012
127
64
Moto G5S Plus
Re: [ROM][09-03-13][Guhl] Andromadus Permission Spoofing Framework AOSP 4.2.2

Hi,
Updated the rom from the Andromadus sources.
No new spoofing yet
Have fun Guhl

Do you plan to update the CM 10.1 version as well? Am using your AOSP version now, but must confess to missing some CM features. Thanks for this excellent work, very glad for some additional security/privacy.

p-d

Sent from my HTC Vision using xda app-developers app
 

Vauvenal7

Senior Member
Nov 2, 2012
1,464
63
Xiaomi Poco F1
Re: [ROM][09-03-13][Guhl] Andromadus Permission Spoofing Framework AOSP 4.2.2

Both get an update at the same time...at least it was the last times he implemented sth new

Greets.Vauvenal7

Sent from my myTouch 4G Slide
 

guhl99

Senior Member
Aug 25, 2010
459
581
Both get an update at the same time...at least it was the last times he implemented sth new

Greets.Vauvenal7

Sent from my myTouch 4G Slide
HI,
I hope there will be an CM10.1 update tomorrow - I messed up my cm10.1 branch a bit.
But it will be there soon for sure.
Have fun - Guhl
 

Nuke101

Member
Nov 15, 2010
46
11
Re: [ROM][09-03-13][Guhl] Andromadus Permission Spoofing Framework AOSP 4.2.2

Any updates coming? Really like this rom, AOSP seems so much faster to me then cm10.1

Sent from my HTC Vision
 

Top Liked Posts

  • There are no posts matching your filters.
  • 15
    [Closing message]
    Hi,

    I am discontinuing the work on the Android Permission Spoofing Framework as I am not using Android anymore.
    If anybody is interested in taking over the development I would be very happy to help her or him getting started as much as possible.
    Feel free to contact me if you would like to work on it.

    Sorry and have fun - Guhl
    [End closing message]


    This ROM is based on the Andromadus 4.2.x AOSP build.

    There is also a CM10.1 based version available here [ROM][21-01-13][Guhl] Andromadus Permission Spoofing Framework CM10.1

    In addition to the original AOSP rom it includes the permission spoofing framework enhancement that was originally developed by Plamen K. Kosseff for Android 2.3. The functionality has been ported to Android 4.x and enhanced by me and is now available.

    The source of the enhancement can be found on github in the repositories:
    android_frameworks_base
    android_frameworks_opt_telephony
    android_packages_apps_Settings

    The current work is done in the JB4.2 branch and the relevant commits are:
    framework initial commit
    framework bug fix 1
    framework bug fix 2
    frameworks telephony initial commit
    app settings initial commit
    framework permission spoofing - location
    framework pff: infrastructure code cleanup
    framework pff: permission spoofing - contacts and phone log
    framework permission spoofing - calendar (Instances)
    framework pff: permission revoking - initial commit
    framework pff: add PFFInfoDatabase to make spoofed informations persistant and changeable
    framework pff: bug fix for permission revoking

    What is permission spoofing
    Permission spoofing means that the framework will return spoofed informations to Apps instead of the original information based on permissions that the App requested during installation. The main motivation for the development of this functionality is the protection of the privacy of the phones owner.
    Examples for spoofed information are:
    • Empty contact list instead of real contacts - READ_CONTACTS
    • False location instead of real location - ACCESS_COARSE_LOCATION / ACCESS_FINE_LOCATION
    • False Information for phone id and phone number - READ_PHONE_STATE
    • Empty log instead of real phone call log - READ_CALL_LOG
    • Empty calendar list instead of real calendar entries - READ_CONTACTS
    • ....

    Current implementation
    Currently the following permissions are available:
    READ_PHONE_STATE
    While this permission allows the App to read the state of the phone (in call, ...) it also allows the App to read information like the phone number or the IMEI of the phone. Instead of revoking the permission that has to be granted to an App, permission spoofing provides spoofed information for this sensitive data.
    ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION
    Instead of the real location the top of Mount Everest will be reported. The implimentation is not perfect yet (Google maps and Latitude still seem to know the location - working on that)
    READ_CONTACTS and READ_CALL_LOG
    Instead of the contacts and the call log an empty list will be reported. The implementation sets the limit paramter of the query to 0 if the permission is spoofed.
    READ_CALENDAR
    The implementation changes the date for which the items will returned to the first week of 1970.

    More permissions will be added in the near future.

    Usage
    Spoofing can be enabled on a per App basis. To enable spoofing go to Settings - Apps, choose the App for which you want to spoof the permission. Below the spoofable permission will be a switch that can be set to On to enable spoofing or Off to disable spoofing for this App.

    Optional Apps
    The source of these apps is also available at https://github.com/guhl

    PFF-GPSPath
    The PFF-GPSPath App can be used to set the spoofed location and in addition it can also be used to define a path the can then be simulated in the App (by effectively moveing the spoofed location)!
    HowTo for PFF-GPSPath HowTo

    PFF-Settings
    The PFF-Settings app provides the same functionality as App - Settings but in a more comprehensive way.
    It provides a list of all Apps (including system Apps) that have a spoofable permission and allows you to set spoofing On/Off for them

    PFF-Test
    If you spoof a spoofable permission for the app PFF-Test you can check the info that the framework provides to PFF-Test

    Downloads
    ROM AndromadusAOSP4.2-vision-pff-16062013.zip
    Gapps are not included in the rom - they can be found at gapps-jb-20130301-signed.zip
    PFF-GPSPath_1_2.apk (needs a ROM >= 20130526)
    PFF-AppSettings_1_1.apk
    PFF-Test

    Communication
    I do not want to start a flame war on spoofing on XDA. Whiile spoofing is important for me I do understand people opposing it.
    If you want to talk to me, the best way to do this is to look for me (Guhl) at #G2ROOT or #andromadus on freenode IRC.

    Changelog
    2013-10-21
    • Fix permission unspoofing bug in PFF-AppSettings -> Version 1.1 - see downloads
    2013-06-16
    • PFF-GPSPath_1_2.apk added Altitude detection and routing!
    • Updated from Andromadus
    • Bugfix - Crash of PackageManager when installing apk from file.
    2013-05-26
    • Framework change to make the spoofed information persistent and changeable
    • App PFF-GPSPath to set and simulate the spoofed location
    • permission revoking moved to Main-ROM and removed the Test-ROM
    2013-04-28
    • Enabled permission revoking (in Test-ROM)
    2013-04-20
    • Switched Wifi driver to WPA without p2p
    2013-04-17
    • Fixed kernel config that broke Wifi
    2013-04-09
    • Added the "Kill app back button" functionality to the AOSP rom
    2013-04-07
    • Updated from Andromadus (no new spoofing)
    • Added buttons to PFF-AppSettings to spoof/unspoof all apps with one click
    2013-03-26
    • Updated from Andromadus (no new spoofing)
    2013-03-09
    • Updated from Andromadus (no new spoofing)
    2013-02-27
    • Added spoofing for READ_CALENDAR
    2013-02-21
    • Added spoofing for READ_CONTACTS and READ_CALL_LOG
    • Updated PFF-AppSettings to reflect the new permissions
    2013-02-15
    • Updated from Andromadus (no new spoofing)
    2013-01-21
    • Updated from Andromadus (no new spoofing)
    2013-01-14
    • Added location spoofing
    • Added location testing to PFF-Test

    Credits
    • Plamen K. Kosseff for the original framework changes
    • Flinny for his huge work on the Andromadus roms and supporting me
    • pierre_ja, Nipqer, Hymie and all the others at #G2ROOT for their endless help and entertainment
    3
    Yeah Wifi does not work on this rom :(
    Hi,
    I fixed the kernel config that breaks Wifi in Andromadus.
    The new ROM has working Wifi again.
    Have fun - Guhl
    3
    PFF-GPSPath

    Hi,

    well it took a while for me to release an update. But I did not give up on the AOSP rom yet.

    These changes are:
    • Added PFFInfoDatabase to make PFF spoofed information persistent and changeable
    • Exposed functions in the PackageManagerService to get and set the spoofed location
    • Created the PFF-GPSPath App that allows you to graphically set the spoofed location in the framework and also allows you to create a path by adding several markers to the map and then simulate the movement along this path.

    Remarks for the PFF-GPSPath
    - The coarse location is still visible to some Apps. I know for sure that Google Maps sees the real coarse location. This is currently on top of my agenda to find how the coarse location is leaked to the Google Apps.
    But Apps that retrieve the coarse location using the standard location API see the spoofed coarse location.
    So if you really don't want to leak your location to Google Apps turn off the network location access in Settings.

    - The App might have some bugs as it is rather new.

    - Planned enhancements in the near future: Use the Google or OSM services to calculate the path along the roads instead of just creating "craw flight" path segments.

    The OP has been updated and contains all the links to the ROM, Apps, Sources and commits.
    Well, I am looking forward to your feedback!

    There is no update from the Andromadus sources as I did not want to risk to break my code base before I had this implemented.

    Have fun - Guhl
    2
    Hi,
    Updated the rom from the Andromadus sources. No new spoofing.
    Have fun Guhl
    2
    Location spoofing

    Hi,
    I added location spoofing - The CM version will be updated soon.
    Have fun - Guhl