User版本开机异常/无法开机,如何抓取log
User版本出现开机异常, 无法开机,如何抓取log 资讯
 
 
首先需要确认开机异常发生在哪个阶段。
1. 没有任何LOGO 显示;       在 LK 或者以前就出现异常,此时直接拉出uart 抓取uart log 即可。
   因默认uart log, 到进入kernel 后才关闭,所以case 1, 只需要直接拉出uart, 接入即可抓到LOG。
2. 只显示第一个LOGO:        可能卡在LK 或者kenrel 启动过程中,此时需要拉出uart ,并且打开kernel 的uart log.
   参考[FAQ: 如何在User版本开启串口(Uart),开启输入控制台,抓取上层Log].

3. 显示第二个Loading LOGO:  卡在init 进程以后,到开机动画之前,此时需要拉出uart, 并且抓取android 上层main log.
4. 进入开机动画及以后:       卡在android 上层启动过程中,此时需要抓取android 上层main log(必要),以及uart log(不是必须).
针对Case 3, 4, 可以按照下面的流程执行:
(1).  
  (1.1).如果是JB 4.1 以及以后版本,直接修改函数should_drop_privileges() 函数, 清空这个函数,直接返回 0 即可。返回0 即开启root 权限。
        static init should_drop_privileges(){
            #ifndef ALLOW_ADBD_ROOT
                return 0; //MTK71029 Update for release root role.
            #else
                ……….
        }
M版:alps/system/core/adb/adb_main.cpp
N/O版:alps/system/core/adb/daemon/main.cpp
static bool should_drop_privileges() {
return 0; //MTK Update for release root role.
......
}
(1.2).如果是JB 4.1 以前版本,直接修改函数adb_main 函数,在
     /* don't listen on a port (default 5037) if running in secure mode */
     /* don't run as root if we are running in secure mode */
    if (secure) {
        struct __user_cap_header_struct header;
        struct __user_cap_data_struct cap;
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) {
            exit(1);
        }
   
  在这段代码前加一行:
secure = 0;  //mtk71029 add for root forever.
/* don't listen on a port (default 5037) if running in secure mode */
      /* don't run as root if we are running in secure mode */
     if (secure) {
          struct __user_cap_header_struct header;
          struct __user_cap_data_struct cap;
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) {
              exit(1);
          }
(1.3) Uart 控制台的开启以及adb debug 默认启动,决定于System property ro.debuggable,默认如果ro.debuggable=1 则开启(Eng 版本),User 版本ro.debuggable=0 则关闭。
      想在User 版本中打开,需要更新alps/mediatek/config/mt6xxx/init.rc (M版以后在alps/system/core/rootdir/init.rc), 在init.rc 的触发器代码:
        on property:ro.debuggable=1
            start console
        后面增加:
        假如是android 4.0 以及以后的版本:
        on property:ro.debuggable=0
            start console
            setprop persist.sys.usb.config mass_storage,adb
        假如是android 4.0 以前的版本:
        on property:ro.debuggable=0
            start console
            setprop persist.service.adb.enable 1
(1.4) 如果是KK 4.4 版本以后, User 版本默认开启了adb 的RSA 指纹验证, 可以参考FAQ:  ID: FAQ10781 如何开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证) http://online.mediatek.inc/Pages/FAQ.aspx?List=SW&FAQID=FAQ10781
        修改alps/build/core/main.mk 
  ifeq (true,$(strip $(enable_target_debugging)))
    # Target is more debuggable and adbd is on by default
    ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1
    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0 ==> 如果想在ENG Load关闭认证功能,ro.adb.secure=0
    # Include the debugging/testing OTA keys in this build.
    INCLUDE_TEST_OTA_KEYS := true
  else # !enable_target_debugging
    # Target is less debuggable and adbd is off by default
    ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0
    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0 ==> 如果想在USER Load关闭认证功能,ro.adb.secure=0
  endif # !enable_target_debugging
对于M/N版本:
alps/device/mediatek/mt6xxx/device.mk#
ifneq ($(TARGET_BUILD_VARIANT),user)
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0
else
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0 ==> 如果想在USER Load关闭认证功能,ro.adb.secure=0
endif
对于O版本:
alps/build/core/main.mk  和  alps/build/make/core/main.mk
ifeq ($(user_variant),user)
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0 ==> 如果想在USER Load关闭认证功能,ro.adb.secure=0
endif
(1.5) 如果是L 版本, 需要手动关闭SELinux, 请参考FAQ: [SELinux] FAQ11484 如何设置确认selinux 模式
        http://online.mediatek.inc/Pages/FAQ.aspx?List=SW&FAQID=FAQ11484
      更新bootable/bootloader/lk/platform/mt6xxx/rules.mk
            # choose one of following value -> 1: disabled/ 2: permissive /3: enforcing
            SELINUX_STATUS := 3
            调整这个SELINUX_STATUS这个的值为 2
修改system/core/init/Android.mk 新增
           ifeq ($(strip $(TARGET_BUILD_VARIANT)),user)
                LOCAL_CFLAGS += -DALLOW_DISABLE_SELINUX=1
            endif
(2).  编译对应手机user 版本的bootimage, 如 mt6577v2_phone 即为你的project name 时:
        ./mk -o=TARGET_BUILD_VARIANT=user  mt6577v2_phone bootimage new
(3).  通过flashtool 只刷这个新编译的bootimage
(4).  插入USB adb 就默认以root 权限连接上,插入UART(UART 已经拉出), 输入aee -k 6 即可看到kernel log, 以及输入. adb 也默认已经开启。

MTK 驱动(80)---MTK平台User版本开机异常/无法开机,如何抓取log相关推荐

  1. 高通平台Android 蓝牙调试和配置手册--如何抓取log

    1.Android蓝牙调试概述 使用本文档可以使用以下方法调试一些常见的蓝牙问题: ■ Android主机日志(ADB logcat) ■ 蓝牙日志 ■ 音频配置文件日志 ■ 数据配置文件日志 ■ G ...

  2. MTK样机抓取log

    抓取log 首先样机开机,用usb连接样机和电脑,测试一下能否用adb操作手机 然后样机手在屏幕上往上划一下,就可以看到电话按钮,点进去拨号"*#*#3646633#*#*"就会进 ...

  3. 如何debug preloader bootup time 问题以及开机过程中preloader慢抓取 preload模块开机log

    [DESCRIPTION] 有时候bootup过程中,会出现preloader启动时间过程的问题.此FAQ帮助你如何去debug这个阶段的perfoamnce问题. 建议测试时一定要用user loa ...

  4. MTK 驱动(72)---如何初步定位异常关机问题

    如何初步定位异常关机问题 由于异常关机问题可能存在多种可能性(异常重启,异常关机,hang机,掉电),请务必厘清复现过程和手法,保留问题现场,以下信息请在提case的时候一起提供: 1.确认是亮屏关机 ...

  5. 小米Android系统限制联网,Android 7 以上版本,绕过CA限制,抓取https

    环境 手机:小米5A 系统:MIUI 10 电脑:win10 抓包:mitmdump (可替换成其他抓包软件) 电脑需要安装: mitmdump(可替换成任意抓包软件) adb openssl 背景 ...

  6. android camera2 qcom,Qcom平台 camera的一些知识点 之RAW图抓取

    前言 介绍camera sensor 输出的 raw 图,用于验证cam显示效果问题. 参考文档 : KBA-161204073328 目录 的 mask bit 定义 参数解释: /** * 参数解 ...

  7. MTK 驱动开发(41)---MTK 调试工具

    MTK Android software Tools工具的说明 MTK发布的Android software Tools工具包,里面包含了很多的MTK工具,如下是简要说明及学习文档 MTK Andro ...

  8. MTK 驱动开发(42)---GAT 工具使用

    GAT 工具介绍: 1.关于GAT GAT是MTK在DDMS基础上进行二次开发封装的一个集多种debug功能为一体的工具,除了包含原有DDMS的功能以外还支持kernel抓取,获取native进程列表 ...

  9. UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-1

    由于疫情原因不能进入实验室,遂学习在仿真环境gazebo下利用UR5机械臂搭建模拟平台,此模拟平台可以用于UR5机械臂通用视觉抓取平台.以下是个人总结一些观点,仅供参考. 运行环境:ubuntu16. ...

最新文章

  1. linux minicom usb串口
  2. 绝地求生国际服服务器维护到几点,绝地求生更新维护到今天几点?更新内容详细介绍...
  3. SAP ABAP实用技巧介绍系列之将unicode字符转换成中文
  4. jvm虚拟机_一文入门jvm虚拟机
  5. Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
  6. Java web后端1 XML URI与URL HTTP Tomcat
  7. LeetCode 427. 建立四叉树(递归)
  8. 再看序列化与反序列化[转]
  9. linux acl库编译与使用,linux的ACL-rds数据删除了可恢复吗?-WinFrom控件库|.net开源控件库|HZHControls官网...
  10. Spark:超越Hadoop MapReduce
  11. 读取内存数据,大航海家3的编辑器的一点思路
  12. java poi xml转word文档_使用POI转换word doc文件
  13. 明解C语言(入门篇)第十章
  14. 奶爸日记3 - 给鑫鑫做的第一顿饭
  15. 渐行渐远的是熟悉的身影
  16. 用上周的作业:画一个太阳、地球、月亮的运动模型来剖析OpenGL中变换乃至整个绘制的秘密
  17. java 如何利用ISAPI实现设置RTSP播放参数,代码怎么写
  18. matlab火箭升空,火箭升空原理
  19. 30个后台管理系统模板
  20. TiDB 报错: GC life time is shorter than transaction duration

热门文章

  1. 高性能自旋锁 MCS Spinlock 的设计与实现(来自IBM)
  2. UDP \TCP详详详详解,你想要的全都有(呕心沥血)
  3. linux c 守护线程,关于守护线程
  4. 【Java数据结构与算法】第一章 稀疏数组和队列
  5. JAVA反射-面试题
  6. 微信小程序|开发实战篇之request请求(单个、多个参数,json对象,header)
  7. 分页——SQL Server 对比 MySQL
  8. HTTP之get post
  9. 正弦 sin 余弦 cos
  10. 如何成为一名好的研究生