RabbitHoleEscapeR1 / r1_escape

297 stars 23 forks source link

Android Screen Lock Keypad nonexistent and Google Play Protect Certification #19

Open HubHare opened 1 month ago

HubHare commented 1 month ago

Could anyone provide a solution for this issue? After installing the Android operating system on the R1 and setting up a PIN to unlock the screen, the device requires the PIN to unlock, but there is no keypad displayed to enter it. This renders the R1 unusable since it cannot be unlocked.

Additionally, during the initial Android setup, I repeatedly received a notification stating "No Play Protect certification," and as a result, I am unable to use Google apps or the Google Store. Is there a way to resolve this issue? ![Uploading PXL_20240618_155924986.jpg…]()

MrMediaGuy commented 1 month ago

Solution is in the last item in the Troubleshooting section on the Code page here. You need to use ADB to retrieve the Google Framework Services Android ID from the device and submit it to Google at the link provided. It takes 30 minutes or so before the Play Store will work. The syntax on the Google page is a little off for Windows, however. If you are on Windows:

adb root adb shell sqlite3 /data////gservices.db 'select from main where name = "android_id";'

MrMediaGuy commented 1 month ago

Regarding the PIN, you can plug in a keyboard and enter the PIN, then probably remove the PIN for now. :)

The keypad may also show up if you adjust the screen density:

adb root adb shell wm density 180 (some have used 160 or 200 with decent results)

HubHare commented 1 month ago

Thank you I will try this out and post back here

HubHare commented 1 month ago

Partially worked was able to realize screen and unlock screen that is awesome and thank you for that. But when trying to do the play protect work around I keep getting this Error unable to open database PXL_20240618_235428770~2

HubHare commented 1 month ago

Is the android id same as IMEI?

HubHare commented 1 month ago

NVM I figured it out.. I had use string adb shell content query --uri content://settings/secure/android_id --projection value

Actually I'm not sure if this is the value for the android Id that I need.

MrMediaGuy commented 1 month ago

That could be the device ID, not sure.

I think you may have forgotten adb root. That would result in not being able to access the database. Can you try the original commands again being sure to issue adb root first?

HubHare commented 1 month ago

Yes, The attached output is the result of adb root adb shell sqlite3 /data////gservices.db 'select from main where name = "android_id";'

this gives me the error. any other suggestion?

MrMediaGuy commented 1 month ago

Okay, try this. Manually retype the sqlite3 line yourself, don't cut and paste from here. There seems to be something about Github that messes with the codepage of the characters. Make sure you get every single and double quote in the right place.

sqlite3 /data////gservices.db 'select from main where name = "android_id";'

HubHare commented 1 month ago

this did change the outcome but still get an error... a different error

PS C:\WINDOWS\system32> adb root
adbd is already running as root
PS C:\WINDOWS\system32> adb shell
r1:/ # sqlite3 /data////gservices.db 'select from main where name = "android_id";'
Error: unable to open database "/data///*/gservices.db": unable to open database file

MrMediaGuy commented 1 month ago

Looks like you have four slashes in a row instead of three. Can you check? And the asterisk?

HubHare commented 1 month ago

Sorry must of did that accidently when trying to copy I've just attached picture PXL_20240619_021254449~2

MrMediaGuy commented 1 month ago

Well dang, that's frustrating. I hate to say it since you've gotten this far, but you might have to reflash it from scratch. If it's any consolation, the Google ID changes every time you flash the device, so assuming that we will be getting some new builds to flash in the future, you'd have to go through this registration process again anyway.

So, after you flash, when you get to the "Hi" screen, go through the initial setup and then stop. Plug in the cable and extract the ID right then and send it to Google. You can set the wm density at the same time, then adb reboot.

HubHare commented 1 month ago

copy that. Thanks for the help and time, i appreciate it.

Davis8483 commented 1 month ago

I was able to get my id by installing macrodroid from a USB. Then chose the system settings action and selected the android_id key.

Edit: does not give the correct id

HubHare commented 1 month ago

how exactly did you get it on the R1?

PanikParty commented 1 month ago

I managed to get it using this: sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

HubHare commented 1 month ago

well well well that worked! thanks for that !!! awesome

MrMediaGuy commented 1 month ago

Fantastic! Glad you made it! It's weird because that command is functionally equivalent to the other one, but if playing with this thing has taught me anything it's that nothing works quite like it's supposed to. :⁠-⁠)

HubHare commented 1 month ago

Lol absolutely my friend, nothing but truth! Still, thank you for your help really appreciate it. I'm new to this space.

MrMediaGuy commented 1 month ago

I believe we all are! Just a bunch of people trying to snatch our $199 from the jaws of defeat. :⁠-⁠)

Davis8483 commented 1 month ago

I was able to get my id by installing macrodroid from a USB. Then chose the system settings action and selected the android_id key.

nvm, the id I found with this method is definitely not correct. Following this comment gave me the right id. V

I managed to get it using this: sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

marcustar7 commented 1 month ago

I've found my Android ID and successfully submitted it, but am still getting the certification error a day later. Can't get apps or use gmail, etc. Help!

MrMediaGuy commented 1 month ago

Can you outline exactly which method you used to get the ID? Your phone has a few different kinds of IDs and only one is the Google Framework Services ID. So the first step would be to ensure you are retrieving the right one.

marcustar7 commented 1 month ago

sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = 'android_id';"

Can you outline exactly which method you used to get the ID? Your phone has a few different kinds of IDs and only one is the Google Framework Services ID. So the first step would be to ensure you are retrieving the right one.

MrMediaGuy commented 1 month ago

Well that would be the right one. When you go to this link, does the number you retrieved appear at the bottom of the page as registered?

https://www.google.com/android/uncertified

Does the number have 19 digits?

marcustar7 commented 1 month ago

Yes and yes!

Well that would be the right one. When you go to this link, does the number you retrieved appear at the bottom of the page as registered?

https://www.google.com/android/uncertified

Does the number have 19 digits?

MrMediaGuy commented 1 month ago

Hmm. Supposedly it's not even really necessary to reboot, but I'm sure you have (more than once). And just to eliminate one other possibility, you haven't had to reflash the r1 again after you retrieved the ID, correct? (It generates a completely new ID every time you reflash and go through setup again.)

marcustar7 commented 1 month ago

I haven't... but I tried what was suggested in this video and it seemingly worked! Now if only Bluetooth would work...

MrMediaGuy commented 1 month ago

Interesting — was the number you retrieved from the Device ID app the same as the one you had already submitted? Maybe the trick was clearing storage for Play Services and Play Store. Anyway, glad you got there!

djh816 commented 1 month ago

Just a heads up, I had to hop on wifi before said database value was even populated (maybe launch play store?). But even then it takes a good 30+ min to stop spamming you and let you launch google services -_- Highly recommend muting.

spgohome commented 1 month ago

This worked for me: (Of course you must have ADB and SQLITE3 available)

Connect your Rabbit to your PC and make sure your Rabbit is connected to Internet.

1- Open CMD where you adb/sqlite3 exec are. 2- type adb devices to make sure your Rabbit is detected 3- type adb root 3- type adb shell 4- type sqlite3 /data/data/com.google.android.gsf/databases/gservices.db 5- type select * from main where name = "android_id";

This will give you your Android ID

Then you have to go here to register your device https://www.google.com/android/uncertified Android ID

Take a couple of minutes

Good Luck

5p3c7r3 commented 4 weeks ago

Looking for any help, I have developer tools menu, but when I open it, I cannnot scroll or find USB Debug setting, is there a trick to getting to that turn it on for adb on this device?

MrMediaGuy commented 4 weeks ago

I think for most of us, USB Debugging has been on by default. Have you tried to ADB to the device? Plug it in and adb devices and see what you get? If it responds with the device ID then you know it's enabled. If so, then do

adb shell wm density 180 adb reboot

....and everything should be much more usable.

5p3c7r3 commented 4 weeks ago

Yes I tried, it isn't recognized or show up in the list of adb devices on either my linux or mac machines

MrMediaGuy commented 4 weeks ago

Probably a dumb question, but do you have another device you can test just to make sure ADB is properly set up on your PC? I'm assuming it must be if you got this far, but I'm trying to eliminate any variables — surprising to me that USB Debugging wasn't already enabled at first boot. :⁠-⁠(

5p3c7r3 commented 4 weeks ago

Oh no not a dumb question at all, this is my first ever android device... so everything is new to me. I downloaded the platform-tools and unzipped them, but yeah seems like at least with developer tools on it should just find it. So I must have missed something simple.

MrMediaGuy commented 4 weeks ago

See if the first two steps here are helpful at all?

https://gist.github.com/isti03/4104cc33dbf5b741add2a27c8d3a41df

5p3c7r3 commented 4 weeks ago

I reset the settings, rebooted and then when I re-entered developer mode, the screen notification flashed "Use USB Debugging tap to turn off" - I think before I tapped that - this time I didn't and everything works :D

MrMediaGuy commented 4 weeks ago

Well that's awesome news! Yes, once you turn it off, it's very difficult to get back on until you reset the screen density, which you can't do without adb, so you end up kind of stuck. :)

talkingwalnut commented 2 weeks ago

I had the same issue with no adb access to set screen density and no way to access USB debugging setting because of the screen density. Took me a while to figure out how to get into fastboot or recovery again so posting here in case someone else has the same problem.

Turn off the R1 and wait for it to power down. Run sudo ./mtkbootcmd.py FASTBOOT from the root dir of the repo This should get you into fastboot. From there reflash everything (follow the last steps in r1.sh) and you'll hopefully have adb access this time. Set your screen density using the commands given above.

zoomy942 commented 1 week ago

This worked for me: (Of course you must have ADB and SQLITE3 available)

Connect your Rabbit to your PC and make sure your Rabbit is connected to Internet.

1- Open CMD where you adb/sqlite3 exec are. 2- type adb devices to make sure your Rabbit is detected 3- type adb root 3- type adb shell 4- type sqlite3 /data/data/com.google.android.gsf/databases/gservices.db 5- type select * from main where name = "android_id";

This will give you your Android ID

Then you have to go here to register your device https://www.google.com/android/uncertified Android ID

Take a couple of minutes

Good Luck

I've been trying this for days and I get this - nada - I do that second command and it just goes back to sqlite

r1:/ # sqlite3 /data/data/com.google.android.gsf/databases/gservices.db SQLite version 3.32.2 2021-07-12 15:00:17 Enter ".help" for usage hints. sqlite> select * from main where name = "android_id"; sqlite>

MrMediaGuy commented 1 week ago

@zoomy942 Are you on Windows, Mac, or Linux?

zoomy942 commented 1 week ago

@zoomy942 Are you on Windows, Mac, or Linux?

Afternoon!

I’m using Windows.

MrMediaGuy commented 1 week ago

Well I just retyped your exact commands and they worked fine. Two more questions....

1) Did you start with adb root and got the message confirming ADB was restarted as root?

2) Have you booted Android past the "Hi" screen and completed the initial setup? The Google Services Framework ID actually isn't generated on the device until you go through initial setup.

zoomy942 commented 1 week ago

select * from main where name = "android_id";

It was step 2! Thank you so so much!

MrMediaGuy commented 1 week ago

Awesome! And just for future reference, if you ever have to run the script again to re-flash Android again, the framework ID will be different every time; it's not part of the hardware or anything. So you'd have to retrieve it again and register the new ID with Google.