zoukankan      html  css  js  c++  java
  • recovery debug

    sm8150平台,在recovery enable adb

    需要mount system。

    参考recovery程序的prompt_and_wait()函数,添加如下代码到recovery main函数:

            // For a system image built with the root directory (i.e. system_root_image == "true"), we
            // mount it to /system_root, and symlink /system to /system_root/system to make adb shell
            // work (the symlink is created through the build system). (Bug: 22855115)
    		
            if (android::base::GetBoolProperty("ro.build.system_root_image", false)) {
              if (ensure_path_mounted_at("/", "/system_root") != -1) {
                ui->Print("Mounted /system.
    ");
              }
            } else {
              if (ensure_path_mounted("/system") != -1) {
                ui->Print("Mounted /system.
    ");
              }
            }
    

    buildcoreMakefile文件修改如下:

      $(if $(filter true,$(BOARD_BUILD_SYSTEM_ROOT_IMAGE)), 
        $(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/system_root; 
                rm -rf $(TARGET_RECOVERY_ROOT_OUT)/system; 
                ln -sf /system_root/system $(TARGET_RECOVERY_ROOT_OUT)/system) # Mount the system_root_image to /system_root and symlink /system.
      $(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
    

    注意:
    1:android P后,system引入了system-as-root即把system和ramdisk打包进system镜像。ro.build.system_root_image=true说明使能该feature。
    2:默认访问system的路径是/system,所以需要在系统编译时候创建/system符号链接指向/system_root/system,即使system镜像还没有挂载到/system_root,也可以创建。
    3:make recoveryimage

    sm8150平台,在recovery enable logcat

    参考文档:
    kba-170702195543_2_how_to_get_the_logcat_log_in_the_recovery_mode.pdf

    前提是需要mount system。
    但是recovery程序log无法输出到logcat buffer。

    bootable ecoveryetcinit.rc添加如下:

    service logd /system/bin/logd
        socket logd stream 0666 logd logd
        socket logdr seqpacket 0666 logd logd
        socket logdw dgram+passcred 0222 logd logd
        file /proc/kmsg r
        file /dev/kmsg w
        user logd
        group logd system package_info readproc
        writepid /dev/cpuset/system-background/tasks
    
       start logd
    
  • 相关阅读:
    php 微信调用扫一扫
    JavaSE常用API
    Java中的异常处理
    Java实现多态的机制是什么?
    JavaSE(下)
    JavaSE语法(中)
    JavaSE语法
    Java面向对象
    Java零基础入门之常用工具
    Java抽象类、接口、内部类
  • 原文地址:https://www.cnblogs.com/bobfly1984/p/14091262.html
Copyright © 2011-2022 走看看