禁用Android初始化设置Wizard

在Pixel XL(marlin)上安装Android 10 后,由于原生Android默认安装了GMS,开机启动第一次初始化会强制要求连接到Google服务进行账号注册。这带来了一个死循环:

  • 在墙内系统无法直接访问Google
  • 没有完成初始化无法跳过进入系统,也就无法使用 OpenConnect VPN 来访问Google

总之,没有Google无法激活,原先我记得连接局域网注册失败,再尝试一次通过移动网络注册失败,Andorid的Setup Wizard是会提供一个选项允许暂时跳过设置。但是,最近一次刷新Factory Image,却发现这个跳过选项没有了。这就导致无法进入Android系统使用手机。

解决思路:

  • 参考 Root Pixel设备 ,使用TWRP的IMG文件进入系统,mount选项挂载上system

  • 修改 /system/build.prop 参数,添加一行:

    ro.setupwizard.mode=DISABLED
    

然后再次启动系统就会跳过Wizard,这样就可以再安装openconnect来连接Google,就可以重新注册了。

步骤

  • 重启手机操作系统,重启同时按住 音量减小键 ,这样重启后进入fastboot模式

  • 下载 twrp-3.3.1-3-marlin.img 在电脑上执行以下命令以便从TWRP img启动:

    fastboot boot twrp-3.3.1-3-marlin.img
    
  • 启动TWRP之后,在界面上选择 mount 挂载system,不过只能选择readonly,挂载后在电脑上执行:

    adb shell
    

进入系统检查:

df -h

可以看到:

/dev/block/sda33 1.9G  1.9G   47M  98% /system

重试重新挂载成读写模式:

mount -o remount,rw /system

但是报错:

linker: Warning: couldn't read "/system/etc/ld.config.txt" for "/sbin/toybox" (using default configuration instead): error reading file "/system/etc/ld.config.txt": Too many symbolic links encountered
WARNING: linker: Warning: couldn't read "/system/etc/ld.config.txt" for "/sbin/toybox" (using default configuration instead): error reading file "/system/etc/ld.config.txt": Too many symbolic links encountered
'/dev/block/bootdevice/by-name/system_a' is read-only

这里比较奇怪,参考 How can I remount my Android/system as read-write in a bash script using adb? Ask Question 通常需要使用root身份来执行adb mount,不过我检查了:

adb root

显示输出:

adbd is already running as root

这个问题有待进一步探索,目前主要困难在于 -o remount,rw 无法挂载Pixel的系统目录。

Skipping Setup Wizard on first boot of LineageOS or any Android ROM 介绍了几种跳过Setup Wizard

剔除GMS

实际上有一个非常简单的禁止Google SetupWizard的方法,就是使用第三方编译的Android系统,例如LineageOS。第三方编译的Android系统不包含Andrid Google Mobile Services(GMS),所以就不会启动默认强制连接注册Google服务。

ZEBRA开发网站提供了一系列 The Android Setup Wizard and How to Bypass It ,通过企业管理Android可以绕过Setup Wizard。

如果实在不能跳过Andorid SetupWizard,可以尝试使用LineageOS来替代:

  • LineageOS 16.0 = Android 9.0.0 (Pie)
  • LineageOS 17.0/17.1 = Android 10 这个版本非LineageOS官方发布版