R3300L Android相關的記錄


在尋找高版本Android固件的過程中遇到一個Android6.0的固件, 刷上去之后發現沒有Root. 因為原發布者設置了收費的QQ群, 固件開機圖上就是QQ群號, 滿以為交了錢之后應該能有Root教程, 結果完全沒有, 還被原發布者踢出群.

於是只能自己Root, 順便將礙眼的開機圖片換掉.

Root需要准備的材料

TTL引線

首先要將TTL連線引出, 這會涉及到焊板子

TTL轉USB線

我用的是PL2302芯片的TTL轉USB線, 這個在win7和ubuntu下都自帶有驅動. 對應的軟件Win7下建議用xshell或secureCRT, Ubuntu下建議使用GTKTerm

軟件

su和daemonsu: 這個要從同一類型(芯片組), 同一內核版本的已經Root的電視盒子固件上復制. 因為現在R3300L盒子的不同安卓版本其內核都是3.14.29, 所以這兩個文件是通用的.

SuperSu 和 RootExplorer: 前者是必須的, 后者可選

Root的過程

Root其實就是要將不帶uid限制的su和daemonsu(其實也是su)放到/system/xbin/ 下, 將其權限設為0755, 再運行 /system/xbin/daemonsu --auto-daemon & 命令讓daemon運行在后台, 然后在Android界面上運行SuperSU, 讓SuperSU完成最后的Root工作, 等SuperSU更新完文件提示重啟, Root就完成了.

實際的步驟要復雜一些

  • 首先要通過TTL訪問命令行, 這個固件在TTL啟動后, 直接是root shell, 所以這一步沒什么問題
  • 然后將/system分區掛載為可寫, 通過 mount -o rw,remount /system 命令實現
  • 將軟件都復制到U盤, 連上盒子之后, 在TTL Shell命令行將su, daemonsu復制到 /system/xbin/ 下, 並修改權限 chmod 0755 su daemonsu
  • 在安卓界面上安裝SuperSU, RootExplorer
  • 在TTL Shell命令行運行/system/xbin/daemonsu --auto-daemon &  然后ps檢查是否有daemon的進程
  • 在安卓界面運行SuperSU開始Root, 如果前面步驟正確, 這一步SuperSU會提示是否更新文件, 按普通更新即可, 等十幾秒后SuperSU會提示完成要重啟
  • 重啟后就不需要再運行daemonsu了, 直接運行SuperSU檢查Root結果

制作自帶Root的固件

制作已經Root的固件相對而言就更麻煩一點, 因為要把上面提到的要素都准備好, 並且固件當中可以改的只是 /system 下面的內容, 因為這些在 system分區下, 其他地方的內容是不方便修改的. 這邊涉及到的工具主要有linux下的工具 https://github.com/natinusala/linux-amlogic-toolkit  和windows下的解包和打包工具 Amlogic CustomizationTool. 前者的打包存在bug, 所以只用於對system.img進行修改, 后者用於制作最外層的解包打包.

用 linux-amlogic-toolkit 解開的 system 分區會掛載在 output/system/ 目錄下, 因為里面都是owner為root的文件, 所以要用sudo進行修改, 將su和daemonsu復制進 xbin目錄, 並修改權限為 0755, chown 為 root:2000 (這個根據目錄里其他文件的屬性進行修改), 然后將前一步中安裝好的SuperSU, RootExplorer 的安裝目錄(在 /data/app) 復制過來, 放到這里的app目錄下, 檢查並確認權限和owner是否和其他的app一樣. 這樣文件都准備好了. 還缺一個隨開機啟動的 daemonsu.

這時候要檢查一下運行中的盒子, 看看根目錄下的 init.rc 這個文件, 查找service 關鍵詞, 能看到一系列開機啟動的服務, 看看其中有沒有這條 service ... /system/bin/install-recovery.sh, 這個路徑不是固定的, 有些系統放在了 /system/etc/下, 確定位置后, 直接修改(或創建) install-recovery.sh 文件, 寫入以下內容

#!/system/bin/sh

# Run SuperSU deamon
/system/xbin/daemonsu --auto-daemon &

.再chmod 0755 將文件屬性改為可執行, 這樣就都准備好了.

接下來就是再通過 linux-amlogic-toolkit 的recreate 將system分區打包為 system.PARTITION, 然后通過 CustomizationTool 將固件解包(只需要解level1), 將system.PARTITION 替換成新的, 再打包, 一個自帶Root的固件就完成了.

在固件刷機完啟動后, 在界面上運行SuperSU按提示更新文件, 待更新完文件重啟后, 新系統就已經Root了.

TWRP 3.0.2.0 Recovery

可以使用S905X的TWRP作為S905L的recovery, 文件在 https://github.com/botfap/A95X-Linux-BuildEnv/tree/master/recovery

相比系統自帶的recovery, TWRP的命令行各種命令是相當完整的, 幾乎等價於一個小linux系統. TWRP的使用方式有兩種:

  • 格式化一個U盤或TF卡, 我使用的是一張2G的TF卡, 格式化為FAT, 將 twrp-s905x.img-v3.0.2 文件重命名為 recovery.img, 放到TF卡根目錄下, 連上盒子, 用reboot update啟動
  • 將 twrp-s905x.img-v3.0.2 重命名為 recovery.PARTITION, 直接打包在固件里, 這樣系統進入recovery時, 就是TWRP recovery了.

修改Logo和Bootanimation

修改Logo, 直接在linux-amlogic-toolkit 解開的 /output/logo/ 目錄中替換 bootup 文件就可以了. 圖像文件必須是BMP格式的16bit或者24bit, 不支持8bit(這個試過, 肯定不行), 再recreate 后, 用生成的 logo.PARTITION去打包.

修改bootanimiation, 在 /system/media 下, 替換 bootanimation.zip, 根據Google的格式說明 , 里面分兩部分, 一部分是desc.txt, 一部分是包含順序文件名的png文件的目錄.

desc.txt文件格式

# Line1
WIDTH HEIGHT FPS

    WIDTH: animation width (pixels)
    HEIGHT: animation height (pixels)
    FPS: frames per second, e.g. 60

# Line 2 ~ N:
TYPE COUNT PAUSE PATH [#RGBHEX [CLOCK1 [CLOCK2]]]

    TYPE: a single char indicating what type of animation segment this is:
        p -- this part will play unless interrupted by the end of the boot
        c -- this part will play to completion, no matter what
    COUNT: how many times to play the animation, or 0 to loop forever until boot is complete
    PAUSE: number of FRAMES to delay after this part ends
    PATH: directory in which to find the frames for this part (e.g. part0)

注意目錄里的圖片不能太多, 最好控制在50張以內, FPS也不能太高, 最好在20以內, WIDTH和HEIGHT設置得不對會導致動畫不顯示. 另外bootanimation.zip的權限也要設置為0644, 否則系統無法讀取, 就會顯示默認的ANDROID動畫字符.

在Ubuntu下打zip包的命令如下, 用winrar這類工具打包的似乎系統不認.

zip -0qry -i \*.txt \*.png \*.wav @ ../bootanimation.zip *.txt part*

 

Preinstallapps

在/system/media 目錄下還有一個 preinstallapps.tar 文件, 這個是用來在第一次啟動時預裝app的, 調用在/system/bin/preinstallapps.sh, 由某處 init.*觸發. 如果要清理的話最好在rm之后touch一個同名空文件在那里, 避免啟動時錯誤.

TTL Shell

在TTL Shell里可以通過 /system/etc/mkshrc 這個文件執行一些初始化命令, 功能等價於.profile 或者 .bashrc, 在里面綁一些alias.

播放H.265 X265 10bit格式的視頻

在運行安卓6的R3300L上, 用最新的VLC 3.2.3, 小白播放器1.2.0都無法正常播放HEVC H.265/X265 10bit的視頻, 具體表現為, 如果使用硬解則聲音正常顯示花屏, 如果使用軟解則聲音正常顯示停滯. MX Player因為沒下載到v7a的版本, 所以沒法測試. 能完美播放的是SPMC-16.7.4, 下載地址為 https://github.com/koying/SPMC/releases/download/16.7.4-spmc/SPMC-16.7.4-spmc-94d913d-armeabi-v7a.apk 因為SPMC是Kodi的folk, 本身帶了播放局域網SMB視頻的能力, 所以可以完全取代VLC和小白播放器了.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM