ubuntu touch 失败后恢复 Android

ubuntu touch 失败后恢复 Android

我在尝试使用 ubuntu touch 后尝试恢复 android

我完全按照描述的步骤进行操作ubuntu 的 wiki页面即

  1. 下载对应您设备型号和版本的出厂映像(初始表格中有链接)。

  2. 确保设备已连接并打开电源。

  3. 解压下载的文件并进入解压的目录。

  4. 运行 adb reboot-bootloader

  5. 运行./flash-all.sh(如果工作站缺乏权限不允许您与设备通信,请使用 sudo)。

档案已成功下载,检查 sha1 校验和一切正常。但是./flash-all.sh失败了,如下所示

sending 'bootloader' (2308 KB)...
OKAY [  0.513s]
writing 'bootloader'...
OKAY [  0.292s]
finished. total time: 0.805s
rebooting into bootloader...
OKAY [  0.007s]
finished. total time: 0.008s
sending 'radio' (12288 KB)...
OKAY [  2.668s]
writing 'radio'...
OKAY [  1.372s]
finished. total time: 4.040s
rebooting into bootloader...
OKAY [  0.009s]
finished. total time: 0.009s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
failed to allocate 435793780 bytes
error: update package missing system.img

我的设备是 Nexus 4。尝试了 Nexus 4 的 4.2.2 和 4.3 安卓版本,结果还是一样。有什么办法可以解决这个问题吗?

答案1

我自己想出来的

第一个分区需要手动删除

fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata

从谷歌下载的原始 zip 文件中的图像像这样手动安装每个图像

fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash recovery recovery.img
fastboot flash userdata userdata.img

答案2

我遇到了同样的问题,一开始就陷入了抱怨:

archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
failed to allocate 435793780 bytes
error: update package missing system.img

按照解决方案建议后,我解压缩了所有单独的图像,然后尝试逐一刷新它们。

在刷新 system.img 时,我收到新的错误,提示设备中没有足够的可用空间。实际投诉如下:

error: cannot load 'system.img': Cannot allocate memory

不小心,我在某个时候输错了命令,写成了:

fastboot flash system recovery.img

然后执行命令时,令人惊讶的是,它成功通过了。在注意到我输入了错误的命令后,我再次尝试了原始命令,它成功了。

fastboot flash system system.img 

8-)

答案3

这里的问题是缺乏可用的系统资源。

error: cannot load 'system.img': Cannot allocate memory

正在谈论您的系统内存,因为文件在发送到设备之前被加载到内存中。

尝试释放资源(关闭不必要的程序)然后重试命令。

答案4

当系统上没有足够的内存 (RAM) 来完成任务时,就会发生此错误。整个更新文件在通过网络发送之前会加载到内存中。在最新版本的 Android Marsh mellow 中,此system.img文件超过 1 GB。要避免此问题,只需通过以下方式创建临时交换空间:

$ sudo fallocate -l 2G /tmp/swapfile
$ sudo chmod 600 /tmp/swapfile
$ sudo mkswap /tmp/swapfile
$ sudo swapon /tmp/swapfile

现在刷新你的文件,完成后,通过以下方式删除交换文件:

$ sudo swapoff -a
$ sudo rm -f /tmp/swapfile

相关内容