recovery log直接輸出到串口


我們在調試recovery升級的時候,我們經常需要查看recoveryloggoogle的原始邏輯中,recoverylog並非直接輸出到串口,我們需要輸入命令才能獲取,我們有三種方式:

 

    第一種:recovery下,遙控器選擇view recovery logs界面上查看。

    第二種:recovery下,輸入命令,cat /tmp/recovery.log

    第三種:android下,輸入命令,cat  /cache/recovery/last_log

 

 

    有時候我們需要把recoverylog直接輸出到終端串口,則我們需要修改下recovery的代碼即可,下面以android L5.1)版本的代碼修改說明下:

bootable/recovery/recovery.cpp

 

static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log"; static void redirect_stdio(const char* filename) { // If these fail, there's not really anywhere to complain... freopen(filename, "a", stdout); setbuf(stdout, NULL); freopen(filename, "a", stderr); setbuf(stderr, NULL); } Int main(int argc, char **argv) { time_t start = time(NULL); 
   redirect_stdio(TEMPORARY_LOG_FILE);

}

 
        

 

 
        

 

我們只需要把redirect_stdio函數的參數,有”/tmp/recovery.log”修改為”/dev/console”即可。redirect_stdio(”/dev/console”); 不同的平台可能有所不一樣,可以先這樣驗證,echo “111111111” > /dev/console,檢驗下是否能夠把打印正常輸出到串口。


免責聲明!

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



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