关于 N1 刷机用的固件:
基本所有的、各种类型的固件都是基于两个平台:Android 和 Linux。原厂电视盒固件和基于原厂固件修改的第三方电视盒固件,他们都是基于 Android 7.0,其他固件一般基于 Linux。
所以我们这里把刷 N1 用的固件分为两类:
- 第三方电视盒固件(如 webpad、YYF、Rush):电视盒固件用 USB_Burning_Tool 通过双公头 USB 刷机线直接刷进 N1 的 eMMC 中
- 基于 Linux 的固件(如 OpenWrt、Armbian):基于 Linux 的固件需要先将固件写入 U 盘,再用 U 盘启动后用命令写入 N1 的 eMMC 中,也可以不写入 eMMC 而直接运行在 U 盘中,但某些情况可能不好用,比如 Docker 可能无法正常使用
刷机
刷机的大致步骤
- 降级
- 进入线刷模式
- 刷入固件
注意:对于一台 N1,降级只需要做一次;根据你现在的固件和准备刷的固件的类型,可能需要再次进入线刷模式
刷机前需要准备的硬件
如果你是刷官改(第三方)的电视盒固件,才需要双公头 USB 刷机线;否则是不需要的
- 双公头 USB 刷机线*1
- HDMI 线*1
- 支持 HDMI 的显示设备*1
- 鼠标*1
- 安装有 Windows 系统的 PC
- U 盘(刷基于 Linux 的固件的话)
刷机前需要准备的软件
- 降级工具
- USB_Burning_Tool 线刷工具(刷第三方安卓电视盒固件的话)
- 写 U 盘工具(刷基于 Linux 的固件的话。只推荐 balenaEtcher,USB Image Tool、Win32DiskImager 应该可以)
- 你要刷的固件的.img 镜像文件
降级
简单地说降级就是刷入低版本(v2.19)的 bootloader、boot 和 recovery.img 三个分区文件,以便于 N1 能引导非官方固件。对于一台 N1,降级只需要做一次。
降级可以用别人写好的降级工具 N1、T1 降刷机助手,操作简单;或者使用命令行一步一步操作。这里以命令行为例。
1、下载官方的 adb 调试工具 platform-tools(下载),以及降级用的 bootloader.img、boot.img、recovery.img 三个分区镜像文件(下载,密码:nzwy53),放到 platform-tools 目录。
2、N1 连接好鼠标、双公头 USB 刷机线(另一头接电脑)、网线(另一头接路由器)、HDMI 线(另一头接显示器)
3、插上电源通电
4、看显示器屏幕,鼠标单击版本号 4 下,打开 adb 调试,并记住获取到的 IP 地址
5、按住 Shift,右键点 platform-tools 文件夹,选择 「在此处打开 Powershell 窗口」,分别运行如下命令:
adb connect N1 的 IP 地址 #连接 N1 adb shell reboot fastboot #进入 fastboot 模式(这一步及之后必须连接双公头 USB 刷机线) fastboot devices -l #查看连接的设备,显示有设备连接了才能刷后面的.img 文件 fastboot flash bootloader bootloader.img #刷入 bootloader.img fastboot flash boot boot.img #刷入 boot.img fastboot flash recovery recovery.img #刷入 recovery.img
6、N1 重新通电准备进入线刷模式
进入线刷模式(或叫 U 盘启动模式)
可以用别人写好的工具或在 platform-tools 下使用如下命令:
adb connect N1 的 IP 地址 #连接 N1 adb shell reboot update #重启进入线刷模式(或叫 U 盘启动模式)
判断是否已开启了线刷模式:断电连接好双公头线再通电,Windows 系统有识别到硬件的声音,说明已开启线刷模式。
刷不同的固件是否需要重新进入线刷模式(或叫 U 盘启动模式):
- 现固件是 Linux 固件重新刷其他 Linux 固件:不需要
- 现固件是 Linux 固件重新刷电视盒固件:不需要
- 现固件是电视盒固件重新刷其他电视盒固件:不需要
- 现固件是电视盒固件重新刷 Linux 固件:需要
注意:adb 命令是用于 Android 系统的
刷固件
固件选择
第三方电视盒固件(也就是基于 Android 的电视盒官改固件):
- webpad 固件
基于官方固件 v2.32 版修改,是其它所有第三方固件的 「爸爸」。
自带 root,不带 root 管理,内置乱七八糟一堆 app,但可以删。
流畅度一般。 - YYF 固件
基于 webpad 旧版固件(对应官方固件 v2.19 版)的精简修改+扩展版。
自带 root,自带 root 管理,移除了所有 webpad 固件内置垃圾 app,加了很多实用功能,如语音控制/远程管理/bt 下载之类。
流畅度优于 webpad 固件 - Rush 固件
基于 webpad 旧版固件(对应官方固件 v2.19 版)的极限精简版。
自带 root,自带 root 管理,体积不大,非常干净。
流畅度极佳。 - 潜龙固件
基于 Linux 的固件:
- OpenWrt:做旁路由
- 小钢炮:做下载机
- LibreELEC:做家庭媒体中心
- Armbian:作为主体安装 Home Assistant 智能家居系统、Docker 等
刷入第三方电视盒固件的步骤
- 断开 N1 电源(不要插 HDMI 线,否则可能会导致插好 USB 刷机线后电脑不识别 N1)
- 打开 USB_Burning_Tool 线刷工具
- 导入烧录包并取消勾选 「擦除 flash」 和 「擦除 bootloader」,点击 「开始」
- 插好双公头 USB 刷机线
- 插上 N1 电源
- 等待自动刷机完成
刷入基于 Linux 的固件的步骤
- 用写 U 盘工具 balenaEtcher 将固件写入 U 盘备用
- 运行 U 盘启动的命令,并查看 N1 的指示灯
- 当 N1 指示灯熄灭时马上将 U 盘插入靠 HDMI 的 USB 口
- 等上几分钟,SSH 进入系统
- ls 查看是否有 xxx.sh 文件(别人做好的固件里一般都有 xxx.sh 文件用于刷入 eMMC 如果是刷 Armbian 据说直接用 nand-sata-install)
- 输入./xxx.sh 等待刷入完成(如果是刷 Armbian 也可以直接用 nand-sata-install,我也不知区别)
- 输入 poweroff 等指示灯熄灭
- 断开 N1 的电源
- 拨掉 U 盘
- 插上 N1 电源
- 完成
注意,如果刷入 eMMC 时有错误提示,最好:
- 确保写 U 盘工具 balenaEtcher 最后写入完成时不会出现感叹号,否则多试几次重新写,或者先将 U 盘格式化再写
- 不要在 N1 固件已经启动的情况下插入 U 盘,这有可能会导致 U 盘中的文件或文件属性被改写,导致通过 U 盘启动不成功或其他问题。
- 如果现在为 Linux 固件,在将其他固件通过 U 盘写入 eMMC 的时候出现分区失败而无法写入的,则需要先运行
dd if=/root/u-boot-2015-phicomm-n1.bin of=/dev/mmcblk1
(还原 bootloader),然后reboot
重启后重新运行./xxx.sh
;如果还是无法刷入,则需要将其刷为电视盒固件(并在刷机之前一定要勾选 「擦除 flash」)。
挑 U 盘(通过 U 盘启动不成功)的现象:HDMI 画面出现 「Android Recovery。。。No command,出现倒地的安卓机器人」,如此图
永久解决 N1 挑 U 盘的方法:两颗电容治好 N1 挑 U 盘的毛病
救砖
变砖的现象
开机时直接无显示(我遇到的是这种,可能还有出现错误、或出现倒下的安卓机器人等)
首先看 USB_Burning_Tool 能不能识别 N1,能识别则不需要拆机;否则需要拆机短接。
拆机方法:底部四个胶垫取下拧下四颗螺丝即可。拆机视频
到 「4%: 加载 UBOOT」 电脑有设备断开和连接的提示音,这个属于正常现象。
救砖步骤
- 连接好双公头刷机线
- 将 SECURE_BOOT_SET 证书文件放置于 Amlogic_USB_Burning_Tool 安装目录下的 license 目录
- 用 USB_Burning_Tool 刷机工具导入 T1_1.3T47_mod_by_webpad_v3_20180419_2.img 固件(没错,是 T1 的固件),勾选 「擦除 flash」 和 「擦除 bootloader」,点击 「开始」
- N1 通电
- (如果 USB_Burning_Tool 不能识别到 N1,还需要拆机短接)
- 会自动刷固件到 21% 会出错
- 停止后再刷第三方固件,不勾选 「擦除 flash」 和 「擦除 bootloader」
- 如果刷第三方固件刷不进去则先刷 aml_upgrade_package_N1 原厂固件
救砖资源下载,提取码 z4g0
参考链接
- 斐讯 N1 – 完美刷机 Armbian 教程(说了比较多的细节和原理)
- 斐讯 N1 刷机(说了一些细节和原理)
- [N1 盒子] [2018-5-25] 斐讯 N1 和 T1 降级关键分区恢复线刷功能, fastboot 烧录(降级用的三个分区文件及工具下载)
- 斐讯 N1 降级、刷入 Armbian
- N1 安装小钢炮
- 斐讯 N1 eMMC 刷入 OpenWrt 系统教程笔记
- 我购买了斐讯 N1 做电视盒子,发现它远比想象的...
- 斐讯 N1 折腾记:降级及刷入官改
- N1 降级刷成 T1 文件变砖自救记
- 斐讯 N1 救砖记之 TTL 大法
刷 Openwrt 固件做旁路由
参考另一篇博客文章:N1 刷 OpenWrt 固件做旁路由
其他
Armbian 的配置操作
进入图形化配置
armbian-config
默认的软件源比较慢,更换为国内软件源
nano /etc/apt/sources.list
默认源用 #注释掉,将如下源添加进去后 ctrl+x,然后 y 保存。根据你刷的 Armbian 是基于 Ubuntu 还是 Debian,替换的源不同(SSH 登录进去会有提示 Armbian 的版本)
基于 Debain:
deb http://mirrors.tuna.tsinghua.edu.cn/debian stretch main contrib non-free deb http://mirrors.tuna.tsinghua.edu.cn/debian stretch-updates main contrib non-free deb http://mirrors.tuna.tsinghua.edu.cn/debian-security stretch/updates main contrib non-free deb http://mirrors.tuna.tsinghua.edu.cn/debian stretch-backports main
基于 Ubuntu:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
更新和升级软件列表
apt-get update apt-get upgrade
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
查看时间是否正确:date -R
查看是否使用上级路由器的 DNS:cat /etc/resolv.conf
如果不是,执行:
rm /etc/resolvconf/resolv.conf.d/head && touch /etc/resolvconf/resolv.conf.d/head
开启 BBR
linux-5.0.2 默认用 reno ,需要设置其启用 bbr 。执行以下命令:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p
运行 lsmod | grep bbr,查看是否包含 bbr
安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh --mirror AzureChinaCloud #调用 Azure 源(也可以--mirror Aliyun #调用阿里源)
安装 docker 图形化管理工具 Portainer
docker volume create portainer_data docker run --restart always -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:linux-arm64
访问 N1 的 ip:9000 进入 Portainer 的管理界面
安装 Docker 版精简 OpenWrt
首先你刷的固件必须是支持 Docker 的,也就是刷的基于 Linux 的固件,比如小钢炮、Armbian 等
SSH 到 N1,分别运行如下命令:
docker pull breakersun/openwrt:pigroup #拉取镜像 ip link set eth0 promisc on #开启网卡的混杂模式 docker network create -d macvlan --subnet=192.168.99.0/24 --gateway=192.168.99.1 -o parent=eth0 macnet #创建 Macvlan 复用网卡,用于虚拟主机接入局域网。注意根据实际情况更改网络 IP 段 docker run --restart always -d --network macnet --privileged breakersun/openwrt:pigroup /sbin/init #创建容器
登录你的路由器查看主机名为 New-Pi 的 IP 地址,登录密码 password
这个精简版的更新比较慢,还有另外一个
安装 Docker 版 adguardhome
docker pull adguard/adguardhome:arm64-latest #拉取镜像 docker run –name adguardhome –network macnet –ip 192.168.99.3 -v /root/AdguardHome/workdir:/opt/adguardhome/work -v /root/AdguardHome/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d –restart always adguard/adguardhome:arm64-latest #创建容器
(命令可能有误)
登录 192.163.99.3:3000 开始首次配置 adguardhome,以后登录 192.168.99.3 进入 adguardhome 控制面板
ipk 文件的安装方法
进入固件系统(如 OpenWrt),在网络存储-文件助手或系统-文件传输上传 ipk 安装
或者 SSH 下使用命令
mount_root opkg install xxx.ipk
注意比如 adbyby 等插件需要先安装程序 ipk 再安装界面 ipk(luci-app-xxx.apk 为界面)
资源
- 斐讯 N1 折腾记 - Armbian 5.77 刷入与优化(刷 Armbian 5.7.7 使用这里的教程和资源)
- 山小炮网盘(很多 N1 的资源,另外他的主页很多东西值得借鉴)
- Google Drive 固件下载链接(来自 Pi&N1 玩家交流群)
- 3000 问
我的两个 U 盘一个 IS903 一个 SSS 6134 都不能启动,哎