环境

  • Platform: RK3399
  • OS: Android7.1.2
  • Kernel: v4.4.103
  • Host:Ubuntu16.04 X64

这里只讨论在Linux环境下的烧写

烧写工具安装及问题

官方upgrade_tool安装

下载并解压,并拷贝到系统文件夹,并赋予执行权限。SDK的工具目录下也有。

unzip Linux_Upgrade_Tool_xxxx.zip
cd Linux_UpgradeTool_xxxx
sudo mv upgrade_tool /usr/local/bin
sudo chown root:root /usr/local/bin/upgrade_tool
sudo chmod a+x /usr/local/bin/upgrade_tool
  • 遇到的问题:

    upgrade_tool: error while loading shared libraries: libudev.so.1: cannot open shared object file: No such file or directory

    64位ubuntu 16.04: sudo apt-get install libudev-dev:i386

    ADB工具安装

  • 安装
    sudo apt-get install android-tools-adb
  • 添加设备标识(Rockchip vendor ID)
    mkdir -p ~/.android
    vi ~/.android/adb_usb.ini
    # 添加以下一行
    0x2207
  • 加入 udev 规则
    sudo vi /etc/udev/rules.d/51-android.rules
    # 添加以下一行:
    SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666"
  • 重新插拔 USB 线,或运行以下命令,让 udev 规则生效:
    sudo udevadm control --reload-rules
    sudo udevadm trigger
  • 重新启动 adb 服务器
    sudo adb kill-server
    adb start-server
    问题:

    Rockchip use 0x2207 as its USB vendor ID. This VID is not in Google’s original fastboot code. So every fastboot command have to use “-i” parameter to specify vid to fastboot.
    To list all the Rockchip devices attached to your USB port in fastboot mode.

烧写模式

Loader 模式

在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。
进入Loader 模式的2种方式:

  • 按住RECOVERY(恢复)键上电启动,且 USB 处于连接状态
  • adb模式下,运行adb reboot bootloader,进入下载模式

    MaskRom 模式

    进不了bootloader时使用,主要是Loader损坏或出厂时

烧写

使用upgrade_tool烧写

# 擦除flash
sudo upgrade_tool ef update.img

#烧写统一固件 update.img:(使用较多)
sudo upgrade_tool uf update.img

#烧写分区镜像:
sudo upgrade_tool di -b /path/to/boot.img
sudo upgrade_tool di -k /path/to/kernel.img
sudo upgrade_tool di -s /path/to/system.img
sudo upgrade_tool di -r /path/to/recovery.img
#misc负责启动模式切换和急救模式的参数传递
sudo upgrade_tool di -m /path/to/misc.img
#resource.img内含开机图片和内核的设备树信息
sudo upgrade_tool di resource /path/to/resource.img
#烧写 parameter
sudo upgrade_tool di -p parameter.txt   
#烧写 bootloader
sudo upgrade_tool ul bootloader.bin 
#烧写 trust, 其中含有ATF以及休眠唤醒相关的文件
sudo upgrade_tool di trust /path/to/trust.img 

fastboot使用

#进入fastboot
adb reboot fastboot
#查看设备
fastboot -i 0x2207 devices
#临时从指定固件启动内核
fastboot -i 0x2207 boot xxx

#fastboot进入下载模式
fastboot reboot-bootloader

#unlock设备
#先执行
fastboot -i 0x2207 oem unlock
#然后在5s内执行 
fastboot -i 0x2207  oem unlock_accept

参考

  1. http://wiki.t-firefly.com/zh_CN/Core-3399-JD4/programming_firmware.html