<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          展訊平臺(tái)手機(jī)重啟問(wèn)題分析指南

          共 3966字,需瀏覽 8分鐘

           ·

          2020-11-01 02:50

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

          一、 User 版本 默認(rèn)開啟 sysdump 方法
          二、插入SD卡 抓取Sysdump log
          三、 sysdump log 分析
          四、展訊平臺(tái)抓取重啟 串口log的方案
          五、展訊平臺(tái)判斷重啟類型
          六、展訊平臺(tái)關(guān)閉 sysdump 與watchdog關(guān)聯(lián)
          七、展訊平臺(tái)手動(dòng)觸發(fā)sysdump 方法

          一、 User 版本 默認(rèn)開啟 sysdump 方法

          首先,為什么要這么干?
          主要原因是,展訊平臺(tái)部分重啟問(wèn)題,同樣的代碼,userdebug?版本無(wú)法復(fù)現(xiàn),User?版本 可以復(fù)現(xiàn),這樣才有此默認(rèn)開啟sysdump的方案。

          1.展訊平臺(tái)user版本默認(rèn)開啟sysdump?方案

          修改方案如下:
          device\sprd\xxxx\common\rootdir\root\init.common.rc
          在?on post-fs-data?下添加:

          // 設(shè)置 Ylog 默認(rèn)開啟開關(guān) 1 開啟,0或不寫 關(guān)閉
          setprop persist.ylog.enabled 1
          start ylog
          // 設(shè)置sysdump 默認(rèn)開關(guān)屬性值 開啟為true 關(guān)閉 false
          setprop debug.sysdump.enabled true
          setprop persist.sys.eng.reset 0

          在代碼中添加后,可以進(jìn)行一下操作查看是否成功

          2.確認(rèn)是否開啟sysdump

          *#*#83781#*#* (進(jìn)入工程模式菜單)?->DEBUG&LOG?->?YLog->?Setting?->?Sysdump Enable (開啟sysdump)

          3. 確認(rèn)是否開 Ylog

          *#*#83781#*#*(進(jìn)入工程模式菜單)->DEBUG&LOG?->?YLog (開啟ylog)

          Ylog關(guān)閉,sysdump 開關(guān)默認(rèn)開啟

          二、插入SD卡 抓取Sysdump log

          1. 注意事項(xiàng) 一定要 插入4G及以上的SD卡,否則無(wú)法抓的重啟的dump log

          一定要 插入4G及以上的SD卡,否則無(wú)法抓的重啟的dump log

          三、 sysdump log 分析

          插入SD 卡后,成功dump log信息如下:

          dump log 成功的界面

          dump log成功后,我們需要解析?sysdump log,解析過(guò)程中需要使用對(duì)應(yīng)版本的?vmlinux(out/target/product/sp9832e_1h10_go/obj/KERNEL/vmlinux) 以及
          crash_arm?(vendor/sprd/tools/crash/crash_arm) 解析腳本來(lái)解析dumpcore?文件。

          新建解析dump log目錄

          1. 將?vmlinux?、crash_arm、?sysdump log?放置同一目錄

          cp out/target/product/sp9832e_1h10_go/obj/KERNEL/vmlinux  reboot/
          cp vendor/sprd/tools/crash/crash_arm reboot/

          將 vmlinux crash_arm sysdump log 放置同一目錄

          2. 將?sysdump?所有文件 追加到一個(gè)文件中

          將sysdump 所有文件 追加到一個(gè)文件中

          3. 使用?crash_arm?腳本 聯(lián)合?vmlinux?解析?sysdump log

          使用 crash_arm 腳本 聯(lián)合 vmlinux 解析sysdump log

          4. 使用?Log?命令 將?Crash log追加到指定文件中

          使用 log 命令 讀取log 到指定文件

          5. 查看log,分析重啟的具體原因

          重啟log舉例

          6.參考調(diào)試命令

          32 位系統(tǒng)調(diào)試命令

          ./crash_arm -m phys_base=0X80000000 --cpus number2 vmlinux  all

          64 位系統(tǒng)調(diào)試命令

          ./crash_arm64 vmlinux all -m phys_offset=0x80000000

          四、展訊平臺(tái)抓取重啟 串口log的方案

          1. 調(diào)高?Kernel log?等級(jí)為?7

          修改代碼路徑如下:
          kernel/arch/arm/boot/dts/.dts,將bootargs = ""里修改loglevel字段?1?修改為?7?loglevel=7, console=ttyS1,115200n8?。

          搜索關(guān)鍵字?loglevel?即可。

          調(diào)高 **Kernel log** 等級(jí)為 **7**

          2. 將?logcat log?重定向到 串口

          修改init.common.rc代碼(device/sprd/sharkle/common/rootdir/root/init.common.rc)。
          在?init?腳本中添加?logcat?重定向?Service?.

          +service logcat /system/bin/logcat -f /dev/kmsg *:w
          + class main
          + user root
          + group log
          + oneshot

          on boot
          chown system system /proc/wcn_gnss/start
          chown system system /proc/wcn_gnss/stop

          3. disabble SElinux

          在?init.cpp?(/system/core/init/init.cpp)中,讓selinux_is_enforcing(void)函數(shù)直接返回false,同時(shí)注掉selinux_status_from_cmdline()函數(shù)。

          #if 0
          static selinux_enforcing_status selinux_status_from_cmdline() {
          selinux_enforcing_status status = SELINUX_ENFORCING;

          import_kernel_cmdline(false, [&](const std::string& key, const std::string& value, bool in_qemu) {
          if (key == "androidboot.selinux" && value == "permissive") {
          status = SELINUX_PERMISSIVE;
          }
          });

          return status;
          }
          #endif

          static bool selinux_is_enforcing(void)
          {
          #if 0
          if (ALLOW_PERMISSIVE_SELINUX) {
          return selinux_status_from_cmdline() == SELINUX_ENFORCING;
          }
          return true;
          #else
          return false;
          #endif
          }

          五、展訊平臺(tái)判斷重啟類型

          1. 在main.log?中查看

          在?main.log?中搜索關(guān)鍵字?bootmode

          搜索關(guān)鍵字 bootmode

          2.在?phone.info?文件中查看

          在?Ylog?->poweron->aplog?目錄下的phone.info?文件中 搜索關(guān)鍵字?bootmode

          搜索關(guān)鍵字 bootmode

          3. 在Sysdump中查看觸發(fā)重啟dump的類型

          重啟類型信息保存文件路徑

          Kernel panic 重啟

          手動(dòng)觸發(fā)sysdump 重啟

          六、展訊平臺(tái)關(guān)閉 sysdump 與watchdog關(guān)聯(lián)

          關(guān)閉sysdump?與watchdog關(guān)聯(lián),防止開啟sysdumpwatchdog被默認(rèn)關(guān)閉,導(dǎo)致無(wú)法抓取復(fù)現(xiàn)到重啟logdump。

          修改文件路徑如下:

          kernel/drivers/soc/sprd/debug/sysdump/sysdump.c

                      sysdump_status = 1;
          sprd_set_reboot_mode("dumpenable");
          set_sysdump_enable(1);
          //****************
          - sysdump_enable_watchdog(0);
          //*************
          } else if (!strncmp(sysdump_buf, "off", 3)) {
          pr_emerg("sprd_sysdump_write: disable user version sysdump!!!\n");
          sysdump_status = 0;

          刪除 sysdump_enable_watchdog

          七、展訊平臺(tái)手動(dòng)觸發(fā)sysdump方法

          1. 在Kernel未完全死掉時(shí)候,觸發(fā)SWT(優(yōu)先方案)

          手動(dòng)觸發(fā)方案:
          同時(shí)按住音量+ 、音量- 、然后雙擊Power鍵

          2. 在Kernel完全死掉,觸發(fā)HWT

          手動(dòng)觸發(fā)方案:
          長(zhǎng)按Power 鍵、 音量+

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除。同時(shí)感謝您的閱讀,期待您的關(guān)注。

          瀏覽 178
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色男人男人天堂 | 精品久久中文字幕 | 黄色片日逼 | 日韩欧美亚洲色图 | 久久高清视频免费 |