** Version 1.1 UPDATED October 2016 **
SUMMARY:
Allows WhatsApp users on Android to extract their backed up WhatsApp data from Google Drive.
UPDATE: This tool was last updated on October 20th 2016.
IMPORTANT: If you wish to extract crypt keys or WhatsApp databases from non-rooted Android devices then you need: WhatsApp Key/DB Extractor instead.
QUESTION:
Why would I even need this?
Us mere mortals have absolutely no access to any application data stored on Google Drive, even though it's our data.
Google said:
What is the Application Data folder?
The 'Application Data folder' is a special folder that is only accessible by your application. Its content is hidden from the user, and from other apps. Despite being hidden from the user, the Application Data folder is stored on the user's Drive and therefore uses the user's Drive storage quota. The Application Data folder can be used to store configuration files, saved games data, or any other types of files that the user should not directly interact with.
Click to expand...
Click to collapse
BRANCH UPDATES:
v1.0 - Initial release.
v1.1 - Added Python 3 support.
PREREQUISITES:
O/S: Windows Vista, Windows 7, Windows 8, Windows 10, Mac OS X or Linux
Python 2.x - If not installed: https://www.python.org/downloads/
Android device with WhatsApp installed and the Google Drive backup feature enabled
Google services device id (if you want to reduce the risk of being logged out of Google)
Search Google Play for "device id" for plenty of apps that can reveal this information
Google account login credentials (username and password)
INSTRUCTIONS:
Extract "WhatsApp-GD-Extractor-master.zip".
Edit the [auth] section in "settings.cfg".
Run python WhatsAppGDExtract.py from your command console.
Read the usage examples that are displayed.
Run any of the examples.
TROUBLESHOOTING:
Check you have the required imports installed (configparser and requests).
I.E.: pip install configparser requests
DOWNLOAD: WhatsApp-GD-Extractor-master.zip
AUTHOR: TripCode
I can list all files from all my backups (I have four backups with ID from 0 to 3) but I can download files from "Backup 0" only.
I debugged the script and when I try to download a file from backupID 3 I obtain a 404 error.
Can you help me? Thanks.
TripCode said:
** Version 1.1 UPDATED October 2016 **
SUMMARY:
Allows WhatsApp users on Android to extract their backed up WhatsApp data from Google Drive.
UPDATE: This tool was last updated on October 20th 2016.
IMPORTANT: If you wish to extract crypt keys or WhatsApp databases from non-rooted Android devices then you need: WhatsApp Key/DB Extractor instead.
QUESTION:
Why would I even need this?
Us mere mortals have absolutely no access to any application data stored on Google Drive, even though it's our data.
BRANCH UPDATES:
v1.0 - Initial release.
v1.1 - Added Python 3 support.
PREREQUISITES:
O/S: Windows Vista, Windows 7, Windows 8, Windows 10, Mac OS X or Linux
Python 2.x - If not installed: https://www.python.org/downloads/
Android device with WhatsApp installed and the Google Drive backup feature enabled
Google services device id (if you want to reduce the risk of being logged out of Google)
Search Google Play for "device id" for plenty of apps that can reveal this information
Google account login credentials (username and password)
INSTRUCTIONS:
Extract "WhatsApp-GD-Extractor-master.zip".
Edit the [auth] section in "settings.cfg".
Run python WhatsAppGDExtract.py from your command console.
Read the usage examples that are displayed.
Run any of the examples.
TROUBLESHOOTING:
Check you have the required imports installed (configparser and requests).
I.E.: pip install configparser requests
DOWNLOAD: WhatsApp-GD-Extractor-master.zip
AUTHOR: TripCode
Click to expand...
Click to collapse
Hello, you could explain how to run the script on windows I have problems with "pip install configparser requests"
..
Good Work but i have a problem!
When i want to execute it says only:
Unable to locate google drive file map for: com.whatsapp
What can i do or what i make wrong?
"Unable to locate google drive file map for: com.whatsapp"
I too am receiving the same error message:
"Unable to locate google drive file map for: com.whatsapp".
Could this be related to a lack of API credentials for traversing the hidden AppData folder structure?
I'm running this via Ubuntu 16.10 x64; Linux desktop 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux and have installed the necessary prerequisite packages as detailed above).
Can someone please assist us (I'm more than happy to provide debugging information etc)?
Kind regards,
John
---------- Post added at 03:41 AM ---------- Previous post was at 03:29 AM ----------
john.morton said:
I too am receiving the same error message:
"Unable to locate google drive file map for: com.whatsapp".
Could this be related to a lack of API credentials for traversing the hidden AppData folder structure?
I'm running this via Ubuntu 16.10 x64; Linux desktop 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux and have installed the necessary prerequisite packages as detailed above).
Can someone please assist us (I'm more than happy to provide debugging information etc)?
Kind regards,
John
Click to expand...
Click to collapse
On further inspection of the Python code and having reviewed drive.google.com it appeared that I hadn't actually run an initial backup and there was no data to present. I believe things are now working correctly (at least in terms of the info and list functions - I'll try the remainder shortly).
What a fantastic script!
john.morton said:
I too am receiving the same error message:
"Unable to locate google drive file map for: com.whatsapp".
Could this be related to a lack of API credentials for traversing the hidden AppData folder structure?
I'm running this via Ubuntu 16.10 x64; Linux desktop 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux and have installed the necessary prerequisite packages as detailed above).
Can someone please assist us (I'm more than happy to provide debugging information etc)?
Kind regards,
John
---------- Post added at 03:41 AM ---------- Previous post was at 03:29 AM ----------
On further inspection of the Python code and having reviewed drive.google.com it appeared that I hadn't actually run an initial backup and there was no data to present. I believe things are now working correctly (at least in terms of the info and list functions - I'll try the remainder shortly).
Click to expand...
Click to collapse
Just a quick note to confirm the script still works and I've successfully downloaded the database and images/photos.
I'd like to acknowledge the hard work of the developer and convey my gratitude.
PS: any chance you can provide a slightly modified version to dump EVERY single hidden file from Google Drive (as I'm trying to discover potential chat and images that may be obfuscated by Google but potentially still present etc)?
john.morton said:
Just a quick note to confirm the script still works and I've successfully downloaded the database and images/photos.
I'd like to acknowledge the hard work of the developer and convey my gratitude.
PS: any chance you can provide a slightly modified version to dump EVERY single hidden file from Google Drive (as I'm trying to discover potential chat and images that may be obfuscated by Google but potentially still present etc)?
Click to expand...
Click to collapse
May I know what to write after pull to get the key file i am only able to get the crypt file
vsur said:
May I know what to write after pull to get the key file i am only able to get the crypt file
Click to expand...
Click to collapse
The keyfile isnt necessary to get all your texts back. simply copy the crypt file in the given folder structure.
as far as i know the keyfile isnt stored online nor offline, online in the data partition or smth like there
XXX\Mi-4c\Internal shared storage\WhatsApp\Databases\msgstore.db.crypt12
Click to expand...
Click to collapse
And install Whatsapp. Then it should find the data by itself and if you are using the same number it should be decrypted correctly.
But if you changed your number i think there is no way to decrypt now
Error= BadAuthentication
I've done everything correctly, but when i try any of the examples it just says "Error= BadAuthentication " even though I am sure of my credentials. please advise.
Thank you sir.
its just saved me,downloaded whatsapp database backup only
Any video tutorial please...I really need it
python-learner said:
I've done everything correctly, but when i try any of the examples it just says "Error= BadAuthentication " even though I am sure of my credentials. please advise.
Click to expand...
Click to collapse
I am having the same issue. Did you get this resolved?
Great work freeing out info, bitta help needed...
I can download all 3 of my backups but I can't find them anywhere locally.
python WhatsAppGDExtract.py -pull "Databases/msgstore.db.crypt12" 1
Downloaded: "WhatsApp/Databases/msgstore.db.crypt12".
Anyone know?
Edit - Got it to work with WhatsAppGDExtract.py -pull "Databases/msgstore.db.crypt12" 0 1 2
Getting the same result again and again "Error= BadAuthentication"
Hi! Thank you for this extractor! For everyone who's getting "Error=BadAuthentication", go to https://security.google.com/settings/security/apppasswords , set up an app password and use that for the settings.cfg file. If the website says that you can't set up app passwords, it means that you don't have 2stepverification enabled for your google account. Search it in your google account settings (it should be under "security" or something... it's in the same place you can edit your password), enable it and then set up the app password. Then, if you want, you can re-disable 2stepverification (and obviously that'll re-disable the possibility to add and use app passwords).
python-learner said:
I've done everything correctly, but when i try any of the examples it just says "Error= BadAuthentication " even though I am sure of my credentials. please advise.
Click to expand...
Click to collapse
Same problem for me. I tried 2 different google accounts with sure passwords
cvanti said:
Same problem for me. I tried 2 different google accounts with sure passwords
Click to expand...
Click to collapse
Open first the folder where the file is at using comand prompt then run the .py file, rather than running it using its full directory. This allows the file with the credentials that you entered to be read, otherwise if you run it directly, your credentials are not considered. Hope this helps as this was what I did wrong
Help, did everything and tried launching from cmd but it just opens and closes in a split second. No error or anything. Same result when I ran it from the folder.
Related
Signare
"-to sign"
v1.1
Having decided to completely rewrite my previous Sign & Aligner tool, I have come to the stage where it is ready for testing.
Version 1.1 Released
Added JDK 7 Install Path To USER PATH - Temporary Change, USER PATH Restored On Closure
Added Detection Of JDK Installation
Code Improvements
Features
Sign with Test Keys
Sign with Private Keys
Generate Your Own Private Key
ZipAlign your APKs
You can generate your own set of Private Keys to sign your own APKs. The keys generated are fully compliant with current Android Market requirements.
Prerequisites
Windows XP/Vista/7
Java JDK 7 MUST Be Installed
Instructions
Download
Extract
Copy Unsigned APKs Into Input
Open "Signare.exe" (Vista/Win7 - Open As Administrator)
Follow On-Screen Prompts
Thats It
Future Development
Eliminate Need For JDK Installation
Port To Linux - Currently Under Development
Port To Mac OS X
Code Improvements
Currently its bundled with a TestApk.apk (renamed Contacts.apk) so it can be tested straight away.
DOWNLOAD HERE - Download Statistics
Mirror
Please post your experience with this tool as I will fix any issues that people report.
Good work my friend, maybe you can make it for linux too
see ya
Good Stuff!!
thanks buddy, downloading now
thanks again m8,
take care
Whats the function of signing apk's?
Do android phone need sign apps too?
i thought only symbian requires signed apps since u'll get cert error if it isnt signed..
I dont have problem installing apk files on android b4
I'll bet other would have the same question
flawlessx92 said:
Whats the function of signing apk's?
Do android phone need sign apps too?
i thought only symbian requires signed apps since u'll get cert error if it isnt signed..
I dont have problem installing apk files on android b4
I'll bet other would have the same question
Click to expand...
Click to collapse
The Android OS will not install or run unsigned code.
If you create or modify any APK it will need to be signed before it can be installed.
If you publish to the Android Market, your APKs need to be signed to verify that they are indeed yours.
I'm assuming all the apps you have installed have previously been signed. Otherwise you wouldn't be able to use them.
Version 1.1 Released
Linux port is under development.
Support For This Tool Has Been Moved
Please Post Your Questions
HERE
Click to expand...
Click to collapse
Edit: I've created a xposed module which works with the banking app version 1.7.1 see post below.
---------------------------------------------------
Edit: The changes needed to work with the latest version of the app (1.7.1) are listed in a post below below.
---------------------------------------------------
*There was a error in the diff file. I've uploaded the correct version. Also this patch will definitely not work with the latest version of the app.*
I managed to patch the Barclays mobile banking app version 1.4.2 to make it work with cyanagonmod 10.0 and cyanogenmod 11.
I realize that the current version on play store is 1.7.1 but I haven't updated to the latest version yet. If you do try the latest version please let me know if it differs greatly from the current version in it's root checks
I'm not going to attach the patched apk since using banking app from a stranger on the internet is really not a smart thing . Instead I will detail the work I did which hopefully someone else will find useful.
This guide is geared towards more technical people who already have some experience with android development. It will not give a detailed step by step how to, rather a general information about the process.
Obfuscation methods used in the app
The app obfuscates the names of some but not all of the namespaces/classes/methods which can stump some decompilers.
It seems to generously sprinkle useless switch statements and loops which does nothing but make the code appear way more complicated than it really is. I would guess quite a lot of the bulk in the code is coming through these dummy statements. smali2java-toolkit was of great help to figure this out.
All strings in the app have been encrypted by a simple xor algorithm which is then decrypted at run time just before they are used:
for example rather than
Code:
myfunction(“Hello world”)
the code writes something in the sort of:
Code:
myfunction(decrypt(“Juqqdxidqw”, 'x'))
The decryption function is a static method 'bЮЮЮЮЮЮ' in the class appears to be 'rrrrrr.srrrrr' (the method/class/namespace names are obfusecated)
I extracted the decompiled code from this method to write a console application which let me decrypt any string in the application:
Code:
static String decrypt(String crypStr, char keyChar) {
char[] arrayOfChar1 = crypStr.toCharArray();
char[] arrayOfChar2 = new char[arrayOfChar1.length];
for (int i = 0; i < arrayOfChar1.length; i++)
{
int j = keyChar ^ arrayOfChar1[i];
arrayOfChar2[i] = ((char)j);
}
return new String(arrayOfChar2);
}
Anti root methods used in the app
Checking for 'test-keys' string in the build tag. (/system/build.prop file)
Checking for superuser related package/apk files.
Checking for superuser hider package/apk files.
Checking for existance of 'su' binary
Attempting to execute 'su' binaryThe above checks are done both in the java/dex code and in a native code library.
Defeating the anti-root methods in Java/dex code:
The Java code is fairly easy defeat since changing the strings of the apk/file names which are checked as root related will make it think that no 'bad' apps are on the phone.
A bulk of checks happen in the isRootedDevice method of the com.barclays.android.application.BMBApplication class. While it checks for quite a lot of apk's, for my particular purpose I only needed to patch 2 lines in the method:
Smali file line 306 – which starts the checks for “test-keys” string in the build tag.
Smali file line 407 – which start the check for the string “/system/app/Superuser.apk”.The next method in the same class 'runRootCommand' attempts to execute 'su'
Smali line: 956 – which contains the string “su” which will be passed to java.lang.Runtime.exec
A (mostly?) duplicate of the isRootedDevice function exists in the com.barclays.android.container.DeviceData the relevant lines are :
smali file line 1237: "test-keys" string check
smali file line 1271: "/system/app/Superuser.apk" file checkAll of the above checks can easily be defeated by changing the the string so that it will check for a non existent package or file.
Keep in mind that all the strings listed above are in encrypted form. You can use the decrypt function listed above to decode them. I found the key char/byte needed to decrypt a given string is in the very next line to the one containing the encrypted string.
Defeating the anti-root methods in Native library
From what I can see the exact same tests which were done in the Java code is repeated in the native code library 'libtest_ndk.so'. As this check appears to form part of the authentication mechanism i don't believe it's possible to simply stop this check from being called from the Java code.
Also the com.barclays.android.container.sampler.SharedLibraryLoader which loads the native library appears to be doing some kind of checksum validation. While this probably could be easily worked around, disassembling an arm shared library was non trivial for me.
My approach was to write another native library which would hook into all the system calls such as 'system' 'stat' 'fopen', '__system_property_get' and redirect any operations to non existent targets, or change the return value. This achieves the same thing as what was done for the java code.
I put in some extra code into the smali classes to load my native library and to call it's initializer with the path to the actual native library.
Basic steps performed to patch the library:
Use apktool to decompile the original apk.
Code:
apktool d barclays.apk barclays
Use smali2java as helper to understand the code: This tool cannot decompile the critical check functions due to obfuscation. However it made it easier to understand the smali files generated by the apktool.
Patch the smali files to work around the checks as described above.
Build the hooking native library seperately
Code:
~/adt/adt-bundle-linux-x86_64-20131030/sdk/tools/android update project --path . --target android-19
ndk-build
Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library.
Use apktool to rebuild the apk.
Code:
Apktool b barclays barclays.apk
Sign the apk from using your own key.
Create keystore:
Code:
keytool.exe -genkey -v -keystore my-release-key.keystore -alias release -keyalg RSA -keysize 2048 -validity 20000
Sign Keystore:
Code:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore barclays.apk release
Attached is the code for the hook library native project and the diff for the smali changes. Please note that this is for the smali files for generated by apktool (v1.5.2) for the version 1.4.2 of the Barclays mobile banking app.
For Users of other ROMs/SU applications and root hiders.
The app checks for a lot of common packages which I did not bother to patch since I don't use them, but if you do then you should put fixes for all those package/file names in both the smali and native code hook library.
A non exhustive list of files it check are:
Code:
/system/bin/amphoras
/system/bin/su
/system/xbin/su
/system/app/superuser.apk
/data/data/com.amphoras.hidemyroot
/data/data/eu.chainfire.supersu
/data/data/stericson.busybox
/data/data/stericson.busybox.donate
/data/data/com.jrummy.busybox.installer.pro
/data/data/com.jrummy.busybox.installer
/data/data/com.rootuninstaller.free
/data/data/com.rootuninstaller
Hey i will try this out shortly and post a APK (whether you use it or not thats up to you, but i am well known in the xperia play section of this website and should be trusted, Still its up to you.)
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Sorry about the late reply but I just saw this message.
fma965 said:
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Click to expand...
Click to collapse
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
HiddenRambler said:
Sorry about the late reply but I just saw this message.
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
Click to expand...
Click to collapse
No worries about the late reply, yeah you basically told me what i assumed it was i had to do, however when i was trying to do it i didn't have a 1.4.2 apk so was trying ot use 1.7.X and obviously failed .
Yeah the modifications to smali files is easy well when you know what your changing xD
if you could upload the apk for 1.4.2 that would be great, i would assume that as long as the signature matches the official apk its untampered, your modified one will obviously be signed with a different signature though.
:cyclops:
Good news. I've managed to get latest version 1.7.1 patched . I will try to post the patch information this weekend. In the meantime i suggest anyone interested download a copy from the play store and keep a backup of the apk in case they release a new version.
Fix for latest version of the mobile banking app (version 1.7.1)
I've figured out the changes required for the v1.7.1 of the app which is the latest version as of this post.
Changes from the old 1.4.2 are:
Almost all the classes in the app are now obfuscated, whereas before only some of the core class names were obfuscated.
The string encryption has changed. rather than a single encryption function it now uses a group of functions to perform the encryption. rrrrrr/vuuuvu class seems to manage invoking the proper decryptor based on the arguments.
All root checking is now done via the native library.
Native library now does some checks as soon as it's loaded before any methods are called.
The last change is a big problem since its not possible to do the patching of the dll after loading it as was done before. The onload/init of the dll exits the whole application as soon as it detects the phone is rooted.
My solution was to use a modified version of the 'crazy_linker' custom loader library which comes with the ndk to load the library into memory without invoking it's onload/init functions. This lets us hook into the necessary functions before they are called.
I've attached the smali changes as a diff and the new native hook library in this post.
As a side note I think the version 1.4.2 is a far better version. Why on earth would a banking app need to permissions to take pictures, who spends their time 'customizing' a banking app with personal pictures.
Edit: I've fixed a bug where the root was still being detected when used with chainfire su app. Special thanks to lil-diabo for helping me fix the issue. :good:
Xposed module for barclays banking app 1.7.1
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Thanks, works perfectly. You sir (or madam) are a genius
Sent from my GT-I9300 using XDA Premium 4 mobile app
Works like a charm
Just tested it and it works!
Most excellent, Thanks again for your hard work.
So much easier than having to manually edit the files etc.
It works,excellent job, finally can use Barclays mobile, thank you very much
sent from Samsung Galaxy S4 Active
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Zell Dinch said:
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Click to expand...
Click to collapse
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
Click to expand...
Click to collapse
I've updated my post with version that stops the rooted warning from pingit. Don't use pingit myself so don't know how successful it is. Let me know if you try it.
Brilliant, been struggling in vain with Root Cloak Plus on my N5 but this works perfectly. Many thanks.
Sent from my Xoom Wifi using Tapatalk
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
vivelafrance said:
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
Click to expand...
Click to collapse
You could try "root cloak" or "root cloak plus" they probably will work.
Actually, what I did, is sign the app with OneClickSigner and it worked fine. Now, the app is not attached to the market anymore since the signature changed, so that means I can continue to use the "automatic update" from the market and it won't ask me to update the app all the time when Barclays upload a new version.
thnx
HiddenRambler said:
...
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
...
Click to expand...
Click to collapse
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
LoMAX_HUN said:
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
Click to expand...
Click to collapse
Can you try the attached apk. It's the same code but built as an app for gingerbread version (API lvl 10). I couldn't test it as I don't have a phone for that version.
If it doesn't work please give me a logcat.
Banking Works, but Not PingIt
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Click to expand...
Click to collapse
xposed is fantastic!
This worked for me. It's so nice to be able to update my SU binaries without fear of breaking the app.
I'm running Cyanogenmod v10.2.0 on a Samsung Galaxy S3 (International) (i9300).
I tried using the v1.1 of the BarcPosed.apk with PingIt, but it still tried to gain root and then closed itself immediately.
This isn't my app, but I've had numerous people asking me to compile this already (they have been looking for a good XMPP client for a while). This is the work of siacs (https://github.com/siacs/Conversations), not myself - I just compiled it.
The APK is attached. Do NOT consider this to be a "routine" distribution channel - I don't intend to post regular updates. The developer has it on Google Play for about £2 I believe, or you can compile it yourself (like I did). It might even appear on F-Droid if it's licensed appropriately.
If the dev wants, I will remove this, as having multiple signed APKs out there is annoying for user support. But I wanted to work out how to build this, so others can now look at working on the code too
Everything seems to point to this being a very good client Pleased to see XEP support for carbons and Stream Management - I might need to post my setup guide for an "XMPP bouncer" at some point if it's desired (gives you gtalk-like functionality via your own server)
If you want to compile this yourself (I mean, why should you trust someone else to build it for you?), here's how I did it. These are NOT optimal steps, but they worked:
1) Import the project from github into Eclipse (https://github.com/siacs/Conversations)
2) Get the source for openpgp-keychain and build it - I used Android Studio for this (https://github.com/openpgp-keychain/openpgp-keychain)
3) Go to "openpgp-keychain/OpenPGP-Keychain-API/libraries/openpgp-api-library/build/bundles/release" and get "classes.jar". Put this into Conversations/libs/
4) Add classes.jar to the build path as an external Jar in eclipse.
5) Compile. You should build it as a signed APK, and use your own keystore.
Alternative build instructions from korry, if you don't use IDE, or prefer building via ant
Open your shell.
Export your sdk path.
Checkout git and the submodules
execute ant debug
your apk will be in bin/Conversations-debug.apk
File hashes:
MD5: a2031e4d74fd692cdd2e8dd80ec3ebd6 Conversations-0.1.2.apk
22184a364a2e9a856d5a83407b8f9c7bcc2fbec9 Conversations-0.1.2.apk
6f8a7e164d32fa45b89b017439727bc0ea85c76c51f659080348976930a3f1b0 Conversations-0.1.2.apk
Old versions:
MD5: 40c5ce5b7063948e02ab49ea9e2da21a Conversations.apk
SHA1: 3f9447a1f5606c86c110f9e7c17a28b0e45019cf Conversations.apk
SHA256: 4c3c3868cfa4118b506176280cf5e5d902865a20816f471785fa2cfe177d32d6 Conversations.apk
SHA512: ef759f10ab78613a24f5791ce54cd263bf25bfaa82af5ca56683afcb35fa3a1e9a26f0c2b210af108c73f7515e82c7cbdc7c93065a342a184d115db454b9c2fe Conversations.apk
Very nice client, i leave it always on and it actually has a very low impact on battery life, clean and simple, i like it.
The apk is available on F-Droid: https://f-droid.org/repository/browse/?fdfilter=conversations&fdid=eu.siacs.conversations
but the latest 0.7 release is not there yet.
need help
hello i am trying to build the apk file and successfully built .. but when i tried to run . it starts then stopped running . plz what's the problem
classes.jar
can you please send me this classes.jar file i have been trying to build the open keychain for 2 days it is giving me 4 errors in helpTester file etc. Please send me classes.jar file on my email id [email protected].
3) Go to "openpgp-keychain/OpenPGP-Keychain-API/libraries/openpgp-api-library/build/bundles/release" and get "classes.jar
conversations is a great XMPP client (the best I found). It is reliable, secure and open source.
Has somebody an idea how to get some emojis in there?
This Version of AMC is to be merged with a new project devloped by VIRB3b in future!
AMC is now available on the Google Play Store. Check it out!
https://play.google.com/store/apps/details?id=pythonlimited.amc
Disclaimer:
I'm not responsible for ANYTHING that happens to you or you're phone. By using my app you agree that you understand that.
What is AMC?
AMC(Advanced Mac changer) is a root application that can change your Android device's MAC address, based off nMAC by ViRb3.
NOTE THAT VIRB3 WONT GIVE ANY UPDATES TO HIS VERSION (See nil mac on xda).
Why?
There are a lot of privacy concerns regarding Android's static MAC addresses. The possibility of being tracked everywhere is just one of the problems involved. This app aims to solve this issue by giving you, the user, control over your device's wireless identity. AMC is intended to be used only for legal, non-malicious purposes, which do not involve unfairly abusing various wireless services. If you do not comply with these terms, please do not use this app.
Features:
Persistent change
Safe backup and restore of original MAC address
No reboot required (except Samsung devices)
MAC randomization functionality
Ability to set custom MAC address
Plus:
Ability to change devices hostname
ONLY FOR ANDROID 6 AND LOWER:
Option to patch browsers user-agent (only chrome and Firefox are supported)
Continued support
Officially supported devices:
Google:
Nexus 5X
Nexus 5 (never tested by user)
Samsung:
Generic Samsung layout should work on all devices
Tested on:
Samsung Galaxy S3 Neo
Samsung Galaxy S3 Mini
Samsung Galaxy S5 Mini
Samsung Galaxy J5
Samsung Galaxy A3
OnePlus:
One
One 2
One 3
OnePlus One layout provided by @topjor
Yu:
Yuphoria (never tested by user)
Yu Yuphoria layout provided by @GokulNC
Change log:
v.1.2 (future update 01.05.2017)
- we get rid of those ads
- I'd to recode everything cause I formatted my hard drive (stupid idea)
- just basic Mac functionality not all those add-ons
- checks if kernel is supported (RR or CyanogenMod/LineageOS)
- play store version discontinued due to lost keystore
- new app coming on play store soon
v.1.1
- PLAY STORE RELEASE
- Android 7.1 support
- various bug fixes
- no need for permissive mode anymore
v.1.0.9.1
- adds user-agent changer
- fixed serveral performance problems
v.1.0.9
- added hostname changer
- fixed some permission bugs
If I helped with your privacy, please leave a thanks.
Thank you!
Downloads see 3rd post.
Unsupported device?
Create a new device layout - See FAQ
Request support for your device
As usual, please report any bugs you may encounter.
Enjoy!
F.A.Q. :
Q: My Mac addrees wont appear at Start screen?
A: Set Kernel enforcing to permissive.
E: App sets enforcing now - no need for own task
Q: It always say there was an error while getting backups.
A: Go to Settings->Apps->AMC->Permissions and enable storage permissions.
Q: My phone can't connect to any Wi-Fi network after I change my MAC address!
A: The first 6 hex digits represent your device's manufacturer. You will get kicked from some routers if these digits are totally random. More here
Q: I messed up!
A: Restore the backup (original MAC address) by clicking on the button.
Q: I messed up and I deleted the app!
A: Reinstall the app and restore the backup (original MAC address) by clicking on the button. The backup file is saved on your external storage under /.amc/ and you may also restore it manually.
Q: My device is unsupported!
A: Create a new device layout
Request support for your device
Q: I really, really messed up and something doesn't work anymore
A: If restoring the backup doesn't help, try flashing your factory images.
Q: My device is unsupported. How can i request help and/or create a device layout?
A: Well that is the difficult thing. First you need to find out your mac address. That's easy.
Now comes the tricky part. You need to find a file where your mac address is inside. That could be like plaintext or the mac without ":". Sometimes there is something before the mac address like "INTfblablabla=". NOTE THAT MAC FILES UNDER
/SYS CANT BE CHANGED!!! If you found your file try the following things:
1. Try to change the last 2 numbers/characters of your mac and toggle and close airplane mode. After that close settings from ram and start again and check for the mac address if it has been changed.
2. Try a reboot if above don't works and even if. When the mac persists you are done. If not and it even hasnt changed it might be that your device is unsupported and/or your file is not that one we are searching for.
Q: My mac has changed to something different than entered!?
A: That can happen XD
If so restore your efs backup and/or install factory images from manufacturer.
Also under /sdcard/.nMAC you'll find a file called WLAN_mac.bin which is a copy of your original mac address file.
DOWNLOADS:
Thargorsson said:
Herr is the final Version as promised.
Enjoy and give me a feedback.
Click to expand...
Click to collapse
it's not working on my device anymore.
creative21 said:
it's not working on my device anymore.
Click to expand...
Click to collapse
What device do you habe?
Thargorsson said:
What device do you habe?
Click to expand...
Click to collapse
motoG3
creative21 said:
motoG3
Click to expand...
Click to collapse
Ah OK then i have to add it to my applications. (I havent know that there were other devices then Samsung nexus etc...
Can you tell me your devices Codename?
Thargorsson said:
Ah OK then i have to add it to my applications. (I havent know that there were other devices then Samsung nexus etc...
Can you tell me your devices Codename?
Click to expand...
Click to collapse
osprey
Sent from my MotoG3 using XDA Labs
And where your mac address is stored? (/efs or /persist)
And which file exactly contains the mac file and in which context (plain Text vor something other like intfmacAddress="yourmacaddress"
Thargorsson said:
And where your mac address is stored? (/efs or /persist)
And which file exactly contains the mac file and in which context (plain Text vor something other like intfmacAddress="yourmacaddress"
Click to expand...
Click to collapse
i dont have /efs folder but i do have /persist folder in root directory and there are wifi related files and folders. but i cant find "intfmacAddress" line
creative21 said:
i dont have /efs folder but i do have /persist folder in root directory and there are wifi related files and folders. but i cant find "intfmacAddress" line
Click to expand...
Click to collapse
Did you have a file named "WLAN_mac.bin"?
If so can you send me the content?
Thargorsson said:
Did you have a file named "WLAN_mac.bin"?
If so can you send me the content?
Click to expand...
Click to collapse
i can only find "WCNSS_wlan_dictionary.dat" using solid explorer's search function. but there is a wlan_mac.bin file in "internalstorage/.nMAC" folder , which only contains mac adress.
creative21 said:
i can only find "WCNSS_wlan_dictionary.dat" using solid explorer's search function. but there is a wlan_mac.bin file in "internalstorage/.nMAC" folder , which only contains mac adress.
Click to expand...
Click to collapse
Is there a file named .maccaddr in /persist/?
Thargorsson said:
Is there a file named .maccaddr in /persist/?
Click to expand...
Click to collapse
no
Thargorsson said:
Is there a file named .maccaddr in /persist/?
Click to expand...
Click to collapse
Or can you send me a ZIP oft your persist folder so thatbi can check all files?
Thargorsson said:
Or can you send me a ZIP oft your persist folder so thatbi can check all files?
Click to expand...
Click to collapse
Sent from my MotoG3 using XDA Labs
creative21 said:
Sent from my MotoG3 using XDA Labs
Click to expand...
Click to collapse
OK i havent found anything useful in the persist folder.
Did the nmac from virbr3 works?
The last Option you could check would be /sys/devices/soc.0/a000000.qcom,wcnss-wlan/wcnss_mac_addr
If everything failes run this Command From a terminal:
"su"
"find / | grep mac"
And then check the output files for a mac address.
Thargorsson said:
OK i havent found anything useful in the persist folder.
Did the nmac from virbr3 works?
The last Option you could check would be /sys/devices/soc.0/a000000.qcom,wcnss-wlan/wcnss_mac_addr
If everything failes run this Command From a terminal:
"su"
"find / | grep mac"
And then check the output files for a mac address.
Click to expand...
Click to collapse
the older version from vibr3 works fine, but i wanted the functionality to save mac adresses after reboot so i tried ur version.
And the Command does it gives an output?
@Thargorsson Thank you so much!! Working fine on my device????????
---------- Post added at 05:54 AM ---------- Previous post was at 05:46 AM ----------
Changing MAC seems fine. It randomizes well but there is problem in reverting back to original one by clicking restore . By clicking restore it basically reverts back to the last MAC that we used.
Okay, so as i have often had to reset the watch during testing this and that, and since i have a few apks that arent on the Google Play store, i wanted a quick easy way to backup the 3rd party apks on my watch, and to also have a quick easy way to bulk install them after reset. They both handle single and split apks. While written for the watch , you can of course use them for any device that you can adb connect to...be aware that devices other than the watch will have a LOT more 3rd party packages on it, so be prepared for the runtime
The result are the attached scripts, tested in Windows 10 in (default Powershell) terminal
Thought i'd share them in case they were useful to anyone else
bulkpull.bat:
Does what it says on the tin, bulk pulls all 3rd party apks from the Watch (or other abd connectable device)
Usage:
1) Put bulkpull.bat in folder where you would like to backup packages (i would suggest naming it after the device....i use Watch)
2) Open bulkpull.bat in an editor and edit the following line at top:
SET ADB_PATH=c:\platform-tools
Default path to look for adb.exe is c:\platform-tools. Adjust to your location of adb.exe OR if platform-tools/adb is in your PATH, comment out the line by adding an rem to the front of the line, as follows:
rem SET ADB_PATH=c:\platform-tools
save the bulkpull.bat file
3) Open a terminal at the location of bulkpull.bat
4) Run .\bulkpull.bat
Method:
The script will ask you to supply an IP address if you are connecting to a device (like the Watch) via Wifi. If you are not, and its cabled, just press ENTER.
The script will pull a list of 3rd party packages into a local myapps.txt file in script folder (via the line: !ADB_PATH!\adb shell pm list packages -3 > myapps.txt, where -3 is used to signify 3rd party apps).
The script will then loop through each line of the file and:
1) Create a folder named after the packagename
2) Copy any apks for that package to that folder
3) Do this until all packages listed are pulled
4) Display a summary at end of script
bulkinstall.bat:
Does what it says on the tin, bulk installs all 3rd party apks stored under script folder AND subfolders to the Watch (or other abd connectable device)
Usage:
1) Put bulkinstall.bat in folder where your 3rd party apks are backed up (ideally its the one you bulkpulled to previously)
2) Open bulkinstall.bat in an editor and edit the following line at top:
SET ADB_PATH=c:\platform-tools
Default path to look for adb.exe is c:\platform-tools. Adjust to your location of adb.exe OR if platform-tools/adb is in your PATH, comment out the line by adding an rem to the front of the line, as follows:
rem SET ADB_PATH=c:\platform-tools
save the bulkinstall.bat file
3) Open a terminal at the location of bulkinstall.bat
4) Run .\bulkinstall.bat
Method:
The script will ask you to supply an IP address if you are connecting to a device (like the Watch) via Wifi. If you are not, and its cabled, just press ENTER.
The script will then loop through each apk in the main folder and subfolder file and:
1) Install any apks for the package, until no more apks remain
2) Display a summary at end of script
Notes on main folder and subfolders (why theres an extra script routine for the main folder):
Sometimes on a rare occasion i will have a single apk file for an app that is not on the Play Store, and that ive picked up since the last bulkpull (backup) and im installing it for the first time along with the bulkinstall of the previously backed up apks after a reset. I will dump the single apk(s) into the main folder where the script is, then run bulkinstall.bat, to install the new single apk(s) in the main folder, along with the previously bulkpulled apks in named folders. Once i have done this i will then run a bulkpull, and then delete the single apk(s) in the main folder, as they will now be bulkpulled and be under a properly named subfolder. I hope that makes sense. Again this is my own way of working. The main thing to remember is that whether an apk is placed in the main folder, or a nicely named subfolder, it WILL get installed.
Both files are commented (completely ruining the brevity) so you can see what and how they are doing what they do.
There are no destructive steps involved, no deletes etc.
As always, and despite the above statement of non-destructive scripting, the usual disclaimers apply, you alone are responsible for what, and how, you run scripts and programs on your PC and i am not liable if you manage to find interesting ways to abuse my work.
Nice work. There is an app that can be used that does many other things. It is called ADB AppControl.
dalepl said:
Nice work. There is an app that can be used that does many other things. It is called ADB AppControl.
Click to expand...
Click to collapse
Im aware of the app
Sometimes, most times in fact, i dont want to install an entire bloated app to do what can be done with a few lines of code.....take out all the comments and blank lines and its pretty slim
This wasnt a please suggest me an app thread, just sharing what i use - it even says that - this is how I work ("Again this is my own way of working"), not saying its how anyone else should
73sydney said:
Im aware of the app
Sometimes, most times in fact, i dont want to install an entire bloated app to do what can be done with a few lines of code.....take out all the comments and blank lines and its pretty slim
This wasnt a please suggest me an app thread, just sharing what i use - it even says that - this is how I work ("Again this is my own way of working"), not saying its how anyone else should
Click to expand...
Click to collapse
Love this idea and I truly admire it. Why another app is always a question I have.
JazonX said:
Love this idea and I truly admire it. Why another app is always a question I have.
Click to expand...
Click to collapse
Yup, in fact i bloated it in the pursuit of making it (possibly) usable by others, if you look at bulkpull.. remove all the comments, connection and user feedback code and its just this....all 20 lines of it
@echo off
setlocal enabledelayedexpansion enableextensions
SET ADB_PATH=c:\platform-tools
!ADB_PATH!\adb shell pm list packages -3 > myapps.txt
if exist myapps.txt for /F "tokens=2 delims=:" %%p in (myapps.txt) do (
set packagename=%%p
set count=0
set num=0
for /F "tokens=2 delims=: USEBACKQ" %%F IN (`!ADB_PATH!\adb shell pm path !packagename!`) do (
set apkname[!count!]=%%~F
set /a count=!count!+1
set /a num=!count!-1
)
mkdir !packagename!
for /L %%i in (0,1,!num!) do (
!ADB_PATH!\adb pull !apkname[%%i]! !packagename!
)
ping 127.0.0.1 -n 2 > nul
)
endlocal
Looks like a useful tool Thanks.
Does this scrip only pull the apks or does it pull the data setting for the apks also?
jayjay1234 said:
Looks like a useful tool Thanks.
Does this scrip only pull the apks or does it pull the data setting for the apks also?
Click to expand...
Click to collapse
It only pulls 3rd party apks (as set - you could pull ALL apks, but i just use it because i have a lot of apks from github repos or non-play websites id hate to have to go visit and re-download every reset), you need root access to pull appdata sorry...aint no root for the Watch series (yet/likely ever)...trust me if there was a way i would be backign up appdata on the thing with the amount of resets ive had to do....
if youre looking for a root non-Watch backup solution that does backup (and restore) apks and appdata, and permissions, i use and recommend Migrate (only v4 though, 5 is still too buggy to complete a working backup):
[APP][ROOT][5.0+][1st Nov 2020] Migrate - custom ROM migration tool
Jumping from one custom ROM to another can be a challenging task. So I decided to make an app to simplify the process. Introducing Migrate! Migrate-GPE (v4.0) is on Google Play It was temporarily suspended. Read more here...
forum.xda-developers.com
and how i use it and have for ages, years, what i call "the easy streamlined way"
[ROM] BeyondROM V6.3 [16/05/2023] [HWD4] [May Patch] [G980F-G981B-G985F-G986B-G988B]
BeyondRom v6.3 Based on Android 13 G98xF(B)XXSGHWD4 firmware Supported Devices: G980F, G981B, G985F, G986B and G988B ROM Features Supported devices: G980F (S20), G981B (S20 5G), G985F (S20+), G986B (S20+ 5G) and G988B (S20 Ultra)...
forum.xda-developers.com
73sydney said:
It only pulls 3rd party apks (as set - you could pull ALL apks, but i just use it because i have a lot of apks from github repos or non-play websites id hate to have to go visit and re-download every reset), you need root access to pull appdata sorry...aint no root for the Watch series (yet/likely ever)...trust me if there was a way i would be backign up appdata on the thing with the amount of resets ive had to do....
if youre looking for a root non-Watch backup solution that does pull apks and appdata, and permissions, i use and recommend Migrate (only v4 though, 5 is still too buggy to complete a working backup):
[APP][ROOT][5.0+][1st Nov 2020] Migrate - custom ROM migration tool
Jumping from one custom ROM to another can be a challenging task. So I decided to make an app to simplify the process. Introducing Migrate! Migrate-GPE (v4.0) is on Google Play It was temporarily suspended. Read more here...
forum.xda-developers.com
and how i use it and have for ages, what i call "the easy strreamlined way"
[ROM] BeyondROM V6.3 [16/05/2023] [HWD4] [May Patch] [G980F-G981B-G985F-G986B-G988B]
BeyondRom v6.3 Based on Android 13 G98xF(B)XXSGHWD4 firmware Supported Devices: G980F, G981B, G985F, G986B and G988B ROM Features Supported devices: G980F (S20), G981B (S20 5G), G985F (S20+), G986B (S20+ 5G) and G988B (S20 Ultra)...
forum.xda-developers.com
Click to expand...
Click to collapse
Thanks for the info and other options!