RaspberryPi 2b 在我家做了 2 年多的媒体中心,随着时间的推移,它百兆网口和 GPU(不支持硬解 H265) 的缺陷越来越明显了。终于在 PDD 寻了一台 Phicomm N1 (千光网口与硬解 H265),到手就刷了官改 ROM,顺利替代了 RaspberryPi 并且提升了家庭的幸福指数。

刷机主要流程

  1. 将 N1/T1 的 boot 分区 降级, 开启 线刷功能。
  2. 将 N1/T1 的 ROM 降级 至官改。
  3. 准备 USB,将第三方 ROM 写至 usb 上。如:Armbian (linux), openwrt (小钢炮)
  4. 插入 USB 运行第三方 ROM,正常使用
  5. 也可以运行第三方 ROM 中所提供的脚本,将系统写至 EMMC 上,从而无须 USB 启动第三方 ROM

刷机流程

刷机流程

工具

下载地址: 本文工具合集 - 189 分流 20190630, 访问码:2674

斐讯 T1/N1 降级以恢复线刷功能

N1 boot 分区镜像文件是 V2.19 版本,实测 V2.27、V2.28 降级后即可正常线刷
T1 boot 分区镜像文件是 1.3T33 版本,实测 1.5T52 、1.6T57 降级后即可正常线刷

斐讯 N1/T1 降级关键分区恢复线刷功能

N1 三个分区镜像文件是 V2.19 版本,实测 V2.27、V2.28 降级后即可正常线刷
T1 三个分区镜像文件是 1.3T33 版本,实测 1.5T52 、1.6T57 降级后即可正常线刷

刷机工具

ROM

  • webpad 的 N1 官改 2.2 ROM
    此 ROM 是基于官方 V2.32 的,所以仅需使用将 boot 分区降级就行。
    如果刷的第三方 ROM 是基于官方 v2.19 版本的,则需要对 boot, bootloader, recovery 三个分区进行降级。
  • webpad 的 T1 官改 v3.5 线刷包
  • CoreELEC

一、N1 降级 boot 分区恢复线刷功能

  1. 将 N1 官方 V2.22~V2.32 的 boot分区 降级至 V2.19 ,T1 官方 1.4T51 ~ 1.6T57 的 boot分区 降级至 V1.3T33
  2. 然后用 adb 脚本进入线刷模式,从而烧录官改线刷包。

此降级仅针对 boot 分区,所以系统版本号不会变化

ADB 的网络方式刷机

  1. 盒子/PC 的网线插路由器上,记下盒子获得的内网 IP 地址。
  2. 盒子连接显示器并开机,N1 开启 adb调试 (主界面使用鼠标点击四次固件版本号打开 adb)
    • 如果盒子开机后直接进入桌面,则在设置里将盒子恢复出厂设置
      N1界面 N1 界面
  3. 在 PC 端解压斐讯 N1T1 官方系统降级工具.zip
  4. PC 端开始对盒子的 boot 分区进行降级
    • windows 下运行 onekey 子目录下的 run.bat ,按提示操作即可。
      run.bat run. bat
    • Linux 下
       !#/bin/sh
       true=0
       false=1
       get_root_permission(){
         adb shell setprop service.phiadb.root 1
         adb shell setprop service.adb.root 1
         adb kill-server
       }
       adb_connect(){
         # $1--->phicomm's ip
         if [ -z "$1" ]; then return $false; fi
         adb kill-server
         adb connect "$1"
         if [ \`adb devices -l | grep "p230" | wc -l\` -eq 1 ]; then   # N1
             return $true
         elif [ \`adb devices -l | grep "q201" | wc -l\` -eq 1 ]; then   # T1
             return $true
         fi
         return $false
       }
       while [ $true -eq 0 ]; do
         read -p "input phicomm's ip: " _ip
         echo connect phicomm on network
         adb_connect "$_ip"
         if [ $? -eq $true ]; then
             echo "get root permission of disk"
             get_root_permission
             adb_connect "$_ip"
             break
         fi
       done
       while [ $true -eq 0 ]; do
         read -p "input the path of [boot.img]: " _file_path
         if [ -f "$_file_path" ]; then
             read -p "The [boot.img]'s path is --- [$_file_path] ?[y/N]" _result
             read -p "The [boot.img]'s md5 is --- \`md5 \"$_file_path\"\` ?[y/N]" _md5_result
             _result=\`echo $_result | tr A-Z a-z\`
             _md5_result=\`echo $_md5_result | tr A-Z a-z\`
             if [ "x$_result" = "xy" -a "x$_md5_result" = "xy" ]; then
                 adb push "$_file_path" /sdcard/boot.img
                 adb shell dd if=/sdcard/boot.img of=/dev/block/boot
                 adb shell rm -f /sdcard/boot.img
                 break
             fi
         fi
       done
       echo "如要要刷机,请切换系统至windows下,使用phicomm专用刷机工具对flash进行更新"
       echo "进入线刷模式,请手动执行[adb reboot update]"
       exit 0
      

注意事项

  • 无法进入线刷模式:用双公头 usb 将 n1 和电脑连接,重启 n1 后若电脑没有检测到 n1 这个硬件设备(可以在设备管理器中看到),直观上的表现是是否有电脑检查到新硬件的那种提示音,没有则未进入线刷模式,此时可以检查是否是线的问题。盒子进入线刷模式后一段时间无动作可能会自动退出此模式,因此进入到线刷模式后应该尽快进行烧录。
  • 烧录进度条不动:我遇到过这个问题,如果按照 webpad 的教程步骤出现了这个问题,可以试试我这种方法:n1 重启后,电脑检测到了 n1,然后再马上点击开始,此时成功进行烧录。

二、刷 webpad 的官改 2.2 ROM

ROM 说明

  1. 基于斐讯官方 V2.32 系统制作,斐讯设置主界面去除账号中心、儿童锁、版本升级,改为蓝牙遥控配对、更多设置(安卓设置)、设置主桌面。
  2. 首次启动开机向导,可自动配对山寨小米蓝牙遥控器、天猫魔盒蓝牙语音遥控器,不影响斐讯 T1 原厂遥控器配对;
    • 第三方遥控
    • 短按电源键出现电源选择界面,确认键执行第一项关机或自动倒数计时关机,无关机动画 (快速关机);
    • 关机后按遥控器任意键唤醒开机,斐讯原厂遥控也可快速关机;
    • 快速关机 bug:若开机进入桌面后立即执行快速关机,大概率变成重启;
    • 第三方遥控在电源选择界面再次按电源键或直接长按电源键,盒子会重启;
    • 斐讯 T1 原厂遥控器
    • 短按电源键出现电源选择界面后再按一次电源键或长按电源键,出现关机动画后盒子关闭;
    • 按电源键唤醒开机。
  3. 电源选择界面中 休眠 改成 线刷 :预先用 USB 双公头线连接盒子和电脑,执行该功能后盒子 进入线刷模式, 若未接线,盒子会进入 recovery 界面, 也可通过该功能引导 U 盘第三方系统,如 Armbian Linux 、CoreELEC、Sx05RE 等等。
  4. 斐讯挖矿、CDN、下载等预置应用已去除;
    • 内置当贝桌面、Lighthome 、TV Launcher ,也可自行安装其它桌面应用;
    • HDP optware 、谷歌框架、油管、Xposed 框架、kodi 等扩展功能,采用 adb 脚本包形式选择安装,
    • 为保证推送速度,请用网线连接盒子和路由器,在电脑上解压 N1 选装功能一键工具 20180922.7z ,运行 run. bat 。
  5. 静默 root 授权、 telnet 服务端口 2323adb shell 直接为 root 权限;

线刷方法、注意事项这些不再重复,请参考网盘文档或历史帖子。

开始刷机

  1. 在 windows 下,安装 USB_Burning_Tool_v2.1.6.zip
  2. 解压 ROM 并验证 md5 值
  3. 打开 burning_tool.exe 并载入 ROM
    • 去除 flash fastbooterase sdcard
    • 点击 run
  4. 盒子断电,用 USB 线连接盒子与 PC
  5. 插入盒子电源
  6. burning_tool.exe 显示为 100% 且进度条转为绿色,点击 [停止]
  7. 拨掉 USB 线,断电重启盒子,进入后先将盒子恢复一次出厂,此后就可以正常使用了

注意事项

  1. 第一次进入桌面后,首先恢复出厂
  2. 若用其它桌面,需要关闭当贝桌面霸道的 <开机启动>。
  3. 桌面切换方法: 斐讯设置->设置主桌面->主屏幕应用, 需要用鼠标操作。
  4. 默认 root 无密码。默认 busybox 不含 passwd, 安装新版的 busybox,包含 passwd。
  5. telnet 关闭或加密码?修改 /system/bin/webpadinit.sh
     # close telnet
     sed -i 's/\(\/system\/xbin\/busybox telnetd -p 2323\)/#\1/' /system/bin/webpadinit.sh
    

开机脚本

webpadini. sh

#!/system/bin/sh

# powered by Rush, mod by webpad

# supolicy权限功能

/system/xbin/supolicy --live --sdk=25

#/system/xbin/supolicy --live "permissive init;permissive kernel;permissive untrusted_app;permissive toolbox;permissive shell;permissive priv_app;"

/system/xbin/supolicy --live "permissive init;permissive kernel;permissive shell;"

# 永久root

mount -o remount,rw /system

chmod 0755 /system/xbin/su

chown root:shell /system/xbin/su

#fail-safe功能

sleep 10

/system/bin/ip addr add 192.168.100.107/26 broadcast 192.168.100.127 label eth0 dev eth0

# enable telnet service on startup

#/system/xbin/busybox telnetd -p 2323 -l /system/bin/sh&

# optware files extract operation

optware_success=0

MARK=/data/.installed_of_optware

DATAMARK=/data/opt/

OPTWAREMARK=/system/opt.tar.gz

if [ ! -e $MARK ]; then

 if [ -e $OPTWAREMARK ]; then

   if [ ! -d $DATAMARK ]; then

     busybox mkdir -p $DATAMARK;

   fi

   until [ $optware_success -eq 1 ]

   do

   tar xzf $OPTWAREMARK -C $DATAMARK;

   if [ $? -eq 0 ]; then

     optware_success=1

     touch $MARK

   else

     optware_success=0

   fi

   sleep 1

   done

 fi

fi

# other

stop smbd

killall smbd

mount -o remount,rw /

chmod 0000 /sbin/smbd

svc power stayon true

# optware init

sleep 1

if [ -e /data/opt/optware-init.sh ]; then 

    /data/opt/optware-init.sh&

fi

exit 0

三、救砖

小白的斐讯 N1 半砖救砖历程
斐讯天天链 N1 官改 v2.0 线刷包,补丁 patch1


References: