更新Android開發板內部檔案的方法

Note of Updating Files on Android Development Board

Posted by imprld01 on Saturday, January 22, 2022

目錄


對於Android裝置內建程式開發者而言,在開發時如果要更改內建的程式,一般會透過重新安裝 updated image 來測試程式功能,但重複燒入新的 image 做測試不但費時也費力。

事實上,Android平台提供方便的debug工具,能夠讓開發者方便上傳、下載Android平台上的檔案。

依照平台性質需要關閉一些 Android 的保護功能,再設定目標資料夾的讀寫權限,好讓讀寫功能可以運作,下面分為三個步驟,可依照需求作為參考:

讀寫權限

  • 提前關閉 SELinux SELinux 、並關閉 AVB 功能 Android Verified Boot (AVB)

  • 查詢開發板特定資料夾的讀寫權限,rw 表示可讀寫 (read-write),ro 表示僅可讀 (read-only)

    mount
    

使用ADB或COM Port

  • 從遠端透過 ADB PULL 與 ADB PUSH 的方式替換檔案,分為兩個小步驟:
    1. 更改特定資料夾的權限為 rw (可讀寫),下面有兩種方式可以選擇:

      1. 方式一:從 UART 下指令,remount 特定資料夾權限為 rw (可讀寫)

        su
        mount –o rw,remount /vendor
        
      2. 方式二:透過 ADB 從遠端下指令,remount 特定資料夾權限為 rw (可讀寫)

        adb connect TARGET_IP_ADDRESS:5555
        adb shell
        su
        mount –o rw -o remount /vendor
        exit
        
    2. 替換目標檔案,下面有兩種方式可以選擇:

      1. 方式一:從 USB 複製,替換目標檔案

        • 從 UART 下指令

          su
          cd /vendor/lib
          cp /mnt/media_rw/YOUR_USB_ID/libapp.so .
          
        • 從 ADB 下指令

          adb connect TARGET_IP_ADDRESS:5555
          adb shell
          su
          cd /vendor/lib
          cp /mnt/media_rw/YOUR_USB_ID/libapp.so .
          exit
          
      2. 方式二:從遠端複製,替換目標檔案

        • 從 ADB 下指令:讓 adb 取得 root 權限,並 remount 後,才能改動安卓平台的檔案

          adb connect TARGET_IP_ADDRESS:5555
          adb root
          adb remount
          adb push LOCAL_FILE_PATH ANDROID_TARGFET_FILE_PATH
          

          另外,也可以從 android 平台複製資料出來,不用透過USB傳輸:

          adb connect TARGET_IP_ADDRESS:5555
          adb root
          adb pull ANDROID_TARGFET_FILE_PATH LOCAL_FILE_PATH
          

comments powered by Disqus