I've found a way to register the G1 in the initial registration screen that comes up the first time you boot the phone (or after you wipe the phone). It will allow you to register if you don't have a sim card at all, or if you have a sim card but no data plan.
First, You must have either RC29 or earlier, or modded RC30. It won't work with official RC30, sorry. If you don't know for sure what version you have, but you know you haven't installed a modified RC30 build, then the easiest way to check is to reboot the phone, and once it starts up and is showing the "click the android to begin" screen, or the "no sim card" screen, then type the following on the phone keyboard
<enter>reboot<enter>
If it reboots, then you have RC29 or ealier. Otherwise you have RC30.
Second, you must have adb installed on your computer, and have the USB drivers installed, or at least ready to install when it asks for the driver when you connect the G1. See this page for details on how to get adb working: http://code.google.com/android/intro/develop-and-debug.html#developingondevicehardware
Third, you must have a wifi network that you can connect to.
There are too many possibilities to write specific step-by-step instructions for every case. So I will give an overview of the process instead. If someone else wants to write some specific instructions, that would be welcome
-----------
When you start up the phone without a sim card, it goes into a locked screen that says "no sim card found", and you can't even get into the registration app. So the first step is to get around that screen. You have to connect to your phone with adb shell and get root access, and then type the following command:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system (name, value) VALUES ('device_provisioned', 1);"
And then reboot the phone. When it starts up again it will go into the registration screen instead of the locked "no sim card" screen.
This assumes that you have the sqlite3 binary on your phone. This binary is provided in RC30 v1.2. Alternatively, you could manually copy the binary to your phone with adb push, or put it on the sdcard and copy it to your phone. I can post a copy of just the sqlite3 binary if needed.
-----------
The second step is to enable and configure wifi, so that the registration process can connect to the google servers. In an adb shell session, type the following command:
am start -a android.intent.action.MAIN -n com.android.settings/.Settings
This doesn't have to have root access to work. It works fine with the "shell" user that adb on non-modded phones runs as.
That command will bring up the settings page on your phone. From there, you can enable wifi and connect to your wifi network, and then proceed with registration as per normal
------------
A few tips and tricks:
- If you have an official RC29 or lower phone, type the following command on the phone keyboard to enable adb:
<enter>setprop persist.service.adb.enable 1<enter>
- If you need to get root access on an official RC29 or lower phone, while it's at the registration screen, or the "no sim card" screen, enable adb (see first tip), and then type the following command on the phone keyboard:
<enter>telnetd<enter>
Now, copy a busybox binary to /data/local/busybox with adb push, and then connect to your phone with adb shell, and give the busybox binary execute permissions (i.e. chmod 755 /data/local/busybox)
busybox has a telnet applet, so you can do:
busybox telnet 127.0.0.1
to get a telnet session with root access.
- If you don't want to register the phone at all, you can set the app.setupwizard.disable property to 0 to prevent registration. Once you have an adb shell session open, type the following:
setprop app.setupwizard.disable 1
and then reboot. once it loads back up, it should bypass the registration screen all-together.
But beware, the phone seems a bit glitchy if you don't have it registered. For example, the home button doesn't seem to work. And you can't access the market or any of the google apps of course.
(Note: the following was the previous way to skip registration. I'll keep it here for informational purposes, but its easier to use the app.setupwizard.disable method instead of this)
- If you don't want to register the phone at all, you can edit /data/system/packages.xml and disable the registration screen. Add the following to the end of the <package> section for com.android.setupwizard, and then reboot:
<disabled-components>
<item name="com.android.setupwizard.SetupWizardActivity" />
</disabled-components>
so the full <package> would look something like below after the modification:
<package name="com.android.setupwizard" codePath="/system/app/SetupWizard.apk" system="true" ts="1217592000000" userId="10010">
<sigs count="1">
<cert index="0" />
</sigs>
<disabled-components>
<item name="com.android.setupwizard.SetupWizardActivity" />
</disabled-components>
</package>
He worked on this for a very long time with me and walked me through all the steps when testing this out. Great person.
Really nice...
I'll try to do it.
I have to study though...
I'll be in touch.
Thanks
thanks JF you are good in this thing.
My case i have sim card without data plan, when turn on phone show me screen for register email account with google.
c:\adb shell
show me # simbol
am start -a android.intent.action.MAIN -n com.android.settings/.Settings
and in the phone show me the menu for connect to my wireless
conected, registered, go ahead.
thanks
satru, in what screen are you typing "c:\adb shell"?
1. Before you click "the android"
2. while reading the agreement
3. When you can select "create" or "sign in" to a google account
4. Or later ? (where?)
Thanks
EDIT:
Ok, I hate to do that but:
I am completely stupid. I've been reading around xda-dev for hours and still can't find how to check what software I'm running. (prior or post RC30...)
In boot loader it says:
"DREA100 PVT 32B
HBOOT-0.95.0000
CPLD-4
RADIO-1.22.12.28
Sep 2 2008
Serial0"
Do I have RC30?
I couldn't get it out of bootloader mode, so I pulled the battery out.
Ok, my device was recognised and "installed" but no driver was requested.
I have read I need to do some settings from within the g1, but I can't, since it's not activated! (http://forum.xda-developers.com/showthread.php?t=443797&highlight=info)
When I issue the "adb devices" command, I get no recognised devices...
To cmavr, try entering the restore mode and see if the computer will detect it then. Is it automatically mounting the SD card onto the computer? If it is then you probably have RC19 which is good. Try removing the SD card and plugging the phone into the computer.
cmavr8 said:
satru, in what screen are you typing "c:\adb shell"?
1. Before you click "the android"
2. while reading the agreement
3. When you can select "create" or "sign in" to a google account
4. Or later ? (where?)
Thanks
EDIT:
Ok, I hate to do that but:
I am completely stupid. I've been reading around xda-dev for hours and still can't find how to check what software I'm running. (prior or post RC30...)
In boot loader it says:
"DREA100 PVT 32B
HBOOT-0.95.0000
CPLD-4
RADIO-1.22.12.28
Sep 2 2008
Serial0"
Do I have RC30?
I couldn't get it out of bootloader mode, so I pulled the battery out.
Click to expand...
Click to collapse
A quick way to check if you have RC30 is to reboot the phone, and then once it starts up and it shows the "click the android to begin" screen, type
<enter>reboot<enter> on the phone keyboard.
If it reboots, you have RC29 or lower. Otherwise you have RC30.
If you do have RC29 or lower, then you can use the first tip I posted to enable adb. Once adb is enabled it should ask you to install the drivers when you plug it in.
satru said:
conected, registered, go ahead.
thanks
Click to expand...
Click to collapse
Great! Glad it worked for you
Hi again, thanks for your reply.
I rebooted without sim card, no "click here to begin" appeared, just the "no sim card" notice.
I entered reboot and it rebooted! So this is good.
Now, with the phone connected, I type in terminal:
"[email protected]:/media/Docs/Android/tools$ ./adb shell
error: device not found
[email protected]:/media/Docs/Android/tools$ ./adb devices
List of devices attached
[email protected]:/media/Docs/Android/tools$ "
This is not normal, is it?
What should I do now?
(I also have a t-mobile sim card, not activated. It just came with the phone. I can go through the activation proccess (gmail account etc) but it can't complete as it's disabled)
cmavr8 said:
Hi again, thanks for your reply.
I rebooted without sim card, no "click here to begin" appeared, just the "no sim card" notice.
I entered reboot and it rebooted! So this is good.
Now, with the phone connected, I type in terminal:
"[email protected]:/media/Docs/Android/tools$ ./adb shell
error: device not found
[email protected]:/media/Docs/Android/tools$ ./adb devices
List of devices attached
[email protected]:/media/Docs/Android/tools$ "
This is not normal, is it?
What should I do now?
(I also have a t-mobile sim card, not activated. It just came with the phone. I can go through the activation proccess (gmail account etc) but it can't complete as it's disabled)
Click to expand...
Click to collapse
Did you try my first tip to enable adb?
johnny13oi said:
To cmavr, try entering the restore mode and see if the computer will detect it then. Is it automatically mounting the SD card onto the computer? If it is then you probably have RC19 which is good. Try removing the SD card and plugging the phone into the computer.
Click to expand...
Click to collapse
Thanks for your reply.
SD mounting works fine.
In recovery mode nothing is better... (tried recovery without sd only)
Is there anything else I should try?
JesusFreke said:
Did you try my first tip to enable adb?
Click to expand...
Click to collapse
What do you mean enable?
I should enable it on the g1 but it's locked, no menus available.
I thought the first step was to enter the "adb shell" command in the PC, then pass this through the pc to the G1:
"sqlite3 /data/data/com.android.providers.settings/settings.db INSERT INTO system (name, value) VALUES ('device_provisioned', 1);"
Am I missing something?
cmavr8 said:
What do you mean enable?
I should enable it on the g1 but it's locked, no menus available.
I thought the first step was to enter the "adb shell" command in the PC, then pass this through the pc to the G1:
"sqlite3 /data/data/com.android.providers.settings/settings.db INSERT INTO system (name, value) VALUES ('device_provisioned', 1);"
Am I missing something?
Click to expand...
Click to collapse
A couple of things:
- Look further down the post, there's a "tips and tricks" section. The first tip is how to enable adb.
- second, I don't think you need to go through the first step (the sqlite3 command). The first step is to get past the "no sim card" screen. You said you have a sim card, just no data plan, right? So you don't need to get past the "no sim card" screen . You can skip to the second step (once you get adb working, of course)
DID IT!
Thanks so much!!
I now have to wait for the unlock code so that I can also use my sim card...
Thanks both of you!
EDIT:
T-mobile sent me the unlock code although I was not a customer for even one day!
That's great...
Great! Glad you got it working
cmavr8 said:
EDIT:
T-mobile sent me the unlock code although I was not a customer for even one day!
That's great...
Click to expand...
Click to collapse
how?
thanks
xaxis said:
how?
thanks
Click to expand...
Click to collapse
Probably by getting lucky and getting a nice CSR
JesusFreke said:
Probably by getting lucky and getting a nice CSR
Click to expand...
Click to collapse
man thank god you are here,
do i need the SDK installed to get the adb?
thank you
Yes, adb is included in the sdk
Hi all,
I'm trying hard to bypass the 'no sim card' locked screen that I am currently getting on my G1 Android Dev Phone 1 RC29 that I recently installed DREAIMG.nbh on. Ideally, I would like to run the android scripting environment on my phone with wireless access.
So far, my primary document that I've used to consult this matter has been this one from JesusFreke: forum.xda-developers.com/showthread.php?t=452316.
The first thing the document suggests is, "to connect to your phone with adb shell and get root access, and then type the following command:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system (name, value) VALUES ('device_provisioned', 1);"
When I run this command, I get a 'sqlite3: permission denied' error (see below).
3.bp.blogspot.com/_scN4BTBqXiY/S-dOBTo8LiI/AAAAAAAAAfU/rtmnXywBPzI/s1600/sqlite3+permission+denied1.jpg
I recognize now that the assumption with this command is that your phone is running on RC30, as the article notes. Mine is running on RC29. In order to make this command functional, it appears as though I need to ADB push the busybox binary.
As you can see in the image above, I was able to successfully adb push the busybox binary to the /data/local of the G1.
Furthermore, I ran the wireless command in step two of the above tutorial just to see what would happen and I get this message:
3.bp.blogspot.com/_scN4BTBqXiY/S-dMU3sO2-I/AAAAAAAAAfM/Z9r_glscNvU/s1600/Wireless.jpg
With all of this being said, however, I still can't seem to bypass my original screen that says 'No Sim Card'
3.bp.blogspot.com/_scN4BTBqXiY/S-dLhIjpQ7I/AAAAAAAAAfE/JkbHfOgW3f0/s1600/DSCN5623.JPG
If someone out there knows that is going on that I should change, please let me know, because I am really running into a dead end here.
Thank you very much!
I don't remember if RC29 has this, but in the initial setup wizard you should be able to press the menu key and access a wireless setup utility to connect to wifi.
Also, after you wipe and flash (or turn the phone on the first time), and if you get the "touch the android to begin" screen you can touch each of the 4 corners of the black background in a clockwise pattern starting in the upper left to go to the home screen.
That sqlite3 command needs to be run in a root shell. Make sure you're root. The $ prompt is the regular phone user. The root prompt will be # instead. Try running "su" after connecting with "adb shell" to become root. Is the rom you're using rooted?
To get your MSL code all you have to do is turn usb debugging on and connect your phone to your computer. Then run a command prompt from your platform-tools (where adb is) folder in the android sdk then type in "adb logcat" you should start to see mostly random things showing up. now go to the dialer on your phone and type in "*#*#3282#*#*" click on edit now watch the command prompt on your screen while you type in 6random numbers into the text field on your phone. when you click ok on your phone you should see something on the command prompt that says "I/MSL_Checker( 178): MSL response incoming!!" followed by "I/MSL_Checker( 178): MSL result : xxxxxx" where xxxxxx is your msl code. now just tye that in on your phone in the field and your in. You do not have to have root to do this. I have tried it on a stock unrooted nexus s 4g and it works.
you can also do get prop command... look for MSL. A lot easier. Works rooted/unrooted. From what I know it works on all Samsung phones.
adb shell getprop ril.MSL
easiest one out there
or in terminal emulator/connectbot
getprop ril.MSL
^true I forgot about that one.
or if you want to get it with out using computer or installing sdk just download logcat from the market and go through the steps but open logcat after going in to the menu and get it from there