我有一台安装了 Android 4.3 的 Nexus 4,我想将它刷入 Ubuntu Touch。我的系统是 Ubuntu 12.04,在 Mac OS 10.5.8 上的虚拟机内运行。为了使用虚拟机,我打开了 NAT 桥接并为 adb 转发了端口 5037,我可以使用 adb 查看 Nexus,例如在其中使用 adb shell。USB 端口也转发到虚拟机。
我跟随这些完全按照说明操作。我的引导加载程序已解锁,正如说明中所述。现在,我在执行时遇到不同的问题sudo phablet-flash ubuntu-system --no-backup
。
第一次运行时,它卡在了这种状态:
INFO:phablet-flash:Decompressing partitions/recovery.img from /home/till/Downloads/phablet-flash/imageupdates/pool/device-5ba3031cb0d6fc624848266edba781e3e821b6e1e8dd21105725f0ab26077d0a.tar.xz
INFO:phablet-flash:Restarting device... wait
INFO:phablet-flash:Restarting device... wait complete
INFO:phablet-flash:Booting /tmp/tmpMSN8bm/partitions/recovery.img
< waiting for device >
downloading 'boot.img'...
OKAY [ 1.772s]
booting...
OKAY [ 0.005s]
finished. total time: 1.779s
INFO:phablet-flash:Waiting for recovery image to boot
发生了以下情况:在“INFO:phablet-flash: Restarting...”行附近,它重新启动进入引导加载程序。引导加载程序只显示了两秒钟,然后屏幕关闭,手机保持关机状态。但我确实注意到,屏幕没有关闭 - 它只是黑色,但背景灯亮着。如果我等待足够长的时间,phablet-flash 会中止并显示ERROR:phablet-flash:Wait for recovery expired
第二次尝试时,我想手动启动引导程序并选择“恢复模式”。一开始按下“降低音量+电源”没有任何反应。松开按钮然后再次按下它们让我进入引导程序。选择“恢复模式”后,phablet-flash 继续运行,一段时间后中止并显示以下输出:
INFO:phablet-flash:Wait for recovery image to boot complete
INFO:phablet-flash:Clearing /data and /cache
INFO:phablet-flash:Pushing /home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz to /cache/recovery/
failed to copy '/home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz' to '/cache/recovery/': Permission denied
ERROR:phablet-flash:Command 'adb push /home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz /cache/recovery/' returned non-zero exit status 1
Removing directory /tmp/tmpDnbz6N
Removing directory /tmp/tmpth4L6w
我该怎么做才能正确地用 Ubuntu Touch 刷新我的手机?我注意到 adb 没有显示恢复模式下的手机:adb devices
当 Nexus 4 处于恢复模式时,输入 ,会显示序列号和状态device
,它应该显示recovery
。
手机需要 root 权限吗?说明书上没有提到这一点。
答案1
好的,我找到了问题。我将发布答案,供所有尝试相同方法的人参考:当您使用虚拟机来安装您正在使用的 Ubuntu 时,在手机上安装 Ubuntu Touch。
主要问题:为了能够从虚拟机内部访问 Nexus,我必须激活“设备过滤器”,以便虚拟机内的 Ubuntu 能够看到手机。当手机处于恢复模式时,设备过滤器必须与手机不同!
详细地:
我首先将手机刷入 Android 4.2.2。这样我至少可以看到 Ubuntu Touch 安装附带的恢复模式(注:Nexus 4 上的 Android 原装系统似乎没有附带恢复模式 [需要引用])。问题仍然存在,phablet-flash 仍然停留在INFO:phablet-flash:Waiting for recovery image to boot
。
安装 CWM Recovery 映像后,我发现 adb 在 Recovery 模式下无法看到该设备。因此,我检查了 VirtualBox 设置,并在 USB 设置中再次将 Nexus 4 添加为设备过滤器。结果发现,在 Recovery 模式下,手机的产品 ID 不同,因此它没有转发到 VM 中的客户操作系统,并且只要手机处于 R 模式,phablet-flash 就无法继续。
如果有人碰巧尝试同样的事情,我希望这会有所帮助。