[Nexus 7 General] organophosphate:
I just got my Nexus 7 this evening and was incensed to find out that I could not skip the WiFi network selection phase of setup. This really irked me because I chose this device specifically because it was open/hackable/etc. Instead, I found that immediately after I picked up the device I was being forced to do something I didn't want to do right then. Naturally, this forcing mechanism was supposedly "for my own good".

I searched around and found others asking the same questions only to receive mockery. Therefore, I wanted to post instructions for those who may really want to skip WiFi setup for whatever reason. It's your device; don't feel like you have to justify what you want to do with it or how.

It will become apparent that this was done out of the principle of the matter.

This isn't for people who want to get their device up and running quickly or who aren't familiar with adb, custom recoveries, shell commands, etc. Casual users (or anyone who isn't familiar with what each step does without asking questions) should probably avail themselves of the workarounds posted in some of the other threads on this subject.

Preliminary Tasks:

1. Download the ADB drivers for the Nexus 7 from the ASUS support site & install them.

2. Unlock the bootloader using your favorite method (I booted into the bootloader, then used "fastboot oem unlock") and let it nuke your tablet.

3. Obtain & load ClockworkMod Recovery using your favorite method (I used "fastboot flash recovery ).

4. Reboot into recovery.

5. Mount /system via CWM.

If you're in the intended audience you probably can tell where this is going. You have two choices at this juncture: you can edit the build.prop file to allow you to skip WiFi setup step or you can edit the same file to just disable the setup wizard entirely. Both ways work. So, here's the Choose Your Own Adventure stage...

Disabling The Setup Wizard Entirely:

6. Launch adb shell

7. echo "ro.setupwizard.mode=DISABLED" >> /system/build.prop

8. Exit shell and issue an adb reboot.

9. Watch your tablet launch directly to the home screen.

10. Manually configure your settings without the "help" of the Setup Wizard and go on your merry way.

11. There is no step 11. Stop reading now.

Allowing The WiFi Setup Step To Be Skipped:

6. adb shell sed -i 's/ro.setupwizard.wifi_required=true/ro.setupwizard.wifi_required=false/g' /system/build.prop

(Thanks to steevp for this idea)​

7. Issue an adb reboot.

8. Your tablet will launch into the initial setup wizard, but the WiFi page will have a "Skip" button.

9. The developers really didn't anticipate this scenario, so after you skip WiFi selection it will display "Connecting to WiFi" even though there's no connection. This will take a minute or two before it times out and setup continues to the next step.

10. Proceed with the rest of setup however you like.

Naturally, two minutes after I finished getting the tablet booted to the home screen I enabled WiFi and connected to my home network. However, I did this when *I* wanted to do so rather than when Google's devs thought I should; therefore, I am of the opinion that this exercise was worth the effort.

(If your tablet fails to boot after either one of these build.prop file edit approaches, just hold down power + volume down until it reboots. Go into recovery/adb/etc and start debugging what went wrong. This is a particularly fun condition, because you can't adb logcat the issue because you haven't enabled USB debugging because you've haven't setup the device yet. Don't take this the wrong way, but don't bother asking me for help if you can't figure out how to extricate yourself. I mean, how much more dissuasion/warnings/disclaimers do you want?)​

ETA:

Disabling the SetupWizard by simply renaming the apk has deleterious side effects, so I refactored the approach. Among other problems, the home button doesn't work if you just rename the apk--likely because it is disabled to prevent users from escaping the setup wizard/WiFi selection screen. Disabling the setup wizard via build.prop doesn't exhibit this issue. Addditionally, I updated the WiFi skipping instructions to be safer and more efficient.