This app was mentioned in 24 comments, with an average of 3.00 upvotes
Alright, first you will need to download the Device ID app and copy the Google Services Framework ID. Then go Google’s Device Registration page and paste the ID and hit register. Re-sign in to Google Play Store and restart your phone. It can take a few minutes to activate :)
Thanks.
Could you also run this from a terminal to get the fingerprint?
getprop ro.build.fingerprint
(or use this app -- https://play.google.com/store/apps/details?id=com.evozi.deviceid)
It should match this:
ZTE/P996A01_O/ailsa_ii:8.0.0/OPR1.170623.032/20180815.171922:user/release-keys
So, I got this working on my rooted phone but had to "su" first to be in root access mode, then it read the table and gave me the decimal version of the "GSF ID" I had gotten from the play store app.
So, they are definitely looking for the decimal version of the GSF ID, which you can get by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
You can also get it by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
It means adding your Android ID to this webpage which is intended for users who want to use custom ROMs (aka that can't get certification).
Check your Android ID by using SQLite on the Google Services Framework's database (/data/data/com.google.android.gsf/databases/gservices.db) at the row main.android_id or use the Device ID app (check out the Google Services Framework section).
That should add your ID to Google's database and certify you upon the next check, which in my case I triggered by deleting all data from GSF, Google Play Services and Google Play Store.
Hey guys. I'm currently developing an app which will need this GSF ID and absolutely can't find a way to retrieve it. I searched everywhere online. All I could find is that I need the READ_GSERVICES permission. I found an app on Play Store that manages to get it: https://play.google.com/store/apps/details?id=com.evozi.deviceid
please don't post about things that you don't know, you are misleading readers. At least do some research before posting.
https://play.google.com/store/apps/details?id=com.evozi.deviceid
Current info: they are definitely looking for the decimal version of the GSF ID, which you can get by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
Current info: they are definitely looking for the decimal version of the GSF ID, which you can get by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
/u/lazywolf772 please edit the OP to use the correct method of getting the needed ID number, since just skipping the letters is wrong.
The hard part was getting Mopidy installed. I pulled the source and complied. There were probably 6 dependencies I had to chase down to get it compiled. Once that was done, the only hang up for GMusic was the AndroidID. I downloaded this app and once I had the ID it worked. What issue are you having?
I did this at the start of 2020. Your milage may/will vary.
Another option is to use one of the apps - I have also used (end of 2020) an application from BackupTrans to do an Android->iPhone WhatsApp migration. It looks shifty as fuck, but it did the job for $15. The backup process was kind of an automation of what I did below so that's another option...
Note: None of this is my own work, but use of third-party projects. This document is more about how to put them together to get the parts you need...
I used this project, tied with pipenv on my macOS Catalina system...
brew install python pipenv
git clone https://github.com/YuriCosta/WhatsApp-GD-Extractor-Multithread.git
cd WhatsApp-GD-Extractor-Multithread
pipenv install configparser requests
pipenv shell
<[ edit settings.cfg as outlined below... ]>
python WhatsAppGDExtract.py
For the password, I created an App Password so that I didn't have to change my real password (signing me out of other locations) and so I could revoke it afterwards. The 16 char random password worked just fine.
To find my device ID, I used this app from the Play Store. Does what it says on the tin.
After replacing these values in the settings.cfg, and entering my Google username, running the Python script resulted in a WhatsApp/
directory being created in ${PWD}
which had my images, videos, voice notes, etc. It also has a copy of the message database - however this is encrypted so before doing too much, we need to retrieve the encryption keys...
If I was rooted, this would be easy. I'm not, so it wasn't.
My project of choice here was WhatsDump which runs the Android emulator and registers a new instance of WhatsApp. I needed to install a Java 8 JDK in order to get the Android SDK installed. This is relatively easy using Homebrew on macOS:
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
java -version
should give output similar to:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)
Be aware of this issue which I ran into. The advice in this comment did NOT work for me. I got a key file, which was the right size, and was shown as "Java serialization data version 5", but decrypting the database later didn't work with this key.
What did work was the advice at the bottom of this comment. I pushed "Continue", allowed the two permissions, and then once I could see the "Restore" button I simply waited for WhatsDump
to take over again.
This project enables decryption of the database. Again, I just used this with pipenv:
brew install python pipenv
git clone https://github.com/EliteAndroidApps/WhatsApp-Crypt12-Decrypter.git
cd WhatsApp-Crypt12-Decrypter
pipenv install pycrypto pycryptodome
pipenv shell
python decrypt12.py key msgstore.db.crypt12 msgstore.db
Now I have an unencrypted SQLite database which holds all the messages. Not clear yet how this links the media and conversations together
Once WhatsDump is finished, close the emulator if it doesn't close automatically (Ctrl-C on the running WhatsDump console should work). Open WhatsApp on your real handset and within a few seconds you should be prompted to verify your phone number (as if this was a new installation). Get the SMS or phone call, enter the 6-digit verification code, and you should be back in business with no data loss. I found that all my existing conversations were still in place.
that seemed to have done the trick for me
ironically, you have to root your phone to convince everyone its not rooted
Current info:
Note that Google updated the registration page with instructions on using adb shell and sqlite3 to read the needed GSF ID, so they are definitely looking for the decimal version of the GSF ID. (Clear the page cache if it doesn't mention GSF ID for you there.)
You can also get it by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
Update 4/11/2018: I just updated to FireOS 5.6.1.0 using the download linked here and Play Store is still working fine for me, so seems like I have the correct code entered I guess.
Also, note that the 5.6.0.1 -> 5.6.1.0 update DID NOT change my GSF ID.
Never had this problem but found this:
>Find your device’s GSF Device-ID. There’s a simple app on the Play Store called ‘Device ID‘, but since you obviously can’t access the Play Store I have mirrored the application here.
>
>Open the app and copy the code in the second line called “Google Service Framework (GSF).”
>
>Go to this webpage.
>
>Enter your GSF Device-ID in the “Android ID” box.
>
>After you tap “Register”, your registered ID should appear on the page.
Solve Google Play Device is not Play Protect certified issue
... Hope it helps.
edit: added pertinent steps for ease of use
Not sure if this will help (I haven't flashed beta yet), spotted it on Samsung community forums:
Your device will still say it is uncertified in the Google Play Store settings. This is normal. All this fix does is white-list your uncertified device so you can still use Google apps and services.
Yes, you're right, it depends on the Movie HD server status. When it's in whitelist mode, they don't accept 'new installations'.
There's a workaround for this when you have a rooted device; you'd have to copy the Android ID (and IMEI if it's a phone) from your old device to your new, rooted device. This post explains how to change your Android ID.
If you don't want to root your new phone and you still have your old (working) phone, there's a possibility I can help you by building a custom apk with the hardcoded Android ID + IMEI of your old phone. If you want to try this, please PM me the Android ID and IMEI of your old phone. You can get them using this app.
I've tried this method (using a hardcoded Android ID + IMEI) in public builds of Movie HD Lite but those builds would always stop working after a short period of time. It would be interesting to see if a private, custom build will last longer..
Finally, I managed to solve this issue in 4 days. This topic is helping me a lot so here is the way to fix it for anyone who has the same issue.
Android 7.1 (no matter 32 or 64). Tested.
Good luck and please MEmu team, fix this. Just a few lines of the code to register the device automatically. 2 months, JESUS.
Happy emulating :))
then how does this app show it?
im assuming it can just read the local ip but can't share it with their server, right?
Not sure if this will help (I haven't flashed beta yet), spotted it on Samsung community forums:
Your device will still say it is uncertified in the Google Play Store settings. This is normal. All this fix does is white-list your uncertified device so you can still use Google apps and services.
There's no reason the app has to be from the Play Store. It just so happens that the most convenient app is on the Play Store: https://play.google.com/store/apps/details?id=com.evozi.deviceid
However, as the app's own description on the Play Store says, you can download an APK outside the Play Store:
> For paranoid users, you can get Device ID without any network permission at :
> https://www.evozi.com/l.php?go=deviceid_no_network
> This will disable Local IP Address and MAC address.
The app is also on Android Police's APKMirror: https://www.apkmirror.com/apk/evozi/device-id/
If anyone wants to write their own app to look up the ID, the example code is here: https://stackoverflow.com/questions/22743087/gsf-id-key-google-service-framework-id-as-android-device-unique-identifier
Current info:
Note that Google updated the registration page with instructions on using adb shell and sqlite3 to read the needed GSF ID, so they are definitely looking for the decimal version of the GSF ID. (Clear the page cache if it doesn't mention GSF ID for you there.)
You can also get it by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.
Current info:
Note that Google updated the registration page with instructions on using adb shell and sqlite3 to read the needed GSF ID, so they are definitely looking for the decimal version of the GSF ID. (Clear the page cache if it doesn't mention GSF ID for you there.)
You can also get it by using "Device ID" by Evozi then converting that 16-character hex string to decimal.
This gets me the same number as doing this on my rooted phone in Terminal:
su sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
But, registering that number from my Fire HD8 didn't change the Play Store settings from "Uncertified" to "Certified", so no way to tell if it is perfectly working yet. But probably correct, will just need a new build of FireOS to be pushed out to find out.