Android USB驱动中,上层应用协议里最重要的一个文件是android/kernel/drivers/usb/gadget/android.c。这个文件实现USB的上层应用协议。

首先包含了一些系统级别的头文件,如模块、电源管理、of API等

  1. /*
  2. * Gadget Driver for Android
  3. *
  4. * Copyright (C) 2008 Google, Inc.
  5. *.Copyright (c) 2014, The Linux Foundation. All rights reserved.
  6. * Author: Mike Lockwood <lockwood@android.com>
  7. * Benoit Goby <benoit@android.com>
  8. *
  9. * This software is licensed under the terms of the GNU General Public
  10. * License version 2, as published by the Free Software Foundation, and
  11. * may be copied, distributed, and modified under those terms.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. */
  19.  
  20. #include <linux/init.h>
  21. #include <linux/module.h>
  22. #include <linux/fs.h>
  23. #include <linux/delay.h>
  24. #include <linux/kernel.h>
  25. #include <linux/utsname.h>
  26. #include <linux/platform_device.h>
  27. #include <linux/pm_qos.h>
  28. #include <linux/of.h>

然后是跟USB驱动本身先关的头文件

  1. #include <linux/usb/ch9.h>
  2. #include <linux/usb/composite.h>
  3. #include <linux/usb/gadget.h>
  4. #include <linux/usb/android.h>
  5.  
  6. #include <linux/qcom/diag_dload.h>
  7.  
  8. #include "gadget_chips.h"

然后包含了一堆实现上层USB应用协议的c文件

  1. #include "f_fs.c"
  2. #ifdef CONFIG_SND_PCM
  3. #include "f_audio_source.c"
  4. #endif
  5. #include "f_mass_storage.c"
  6. #define USB_ETH_RNDIS y
  7. #include "f_diag.c"
  8. #include "f_qdss.c"
  9. #include "f_rmnet_smd.c"
  10. #include "f_rmnet.c"
  11. #include "f_gps.c"
  12. #include "u_smd.c"
  13. #include "u_bam.c"
  14. #include "u_rmnet_ctrl_smd.c"
  15. #include "u_rmnet_ctrl_qti.c"
  16. #include "u_ctrl_hsic.c"
  17. #include "u_data_hsic.c"
  18. #include "u_ctrl_hsuart.c"
  19. #include "u_data_hsuart.c"
  20. #include "f_ccid.c"
  21. #include "f_mtp.c"
  22. #include "f_accessory.c"
  23. #include "f_rndis.c"
  24. #include "rndis.c"
  25. #include "f_qc_ecm.c"
  26. #include "f_mbim.c"
  27. #include "f_qc_rndis.c"
  28. #include "u_bam_data.c"
  29. #include "f_ecm.c"
  30. #include "u_ether.c"
  31. #include "u_qc_ether.c"
  32. #ifdef CONFIG_TARGET_CORE
  33. #endif
  34. #ifdef CONFIG_SND_PCM
  35. #include "u_uac1.c"
  36. #include "f_uac1.c"
  37. #endif
  38. #include "f_ncm.c"
  39. #include "f_charger.c"

上边的宏 CONFIG_SND_PCM 有定义,宏 CONFIG_TARGET_CORE 未定义

然后是Linux驱动中常见的宏声明,定义了作者、描述、LICENSE、版本号

  1. MODULE_AUTHOR("Mike Lockwood");
  2. MODULE_DESCRIPTION("Android Composite USB Driver");
  3. MODULE_LICENSE("GPL");
  4. MODULE_VERSION("1.0");

下面定义的变量未使用

  1. static const char longname[] = "Gadget Android";

Google自己申请的VID与PID的宏,可以在用户空间的init.**.usb.rc文件里被覆写

  1. /* Default vendor and product IDs, overridden by userspace */
  2. #define VENDOR_ID 0x18D1
  3. #define PRODUCT_ID 0x0001

宏 #define ANDROID_DEVICE_NODE_NAME_LENGTH 11 定义 /sys/class/android_usb/ 下的文件节点android0之类的文件名最大长度

结构体 android_usb_function 抽象了Android自定义的用来hook Linux USB驱动框架中的相应功能的功能函数

  1. struct android_usb_function {
  2. char *name;
  3. void *config;
  4.  
  5. struct device *dev;
  6. char *dev_name;
  7. struct device_attribute **attributes;
  8.  
  9. struct android_dev *android_dev;
  10.  
  11. /* Optional: initialization during gadget bind */
  12. int (*init)(struct android_usb_function *, struct usb_composite_dev *);
  13. /* Optional: cleanup during gadget unbind */
  14. void (*cleanup)(struct android_usb_function *);
  15. /* Optional: called when the function is added the list of
  16. * enabled functions */
  17. void (*enable)(struct android_usb_function *);
  18. /* Optional: called when it is removed */
  19. void (*disable)(struct android_usb_function *);
  20.  
  21. int (*bind_config)(struct android_usb_function *,
  22. struct usb_configuration *);
  23.  
  24. /* Optional: called when the configuration is removed */
  25. void (*unbind_config)(struct android_usb_function *,
  26. struct usb_configuration *);
  27. /* Optional: handle ctrl requests before the device is configured */
  28. int (*ctrlrequest)(struct android_usb_function *,
  29. struct usb_composite_dev *,
  30. const struct usb_ctrlrequest *);
  31. };

结构体 android_usb_function_holder 持有所有的当前支持的可以实现的USB设备

  1. struct android_usb_function_holder {
  2.  
  3. struct android_usb_function *f;
  4.  
  5. /* for android_conf.enabled_functions */
  6. struct list_head enabled_list;
  7. };

结构体 android_dev 抽象了android USB gadget device,即 /sys/class/android_usb 下的 android0 等节点(目前就一个)

  1. /**
  2. * struct android_dev - represents android USB gadget device
  3. * @name: device name.
  4. * @functions: an array of all the supported USB function
  5. * drivers that this gadget support but not necessarily
  6. * added to one of the gadget configurations.
  7. * @cdev: The internal composite device. Android gadget device
  8. * is a composite device, such that it can support configurations
  9. * with more than one function driver.
  10. * @dev: The kernel device that represents this android device.
  11. * @enabled: True if the android gadget is enabled, means all
  12. * the configurations were set and all function drivers were
  13. * bind and ready for USB enumeration.
  14. * @disable_depth: Number of times the device was disabled, after
  15. * symmetrical number of enables the device willl be enabled.
  16. * Used for controlling ADB userspace disable/enable requests.
  17. * @mutex: Internal mutex for protecting device member fields.
  18. * @pdata: Platform data fetched from the kernel device platfrom data.
  19. * @connected: True if got connect notification from the gadget UDC.
  20. * False if got disconnect notification from the gadget UDC.
  21. * @sw_connected: Equal to 'connected' only after the connect
  22. * notification was handled by the android gadget work function.
  23. * @suspended: True if got suspend notification from the gadget UDC.
  24. * False if got resume notification from the gadget UDC.
  25. * @sw_suspended: Equal to 'suspended' only after the susped
  26. * notification was handled by the android gadget work function.
  27. * @pm_qos: An attribute string that can be set by user space in order to
  28. * determine pm_qos policy. Set to 'high' for always demand pm_qos
  29. * when USB bus is connected and resumed. Set to 'low' for disable
  30. * any setting of pm_qos by this driver. Default = 'high'.
  31. * @work: workqueue used for handling notifications from the gadget UDC.
  32. * @configs: List of configurations currently configured into the device.
  33. * The android gadget supports more than one configuration. The host
  34. * may choose one configuration from the suggested.
  35. * @configs_num: Number of configurations currently configured and existing
  36. * in the configs list.
  37. * @list_item: This driver supports more than one android gadget device (for
  38. * example in order to support multiple USB cores), therefore this is
  39. * a item in a linked list of android devices.
  40. */
  41. struct android_dev {
  42. const char *name;
  43. struct android_usb_function **functions;
  44. struct usb_composite_dev *cdev;
  45. struct device *dev;
  46.  
  47. void (*setup_complete)(struct usb_ep *ep,
  48. struct usb_request *req);
  49.  
  50. bool enabled;
  51. int disable_depth;
  52. struct mutex mutex;
  53. struct android_usb_platform_data *pdata;
  54.  
  55. bool connected;
  56. bool sw_connected;
  57. bool suspended;
  58. bool sw_suspended;
  59. char pm_qos[];
  60. struct pm_qos_request pm_qos_req_dma;
  61. struct work_struct work;
  62. char ffs_aliases[];
  63.  
  64. /* A list of struct android_configuration */
  65. struct list_head configs;
  66. int configs_num;
  67.  
  68. /* A list node inside the android_dev_list */
  69. struct list_head list_item;
  70. };

结构体 android_configuration 抽象USB设备传送给HOST的配置信息

  1. struct android_configuration {
  2. struct usb_configuration usb_config;
  3.  
  4. /* A list of the functions supported by this config */
  5. struct list_head enabled_functions;
  6.  
  7. /* A list node inside the struct android_dev.configs list */
  8. struct list_head list_item;
  9. };

下面的变量跟9006模式有关,即ramdupm(download)

  1. struct dload_struct __iomem *diag_dload;

下面的变量是对Android USB的 /sys/class/android_usb 目录的抽象

  1. static struct class *android_class;

下边的变量是android dev的list和数量,对应的是 /sys/class/android_usb 目录下的“android0”之类的目录

  1. static struct list_head android_dev_list;
  2. static int android_dev_count;

下边的函数在bind config和unbind config是调用

  1. static int android_bind_config(struct usb_configuration *c);
  2. static void android_unbind_config(struct usb_configuration *c);

下边的函数转换 usb_composite_dev 到 android_dev

  1. static struct android_configuration *alloc_android_config
  2. (struct android_dev *dev);

下边的函数分配和释放Android USB设备的configuration

  1. static struct android_configuration *alloc_android_config
  2. (struct android_dev *dev);
  3. static void free_android_config(struct android_dev *dev,
  4. struct android_configuration *conf);

下边的函数更新PID和USB串号

  1. static int usb_diag_update_pid_and_serial_num(uint32_t pid, const char *snum);

下边的宏和变量跟VID、PID、串号相关,会形成String表,保存在跟device string相关的变量 usb_gadget_strings 里

  1. /* string IDs are assigned dynamically */
  2. #define STRING_MANUFACTURER_IDX 0
  3. #define STRING_PRODUCT_IDX 1
  4. #define STRING_SERIAL_IDX 2
  5.  
  6. static char manufacturer_string[];
  7. static char product_string[];
  8. static char serial_string[];
  9.  
  10. /* String Table */
  11. static struct usb_string strings_dev[] = {
  12. [STRING_MANUFACTURER_IDX].s = manufacturer_string,
  13. [STRING_PRODUCT_IDX].s = product_string,
  14. [STRING_SERIAL_IDX].s = serial_string,
  15. { } /* end of list */
  16. };
  17.  
  18. static struct usb_gadget_strings stringtab_dev = {
  19. .language = 0x0409, /* en-us */
  20. .strings = strings_dev,
  21. };
  22.  
  23. static struct usb_gadget_strings *dev_strings[] = {
  24. &stringtab_dev,
  25. NULL,
  26. };

下边的结构体抽象出发送给HOST的USB设备描述符,可以通过文件节点 /sys/class/android_usb/android0 下的相应节点来查看和改变

  1. static struct usb_device_descriptor device_desc = {
  2. .bLength = sizeof(device_desc),
  3. .bDescriptorType = USB_DT_DEVICE,
  4. .bcdUSB = __constant_cpu_to_le16(0x0200),
  5. .bDeviceClass = USB_CLASS_PER_INTERFACE,
  6. .idVendor = __constant_cpu_to_le16(VENDOR_ID),
  7. .idProduct = __constant_cpu_to_le16(PRODUCT_ID),
  8. .bcdDevice = __constant_cpu_to_le16(0xffff),
  9. .bNumConfigurations = ,
  10. };

下边的结构体抽象出跟USB OTG相关的描述符,使用OTG,手机进入HOST模式

  1. static struct usb_otg_descriptor otg_descriptor = {
  2. .bLength = sizeof otg_descriptor,
  3. .bDescriptorType = USB_DT_OTG,
  4. .bmAttributes = USB_OTG_SRP | USB_OTG_HNP,
  5. .bcdOTG = __constant_cpu_to_le16(0x0200),
  6. };
  7.  
  8. static const struct usb_descriptor_header *otg_desc[] = {
  9. (struct usb_descriptor_header *) &otg_descriptor,
  10. NULL,
  11. };

枚举 android_device_state 描述设备的状态,有断开连接,连接,配置好,挂起,恢复 。工作时的状态是配置好

  1. enum android_device_state {
  2. USB_DISCONNECTED,
  3. USB_CONNECTED,
  4. USB_CONFIGURED,
  5. USB_SUSPENDED,
  6. USB_RESUMED
  7. };

下边的init函数在模块初始化时调用

  1. static int __init init(void)
  2. {
  3. int ret;
  4.  
  5. INIT_LIST_HEAD(&android_dev_list);
  6. android_dev_count = ;
  7.  
  8. ret = platform_driver_register(&android_platform_driver);
  9. if (ret) {
  10. pr_err("%s(): Failed to register android"
  11. "platform driver\n", __func__);
  12. }
  13.  
  14. /* HACK: exchange composite's setup with ours */
  15. composite_setup_func = android_usb_driver.gadget_driver.setup;
  16. android_usb_driver.gadget_driver.setup = android_setup;
  17. composite_suspend_func = android_usb_driver.gadget_driver.suspend;
  18. android_usb_driver.gadget_driver.suspend = android_suspend;
  19. composite_resume_func = android_usb_driver.gadget_driver.resume;
  20. android_usb_driver.gadget_driver.resume = android_resume;
  21.  
  22. return ret;
  23. }
  24. late_initcall(init);

首先,初始化Android设备list android_dev_list 和Android设备数 android_dev_count 为0,然后注册platform driver android_platform_driver 。最后,hook Linux USB驱动框架的复口USB驱动的setup、suspend、resume函数为本文件中定义的android_*****函数。变量 android_usb_driver 为 usb_composite_driver 类型结构体,用来hook系统的usb_composite框架下的相关函数,定义如下

  1. static struct usb_composite_driver android_usb_driver = {
  2. .name = "android_usb",
  3. .dev = &device_desc,
  4. .strings = dev_strings,
  5. .bind = android_bind,
  6. .unbind = android_usb_unbind,
  7. .disconnect = android_disconnect,
  8. .max_speed = USB_SPEED_SUPER
  9. };

本文件中的platform_driver相关配置如下,字符串 "android_usb_hsic" 没用到

  1. static const struct platform_device_id android_id_table[] = {
  2. {
  3. .name = "android_usb",
  4. },
  5. {
  6. .name = "android_usb_hsic",
  7. },
  8. };
  9.  
  10. static struct of_device_id usb_android_dt_match[] = {
  11. { .compatible = "qcom,android-usb",
  12. },
  13. {}
  14. };
  15.  
  16. static struct platform_driver android_platform_driver = {
  17. .driver = {
  18. .name = "android_usb",
  19. .of_match_table = usb_android_dt_match,
  20. },
  21. .probe = android_probe,
  22. .remove = android_remove,
  23. .id_table = android_id_table,
  24. };

probe函数如下,主要作用是分配相应私有、全局的data、list、mutex等变量,读取dts中的配置,设置到相应的结构体里去,在 /sys/class 下添加文件目录节点 ,将自身的驱动probe到usb composite框架中,并设置休眠唤醒参数。

  1. static int android_probe(struct platform_device *pdev)
  2. {
  3. struct android_usb_platform_data *pdata;
  4. struct android_dev *android_dev;
  5. struct resource *res;
  6. int ret = , i, len = ;
  7.  
  8. if (pdev->dev.of_node) {
  9. dev_dbg(&pdev->dev, "device tree enabled\n");
  10. pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
  11. if (!pdata) {
  12. pr_err("unable to allocate platform data\n");
  13. return -ENOMEM;
  14. }
  15.  
  16. of_property_read_u32(pdev->dev.of_node,
  17. "qcom,android-usb-swfi-latency",
  18. &pdata->swfi_latency);
  19.  
  20. len = of_property_count_strings(pdev->dev.of_node,
  21. "qcom,streaming-func");
  22. if (len > MAX_STREAMING_FUNCS) {
  23. pr_err("Invalid number of functions used.\n");
  24. return -EINVAL;
  25. }
  26.  
  27. for (i = ; i < len; i++) {
  28. const char *name = NULL;
  29.  
  30. of_property_read_string_index(pdev->dev.of_node,
  31. "qcom,streaming-func", i, &name);
  32.  
  33. if (!name)
  34. continue;
  35.  
  36. if (sizeof(name) > FUNC_NAME_LEN) {
  37. pr_err("Function name is bigger than allowed.\n");
  38. continue;
  39. }
  40.  
  41. strlcpy(pdata->streaming_func[i], name,
  42. sizeof(pdata->streaming_func[i]));
  43. pr_debug("name of streaming function:%s\n",
  44. pdata->streaming_func[i]);
  45. }
  46.  
  47. pdata->streaming_func_count = len;
  48.  
  49. pdata->cdrom = of_property_read_bool(pdev->dev.of_node,
  50. "qcom,android-usb-cdrom");
  51. ret = of_property_read_u8(pdev->dev.of_node,
  52. "qcom,android-usb-uicc-nluns",
  53. &pdata->uicc_nluns);
  54. } else {
  55. pdata = pdev->dev.platform_data;
  56. }
  57.  
  58. if (!android_class) {
  59. android_class = class_create(THIS_MODULE, "android_usb");
  60. if (IS_ERR(android_class))
  61. return PTR_ERR(android_class);
  62. }
  63.  
  64. android_dev = kzalloc(sizeof(*android_dev), GFP_KERNEL);
  65. if (!android_dev) {
  66. pr_err("%s(): Failed to alloc memory for android_dev\n",
  67. __func__);
  68. ret = -ENOMEM;
  69. goto err_alloc;
  70. }
  71.  
  72. android_dev->name = pdev->name;
  73. android_dev->disable_depth = ;
  74. android_dev->functions = supported_functions;
  75. android_dev->configs_num = ;
  76. INIT_LIST_HEAD(&android_dev->configs);
  77. INIT_WORK(&android_dev->work, android_work);
  78. mutex_init(&android_dev->mutex);
  79.  
  80. android_dev->pdata = pdata;
  81.  
  82. list_add_tail(&android_dev->list_item, &android_dev_list);
  83. android_dev_count++;
  84.  
  85. res = platform_get_resource(pdev, IORESOURCE_MEM, );
  86. if (res) {
  87. diag_dload = devm_ioremap(&pdev->dev, res->start,
  88. resource_size(res));
  89. if (!diag_dload) {
  90. dev_err(&pdev->dev, "ioremap failed\n");
  91. ret = -ENOMEM;
  92. goto err_dev;
  93. }
  94. } else {
  95. dev_dbg(&pdev->dev, "failed to get mem resource\n");
  96. }
  97.  
  98. if (pdata)
  99. ret = android_create_device(android_dev, pdata->usb_core_id);
  100. else
  101. ret = android_create_device(android_dev, );
  102.  
  103. if (ret) {
  104. pr_err("%s(): android_create_device failed\n", __func__);
  105. goto err_dev;
  106. }
  107.  
  108. ret = usb_composite_probe(&android_usb_driver);
  109. if (ret) {
  110. /* Perhaps UDC hasn't probed yet, try again later */
  111. if (ret == -ENODEV)
  112. ret = -EPROBE_DEFER;
  113. else
  114. pr_err("%s(): Failed to register android composite driver\n",
  115. __func__);
  116. goto err_probe;
  117. }
  118.  
  119. /* pm qos request to prevent apps idle power collapse */
  120. if (pdata && pdata->swfi_latency)
  121. pm_qos_add_request(&android_dev->pm_qos_req_dma,
  122. PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
  123. strlcpy(android_dev->pm_qos, "high", sizeof(android_dev->pm_qos));
  124.  
  125. return ret;
  126. err_probe:
  127. android_destroy_device(android_dev);
  128. err_dev:
  129. list_del(&android_dev->list_item);
  130. android_dev_count--;
  131. kfree(android_dev);
  132. err_alloc:
  133. if (list_empty(&android_dev_list)) {
  134. class_destroy(android_class);
  135. android_class = NULL;
  136. }
  137. return ret;
  138. }

结构体 android_usb_platform_data 是android usb platform driver的dev的private data。其定义位于androd/kerenl/include/linux/usb/andriod.h文件中,这文件首先包含了usb复口头文件composite.h

  1. /*
  2. * Platform data for Android USB
  3. *
  4. * Copyright (C) 2008 Google, Inc.
  5. * Author: Mike Lockwood <lockwood@android.com>
  6. *
  7. * This software is licensed under the terms of the GNU General Public
  8. * License version 2, as published by the Free Software Foundation, and
  9. * may be copied, distributed, and modified under those terms.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. */
  17. #ifndef __LINUX_USB_ANDROID_H
  18. #define __LINUX_USB_ANDROID_H
  19.  
  20. #include <linux/usb/composite.h>

然后定义了结构体 android_usb_platform_data 及其中数组的最大范围用到的宏

  1. #define MAX_STREAMING_FUNCS 3
  2. #define FUNC_NAME_LEN 10
  1. struct android_usb_platform_data {
  2. int (*update_pid_and_serial_num)(uint32_t, const char *);
  3. u32 pm_qos_latency[MAX_VOTES];
  4. u8 usb_core_id;
  5. char streaming_func[MAX_STREAMING_FUNCS][FUNC_NAME_LEN];
  6. int streaming_func_count;
  7. u8 uicc_nluns;
  8. bool cdrom;
  9. };

回到 android_probe 函数,若相应的dev有of_node,即在dts中有定义,则获取相应的配置。Android USB在dts中的配置位于android/kernel/arc/arm(或arm64,都一样,arm64中的qcom目录是对arm的软链接)/boot/dts/qcom目录下的msm8916.dtsi和msm8916-qrd.dtsi中,内容如下

  1. android_usb: android_usb@086000c8 {
  2. compatible = "qcom,android-usb";
  3. reg = <0x086000c8 0xc8>;
  4. qcom,android-usb-swfi-latency = <>;
  5. qcom,streaming-func = "mtp";
  6. qcom,android-usb-uicc-nluns = /bits/ <>;
  7. };
  1. &android_usb {
  2. qcom,android-usb-cdrom;
  3. };

首先通过 devm_kzalloc 函数为相应dev的private指针分配内存,其类型为 android_usb_platform_data 。

然后读出 qcom,android-usb-swfi-latency ,其值用在 pm_qos_update_request 函数中来定义投票级别,默认值是1。

然后读出 qcom,streaming-func 的个数,并在循环中读出stream func,传给platform data里的 streaming_func 和 streaming_func_count 中,这里的值只有一个"mtp"。

然后读出 qcom,android-usb-cdrom ,根据其存在与否决定是否支持CDROM。

最后读出 qcom,android-usb-uicc-nluns ,其在dtsi中的写法规定其占8位,即一个字节,默认值为1。

若不存在dts文件,则用传统的platform_device。

在配置好platform_data后,则调用 class_create 函数创建 /sys/class 下的文件节点。

然后分配 android_dev 的内存,有dev的name、disable的深度、支持的USB功能、配置的数量、初始化configs list和work对了,配置其执行函数为 android_work 、初始化相应的mutex、设定之前分配的pdata。添加list_item到全局的 android_dev_list 中,并将 android_dev_count 加1。

支持的USB功能在变量 supported_functions 数组中,其类型为 android_usb_function ,内容如下

  1. static struct android_usb_function *supported_functions[] = {
  2. &ffs_function,
  3. &mbim_function,
  4. &ecm_qc_function,
  5. #ifdef CONFIG_SND_PCM
  6. &audio_function,
  7. #endif
  8. &rmnet_smd_function,
  9. &rmnet_function,
  10. &gps_function,
  11. &diag_function,
  12. &qdss_function,
  13. &serial_function,
  14. &ccid_function,
  15. &acm_function,
  16. &mtp_function,
  17. &ptp_function,
  18. &rndis_function,
  19. &rndis_qc_function,
  20. &ecm_function,
  21. &ncm_function,
  22. &mass_storage_function,
  23. &accessory_function,
  24. #ifdef CONFIG_SND_PCM
  25. &audio_source_function,
  26. #endif
  27. &uasp_function,
  28. &charger_function,
  29. NULL
  30. };

各个具体的功能定义如下。

第一个ffs就是adb

  1. static struct android_usb_function ffs_function = {
  2. .name = "ffs",
  3. .init = ffs_function_init,
  4. .enable = ffs_function_enable,
  5. .disable = ffs_function_disable,
  6. .cleanup = ffs_function_cleanup,
  7. .bind_config = ffs_function_bind_config,
  8. .attributes = ffs_function_attributes,
  9. };

其他的见其名字

  1. static struct android_usb_function mbim_function = {
  2. .name = "usb_mbim",
  3. .cleanup = mbim_function_cleanup,
  4. .bind_config = mbim_function_bind_config,
  5. .init = mbim_function_init,
  6. .ctrlrequest = mbim_function_ctrlrequest,
  7. .attributes = mbim_function_attributes,
  8. };
  9.  
  10. static struct android_usb_function ecm_qc_function = {
  11. .name = "ecm_qc",
  12. .init = ecm_function_init,
  13. .cleanup = ecm_function_cleanup,
  14. .bind_config = ecm_qc_function_bind_config,
  15. .unbind_config = ecm_qc_function_unbind_config,
  16. .attributes = ecm_function_attributes,
  17. };
  18.  
  19. #ifdef CONFIG_SND_PCM
  20. static struct android_usb_function audio_function = {
  21. .name = "audio",
  22. .bind_config = audio_function_bind_config,
  23. };
  24. #endif
  25.  
  26. static struct android_usb_function rmnet_smd_function = {
  27. .name = "rmnet_smd",
  28. .bind_config = rmnet_smd_function_bind_config,
  29. };
  30.  
  31. static struct android_usb_function rmnet_function = {
  32. .name = "rmnet",
  33. .cleanup = rmnet_function_cleanup,
  34. .bind_config = rmnet_function_bind_config,
  35. .unbind_config = rmnet_function_unbind_config,
  36. .attributes = rmnet_function_attributes,
  37. };
  38.  
  39. static struct android_usb_function gps_function = {
  40. .name = "gps",
  41. .cleanup = gps_function_cleanup,
  42. .bind_config = gps_function_bind_config,
  43. };
  44.  
  45. static struct android_usb_function diag_function = {
  46. .name = "diag",
  47. .init = diag_function_init,
  48. .cleanup = diag_function_cleanup,
  49. .bind_config = diag_function_bind_config,
  50. .attributes = diag_function_attributes,
  51. };
  52.  
  53. static struct android_usb_function qdss_function = {
  54. .name = "qdss",
  55. .init = qdss_function_init,
  56. .cleanup = qdss_function_cleanup,
  57. .bind_config = qdss_function_bind_config,
  58. .attributes = qdss_function_attributes,
  59. };
  60.  
  61. static struct android_usb_function serial_function = {
  62. .name = "serial",
  63. .init = serial_function_init,
  64. .cleanup = serial_function_cleanup,
  65. .bind_config = serial_function_bind_config,
  66. .attributes = serial_function_attributes,
  67. };
  68.  
  69. static struct android_usb_function ccid_function = {
  70. .name = "ccid",
  71. .init = ccid_function_init,
  72. .cleanup = ccid_function_cleanup,
  73. .bind_config = ccid_function_bind_config,
  74. };
  75.  
  76. static struct android_usb_function acm_function = {
  77. .name = "acm",
  78. .init = acm_function_init,
  79. .cleanup = acm_function_cleanup,
  80. .bind_config = acm_function_bind_config,
  81. .unbind_config = acm_function_unbind_config,
  82. .attributes = acm_function_attributes,
  83. };
  84.  
  85. static struct android_usb_function mtp_function = {
  86. .name = "mtp",
  87. .init = mtp_function_init,
  88. .cleanup = mtp_function_cleanup,
  89. .bind_config = mtp_function_bind_config,
  90. .ctrlrequest = mtp_function_ctrlrequest,
  91. };
  92.  
  93. /* PTP function is same as MTP with slightly different interface descriptor */
  94. static struct android_usb_function ptp_function = {
  95. .name = "ptp",
  96. .init = ptp_function_init,
  97. .cleanup = ptp_function_cleanup,
  98. .bind_config = ptp_function_bind_config,
  99. };
  100.  
  101. static struct android_usb_function rndis_function = {
  102. .name = "rndis",
  103. .init = rndis_function_init,
  104. .cleanup = rndis_function_cleanup,
  105. .bind_config = rndis_function_bind_config,
  106. .unbind_config = rndis_function_unbind_config,
  107. .attributes = rndis_function_attributes,
  108. };
  109.  
  110. static struct android_usb_function rndis_qc_function = {
  111. .name = "rndis_qc",
  112. .init = rndis_qc_function_init,
  113. .cleanup = rndis_qc_function_cleanup,
  114. .bind_config = rndis_qc_function_bind_config,
  115. .unbind_config = rndis_qc_function_unbind_config,
  116. .attributes = rndis_function_attributes,
  117. };
  118.  
  119. static struct android_usb_function ecm_function = {
  120. .name = "ecm",
  121. .init = ecm_function_init,
  122. .cleanup = ecm_function_cleanup,
  123. .bind_config = ecm_function_bind_config,
  124. .unbind_config = ecm_function_unbind_config,
  125. .attributes = ecm_function_attributes,
  126. };
  127.  
  128. static struct android_usb_function ncm_function = {
  129. .name = "ncm",
  130. .init = ncm_function_init,
  131. .cleanup = ncm_function_cleanup,
  132. .bind_config = ncm_function_bind_config,
  133. .unbind_config = ncm_function_unbind_config,
  134. .attributes = ncm_function_attributes,
  135. };
  136.  
  137. static struct android_usb_function mass_storage_function = {
  138. .name = "mass_storage",
  139. .init = mass_storage_function_init,
  140. .cleanup = mass_storage_function_cleanup,
  141. .bind_config = mass_storage_function_bind_config,
  142. .attributes = mass_storage_function_attributes,
  143. .enable = mass_storage_function_enable,
  144. };
  145.  
  146. static struct android_usb_function accessory_function = {
  147. .name = "accessory",
  148. .init = accessory_function_init,
  149. .cleanup = accessory_function_cleanup,
  150. .bind_config = accessory_function_bind_config,
  151. .ctrlrequest = accessory_function_ctrlrequest,
  152. };
  153.  
  154. static struct android_usb_function audio_source_function = {
  155. .name = "audio_source",
  156. .init = audio_source_function_init,
  157. .cleanup = audio_source_function_cleanup,
  158. .bind_config = audio_source_function_bind_config,
  159. .unbind_config = audio_source_function_unbind_config,
  160. .attributes = audio_source_function_attributes,
  161. };
  162.  
  163. static struct android_usb_function uasp_function = {
  164. .name = "uasp",
  165. .init = uasp_function_init,
  166. .cleanup = uasp_function_cleanup,
  167. .bind_config = uasp_function_bind_config,
  168. };
  169.  
  170. static struct android_usb_function charger_function = {
  171. .name = "charging",
  172. .bind_config = charger_function_bind_config,
  173. };

然后申请分配给USB的IO空间地址,即 reg = <0x086000c8 0xc8>; ,获取到后分配给 diag_dload 。

然后调用 andriod_create_device 函数,创建sys下的文件节点,比如 /sys/class/android_usb/android0之类的 , android_dev_list 中的单项就对应这个, usb_core_id 为0(因为 devm_kzalloc 里有个“z”,即用0初始化分配的内存)。

其函数如下

  1. static int android_create_device(struct android_dev *dev, u8 usb_core_id)
  2. {
  3. struct device_attribute **attrs = android_usb_attributes;
  4. struct device_attribute *attr;
  5. char device_node_name[ANDROID_DEVICE_NODE_NAME_LENGTH];
  6. int err;
  7.  
  8. /*
  9. * The primary usb core should always have usb_core_id=0, since
  10. * Android user space is currently interested in android0 events.
  11. */
  12. snprintf(device_node_name, ANDROID_DEVICE_NODE_NAME_LENGTH,
  13. "android%d", usb_core_id);
  14. dev->dev = device_create(android_class, NULL,
  15. MKDEV(, ), NULL, device_node_name);
  16. if (IS_ERR(dev->dev))
  17. return PTR_ERR(dev->dev);
  18.  
  19. dev_set_drvdata(dev->dev, dev);
  20.  
  21. while ((attr = *attrs++)) {
  22. err = device_create_file(dev->dev, attr);
  23. if (err) {
  24. device_destroy(android_class, dev->dev->devt);
  25. return err;
  26. }
  27. }
  28. return ;
  29. }

初始化相应节点的名字后,调用 device_create 函数创建节点 /sys/class/android_usb/android0 ,并设置创造出来的文件节点的dev的private data为dev。

然后在循环里在创造出来的目录下创建更多的节点,这些节点的定义位于 android_usb_attributes 。若有错误,则销毁目录 /sys/class/android_usb/android0  。

android_usb_attributes 内容如下

  1. static struct device_attribute *android_usb_attributes[] = {
  2. &dev_attr_idVendor,
  3. &dev_attr_idProduct,
  4. &dev_attr_bcdDevice,
  5. &dev_attr_bDeviceClass,
  6. &dev_attr_bDeviceSubClass,
  7. &dev_attr_bDeviceProtocol,
  8. &dev_attr_iManufacturer,
  9. &dev_attr_iProduct,
  10. &dev_attr_iSerial,
  11. &dev_attr_functions,
  12. &dev_attr_enable,
  13. &dev_attr_pm_qos,
  14. &dev_attr_state,
  15. &dev_attr_remote_wakeup,
  16. NULL
  17. };

实现这些文件节点是通过宏 DESCRIPTOR_ATTR 和 DESCRIPTOR_STRING_ATTR 自动实现相应节点的show和store函数的,这两个宏如下

  1. #define DESCRIPTOR_ATTR(field, format_string) \
  2. static ssize_t \
  3. field ## _show(struct device *dev, struct device_attribute *attr, \
  4. char *buf) \
  5. { \
  6. return snprintf(buf, PAGE_SIZE, \
  7. format_string, device_desc.field); \
  8. } \
  9. static ssize_t \
  10. field ## _store(struct device *dev, struct device_attribute *attr, \
  11. const char *buf, size_t size) \
  12. { \
  13. int value; \
  14. if (sscanf(buf, format_string, &value) == ) { \
  15. device_desc.field = value; \
  16. return size; \
  17. } \
  18. return -; \
  19. } \
  20. static DEVICE_ATTR(field, S_IRUGO | S_IWUSR, field ## _show, field ## _store);
  21.  
  22. #define DESCRIPTOR_STRING_ATTR(field, buffer) \
  23. static ssize_t \
  24. field ## _show(struct device *dev, struct device_attribute *attr, \
  25. char *buf) \
  26. { \
  27. return snprintf(buf, PAGE_SIZE, "%s", buffer); \
  28. } \
  29. static ssize_t \
  30. field ## _store(struct device *dev, struct device_attribute *attr, \
  31. const char *buf, size_t size) \
  32. { \
  33. if (size >= sizeof(buffer)) \
  34. return -EINVAL; \
  35. strlcpy(buffer, buf, sizeof(buffer)); \
  36. strim(buffer); \
  37. return size; \
  38. } \
  39. static DEVICE_ATTR(field, S_IRUGO | S_IWUSR, field ## _show, field ## _store);

相应宏的定义如下

  1. DESCRIPTOR_ATTR(idVendor, "%04x\n")
  2. DESCRIPTOR_ATTR(idProduct, "%04x\n")
  3. DESCRIPTOR_ATTR(bcdDevice, "%04x\n")
  4. DESCRIPTOR_ATTR(bDeviceClass, "%d\n")
  5. DESCRIPTOR_ATTR(bDeviceSubClass, "%d\n")
  6. DESCRIPTOR_ATTR(bDeviceProtocol, "%d\n")
  7. DESCRIPTOR_STRING_ATTR(iManufacturer, manufacturer_string)
  8. DESCRIPTOR_STRING_ATTR(iProduct, product_string)
  9. DESCRIPTOR_STRING_ATTR(iSerial, serial_string)

节点functions、enable、pm_qos、state、remote_wakeup的定义如下

  1. static DEVICE_ATTR(functions, S_IRUGO | S_IWUSR, functions_show,
  2. functions_store);
  3. static DEVICE_ATTR(enable, S_IRUGO | S_IWUSR, enable_show, enable_store);
  4. static DEVICE_ATTR(pm_qos, S_IRUGO | S_IWUSR,
  5. pm_qos_show, pm_qos_store);
  6. static DEVICE_ATTR(state, S_IRUGO, state_show, NULL);
  7. static DEVICE_ATTR(remote_wakeup, S_IRUGO | S_IWUSR,
  8. remote_wakeup_show, remote_wakeup_store);

然后 usb_composite_probe 函数会被手动调用,加载 android_usb_driver 。
最后发送添加pm qos请求,并设置 pm_qos 为“High”,返回结果为0。

函数的最后有 "error_probe","err_dev","err_alloc" 三个标签,处理不同阶段的错误。

再看退出相关的函数

先是注册移除函数

  1. static void __exit cleanup(void)
  2. {
  3. platform_driver_unregister(&android_platform_driver);
  4. }
  5. module_exit(cleanup);

然后 android_remove 函数被框架自动调用

  1. static int android_remove(struct platform_device *pdev)
  2. {
  3. struct android_dev *dev = NULL;
  4. struct android_usb_platform_data *pdata = pdev->dev.platform_data;
  5. int usb_core_id = ;
  6.  
  7. if (pdata)
  8. usb_core_id = pdata->usb_core_id;
  9.  
  10. /* Find the android dev from the list */
  11. list_for_each_entry(dev, &android_dev_list, list_item) {
  12. if (!dev->pdata)
  13. break; /*To backward compatibility*/
  14. if (dev->pdata->usb_core_id == usb_core_id)
  15. break;
  16. }
  17.  
  18. if (dev) {
  19. android_destroy_device(dev);
  20. if (pdata && pdata->swfi_latency)
  21. pm_qos_remove_request(&dev->pm_qos_req_dma);
  22. list_del(&dev->list_item);
  23. android_dev_count--;
  24. kfree(dev);
  25. }
  26.  
  27. if (list_empty(&android_dev_list)) {
  28. class_destroy(android_class);
  29. android_class = NULL;
  30. usb_composite_unregister(&android_usb_driver);
  31. }
  32.  
  33. return ;
  34. }

先是遍历 android_dev_list ,相应的 dev 的 pdata 为空或者 usb_core_id 相同时就打断循环,调用 android_destroy_device 销毁设备,要是 swfi_latency 不为0的话,移除pm qos请求,在列表中删除这个 dev , android_dev_count 减1,释放相应 dev 的内存。

android_destroy_device 函数如下

  1. static void android_destroy_device(struct android_dev *dev)
  2. {
  3. struct device_attribute **attrs = android_usb_attributes;
  4. struct device_attribute *attr;
  5.  
  6. while ((attr = *attrs++))
  7. device_remove_file(dev->dev, attr);
  8. device_destroy(android_class, dev->dev->devt);
  9. }

可以看到,其功能就是删除目录 /sys/class/android_usb/android0 下的文件节点和目录本身。

若 android_dev_list 为空的话,就销毁目录 /sys/class/android_usb ,并调用函数 usb_composite_unregister 移除 android_usb_driver ,最后返回0。

当用USB线把Android设备与HOST连接时,Android设备会枚举自己。(挖坑)

先说下USB协议的基础知识。

显示USB描述符。

USB协议为USB设备定义了一套描述设备功能和属性的有固定结构的描述符,包括标准的描述符即设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符,还有非标准描述符,如类描述符等。USB设备通过这些描述符向USB主机汇报设备的各种各样属性,主机通过对这些描述符的访问对设备进行类型识别、配置并为其提供相应的客户端驱动程序。

USB设备通过描述符反映自己的设备特性。USB描述符是由特定格式排列的一组数据结构组成。

在USB设备枚举过程中,主机端的协义软件需要解析从USB设备读取的所有描述符信息。在USB主向设备发送读取描述符的请求后,USB设备将所有的描述符以连续的数据流方式传输给USB主机。主机从第一个读到的字符开始,根据双方规定好的数据格式,顺序地解析读到的数据流。

USB描述符包含标准描述符、类描述符和厂商特定描述3种形式。任何一种设备必须提供USB标准描述符(对字符串描述符可例外)。

在USB1.X中,规定了5种标准描述符:设备描述符(Device Descriptor)、配置描述符(Configuration Descriptor)、接口描述符(Interface Descriptor)、端点描述符(Endpoint Descriptor)和字符串描述符(String Descriptor)。

每个USB设备只有一个设备描述符,而一个设备中可包含一个或多个配置描述符,即USB设备可以有多种配置(物理特性,如供电)。设备的每一个配置中又可以包含一个或多个接口描述符,即USB设备可以支持多种功能(接口),接口的特性通过描述符提供。每一个接口描述符包含多个端点描述符,端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。在USB系统中每一个端点都有惟一的地址,这是由设备地址和端点号给出的。每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2等一般用作数据端点,存放主机与设备间往来的数据。

在USB主机访问USB设备的描述符时,USB设备依照设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符顺序将所有描述符传给主机。一设备至少要包含设备描述符、配置描述符和接口描述符,如果USB设备没有端点描述符,则它仅仅用默认管道与主机进行数据传输。

总体而言,USB设备非常复杂,由许多不同的逻辑单元组成,如图1、图2所示,这些单元之间的关系如下:

图1

图2

l 设备通常有一个或多个配置;

l 配置通常有一个或多个接口;

l 接口通常有一个或多个设置;

l 接口有零或多个端点。

这种层次化配置信息在设备中通过一组标准的描述符来描述,如下所示。

  1. 设备描述符:关于设备的通用信息,如供应商ID、产品ID和修订ID,支持的设备类、子类和适用的协议以及默认端点的最大包大小等。在Linux内核中,USB设备用 usb_device 结构体来描述,USB设备描述符定义为 usb_device_descriptor 结构体,其定义如下

    1. struct usb_device_descriptor
    2. {
    3. _ _u8 bLength; //描述符长度
    4. _ _u8 bDescriptorType; //描述符类型编号
    5.  
    6. _ _le16 bcdUSB; //USB版本号
    7. _ _u8 bDeviceClass; //USB分配的设备类code
    8. _ _u8 bDeviceSubClass;// USB分配的子类code
    9. _ _u8 bDeviceProtocol; //USB分配的协议code
    10. _ _u8 bMaxPacketSize0; //endpoint0最大包大小
    11. _ _le16 idVendor; //厂商编号
    12. _ _le16 idProduct; //产品编号
    13. _ _le16 bcdDevice; //设备出厂编号
    14. _ _u8 iManufacturer; //描述厂商字符串的索引
    15. _ _u8 iProduct; //描述产品字符串的索引
    16. _ _u8 iSerialNumber; //描述设备序列号字符串的索引
    17. _ _u8 bNumConfigurations; //可能的配置数量
    18. } _ _attribute_ _ ((packed));
  2. 配置描述符:此配置中的接口数、支持的挂起和恢复能力以及功率要求。USB配置在内核中使用 usb_host_config 结构体描述,USB配置描述符定义为结构体 usb_config_descriptor ,其定义如下
    1. struct usb_config_descriptor
    2. {
    3. _ _u8 bLength; //描述符长度
    4. _ _u8 bDescriptorType; //描述符类型编号
    5.  
    6. _ _le16 wTotalLength; //配置所返回的所有数据的大小
    7. _ _u8 bNumInterfaces; // 配置所支持的接口数
    8. _ _u8 bConfigurationValue; //Set_Configuration命令需要的参数值
    9. _ _u8 iConfiguration; //描述该配置的字符串的索引值
    10. _ _u8 bmAttributes; //供电模式的选择
    11. _ _u8 bMaxPower; //设备从总线提取的最大电流
    12. } _ _attribute_ _ ((packed));
  3. 接口描述符:接口类、子类和适用的协议,接口备用配置的数目和端点数目。USB接口在内核中使用 usb_interface 结构体描述,USB接口描述符定义为结构体 usb_interface_descriptor ,其定义如下
    1. struct usb_interface_descriptor
    2. {
    3. _ _u8 bLength; //描述符长度
    4. _ _u8 bDescriptorType; //描述符类型
    5.  
    6. _ _u8 bInterfaceNumber; // 接口的编号
    7. _ _u8 bAlternateSetting; //备用的接口描述符编号
    8. _ _u8 bNumEndpoints; //该接口使用的端点数,不包括端点0
    9. _ _u8 bInterfaceClass; //接口类型
    10. _ _u8 bInterfaceSubClass; //接口子类型
    11. _ _u8 bInterfaceProtocol; //接口所遵循的协议
    12. _ _u8 iInterface; //描述该接口的字符串索引值
    13. } _ _attribute_ _ ((packed));
  4. 端点描述符:端点地址、方向和类型,支持的最大包大小,如果是中断类型的端点则还包括轮询频率。在Linux内核中,USB端点使用 usb_host_endpoint 结构体来描述,USB端点描述符定义为 usb_endpoint_descriptor 结构体,其定义如下
    1. struct usb_endpoint_descriptor
    2. {
    3. _ _u8 bLength; //描述符长度
    4. _ _u8 bDescriptorType; //描述符类型
    5. _ _u8 bEndpointAddress; //端点地址:0~3位是端点号,第7位是方向(0-OUT,1-IN)
    6. _ _u8 bmAttributes; //端点属性:bit[0:1] 的值为00表示控制,为01表示同步,为02表示批量,为03表示中断
    7. _ _le16 wMaxPacketSize; //// 本端点接收或发送的最大信息包的大小
    8. _ _u8 bInterval;//轮询数据传送端点的时间间隔
    9. //对于批量传送的端点以及控制传送的端点,此域忽略
    10. //对于同步传送的端点,此域必须为1
    11. //对于中断传送的端点,此域值的范围为1~255
    12. _ _u8 bRefresh;
    13. _ _u8 bSynchAddress;
    14. } _ _attribute_ _ ((packed));
  5. 字符串描述符:在其他描述符中会为某些字段提供字符串索引,它们可被用来检索描述性字符串,可以以多种语言形式提供。字符串描述符是可选的,有的设备有,有的设备没有,字符串描述符对应于 usb_string_descriptor 结构体,其定义如下
    1. struct usb_string_descriptor
    2. {
    3. _ _u8 bLength; //描述符长度
    4. _ _u8 bDescriptorType; //描述符类型
    5.  
    6. _ _le16 wData[];/* 以UTF-16LE编码 */
    7. } _ _attribute_ _ ((packed));

插入一个SanDisk U盘后,可以通过lsusb命令得到这个U盘相关的描述符,从中可以显示这个U盘包含了一个设备描述符、一个字符串描述符、一个配置描述符、一个接口描述符以及批量输入和批量输出两个端点描述符。呈现出来的信息内容直接对应于 usb_device_descriptor、usb_config_descriptor、usb_interface_descriptor、usb_endpoint_descriptor、usb_string_descriptor 结构体,其内容如下所示。

  1. Bus Device : ID : SanDisk Corp.
  2. Device Descriptor:
  3. bLength
  4. bDescriptorType
  5. bcdUSB 2.00
  6. bDeviceClass Interface
  7. bDeviceSubClass
  8. bDeviceProtocol
  9. bMaxPacketSize0
  10. idVendor 0x0781 SanDisk Corp.
  11. idProduct 0x5151
  12. bcdDevice 0.10
  13. iManufacturer SanDisk Corporation
  14. iProduct Cruzer Micro
  15. iSerial 20060877500A1BE1FDE1
  16. bNumConfigurations
  17. Configuration Descriptor:
  18. bLength
  19. bDescriptorType
  20. wTotalLength
  21. bNumInterfaces
  22. bConfigurationValue
  23. iConfiguration
  24. bmAttributes 0x80
  25. MaxPower 200mA
  26. Interface Descriptor:
  27. bLength
  28. bDescriptorType
  29. bInterfaceNumber
  30. bAlternateSetting
  31. bNumEndpoints
  32. bInterfaceClass Mass Storage
  33. bInterfaceSubClass SCSI
  34. bInterfaceProtocol Bulk (Zip)
  35. iInterface
  36. Endpoint Descriptor:
  37. bLength
  38. bDescriptorType
  39. bEndpointAddress 0x81 EP IN
  40. bmAttributes
  41. Transfer Type Bulk
  42. Synch Type none
  43. wMaxPacketSize
  44. bInterval
  45. Endpoint Descriptor:
  46. bLength
  47. bDescriptorType
  48. bEndpointAddress 0x01 EP OUT
  49. bmAttributes
  50. Transfer Type Bulk
  51. Synch Type none
  52. wMaxPacketSize
  53. bInterval
  54. Language IDs: (length=)
  55. English(US)

当用户点击相应USB选项或者本质上, sys.usb.config 被设置时,会写 /sys/class/android_usb/android0 下的一系列节点,触发一系列的动作。

以配置为 “mtp,adb” 和 ptp,adb 为例,其在init.qcom.usb.rc文件中的配置如下

  1. on property:sys.usb.config=mtp,adb
  2. stop adbd
  3. write /sys/class/android_usb/android0/enable
  4. ##shenyong.wt,,add mtp+cdrom
  5. write /sys/class/android_usb/f_mass_storage/luns "lenovomtp"
  6. write /sys/class/android_usb/android0/idVendor 17EF
  7. write /sys/class/android_usb/android0/idProduct
  8. write /sys/class/android_usb/android0/functions mtp,mass_storage,adb
  9. write /sys/class/android_usb/android0/enable
  10. start adbd
  11. setprop sys.usb.state ${sys.usb.config}
  12.  
  13. on property:sys.usb.config=ptp,adb
  14. stop adbd
  15. write /sys/class/android_usb/android0/enable
  16. write /sys/class/android_usb/android0/idVendor 17EF
  17. write /sys/class/android_usb/android0/idProduct 74F9
  18. write /sys/class/android_usb/android0/functions ptp,adb
  19. write /sys/class/android_usb/android0/enable
  20. start adbd
  21. setprop sys.usb.state ${sys.usb.config}

init.qcom.usb.rc完整内容如下

  1. # Copyright (c) -, The Linux Foundation. All rights reserved.
  2. #
  3. # Redistribution and use in source and binary forms, with or without
  4. # modification, are permitted provided that the following conditions are met:
  5. # * Redistributions of source code must retain the above copyright
  6. # notice, this list of conditions and the following disclaimer.
  7. # * Redistributions in binary form must reproduce the above copyright
  8. # notice, this list of conditions and the following disclaimer in the
  9. # documentation and/or other materials provided with the distribution.
  10. # * Neither the name of The Linux Foundation nor
  11. # the names of its contributors may be used to endorse or promote
  12. # products derived from this software without specific prior written
  13. # permission.
  14. #
  15. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  16. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  18. # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  19. # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  20. # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  21. # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  22. # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  23. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  24. # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  25. # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26. #
  27.  
  28. on init
  29. write /sys/class/android_usb/android0/f_rndis/wceis
  30. write /sys/class/android_usb/android0/iSerial ${ro.serialno}
  31.  
  32. on charger
  33. setprop sys.usb.config mass_storage
  34. write /sys/module/lpm_levels/enable_low_power/l2
  35. write /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  36. write /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  37. write /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  38. write /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  39. write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  40. write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  41. write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  42. write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  43. write /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  44. write /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  45. write /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  46. write /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  47. write /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  48. write /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  49. write /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  50. write /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  51.  
  52. on fs
  53. mkdir /dev/usb-ffs shell shell
  54. mkdir /dev/usb-ffs/adb shell shell
  55. mount functionfs adb /dev/usb-ffs/adb uid=,gid=
  56. write /sys/class/android_usb/android0/f_ffs/aliases adb
  57.  
  58. service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh
  59. class core
  60. user root
  61. oneshot
  62.  
  63. # Following are the parameters required for usb functionality. They provide configurable options like
  64. # product_id/vendor id and allows specifying required functions:
  65. #
  66. # Required parameters:
  67. #
  68. # /sys/class/android_usb/android0/enable: Enables/disables usb composition
  69. # Value: (disable), (enable)
  70. #
  71. # /sys/class/android_usb/android0/idVendor: Stores Vendor ID
  72. # Value: 05c6 (Vendor id for Qualcomm Inc)
  73. #
  74. # /sys/class/android_usb/android0/idProduct: Stores Product id corresponding to usb composition
  75. # Value: 0x9xxx for composite interface, 0xFxxx for single interface
  76. #
  77. # /sys/class/android_usb/android0/f_diag/clients: Stores name of clients representing a diag interface.
  78. # Value: Passed one per interface. e.g. diag[,diag_mdm, diag_qsc, diag_mdm2]
  79. #
  80. # /sys/class/android_usb/android0/functions: Stores name of the function drivers used in usb composition.
  81. # Value: Passed one per function driver. e.g. diag[,adb]
  82. #
  83. #Optional parameters:
  84. #
  85. # /sys/class/android_usb/android0/f_serial/transports: Stores type of underlying transports used to
  86. # communicate to serial interface.
  87. # Value: Passed one per interface. One value represents control and data transport together.
  88. # e.g. smd[,sdio,tty,hsic]
  89. # Only required if serial interface is present.
  90. #
  91. # /sys/class/android_usb/android0/f_serial/transport_names: Stores name of the underlying transports
  92. # used to communicate to serial interface. This is used to distinguish between more than one interface
  93. # using same transport type.
  94. # Value: Passed one per interface. One value represents control and data transport together.
  95. # e.g. serial_hsic[,serial_hsusb]
  96. # Only required for transport type hsic, optional for other transport types.
  97. #
  98. # /sys/class/android_usb/android0/f_rmnet/transports: Stores type of underlying transports used to
  99. # communicate to rmnet interface.
  100. # Value: Passed two per interface as control, data transport type pair.
  101. # e.g. smd,bam[,hsuart,hsuart]
  102. # Only required if rmnet interface is present.
  103. #
  104. # /sys/class/android_usb/android0/f_rmnet/transport_names: Stores name of the underlying transports
  105. # used to communicate to rmnet interface. This is used to distinguish between more than one interface
  106. # using same transport type.
  107. # Value: Passed one per interface. One value represents control and data transport together.
  108. # e.g. rmnet_hsic[,rmnet_hsusb]
  109. # Only required for transport type hsic, optional for other transport types.
  110.  
  111. # USB compositions
  112. on property:sys.usb.config=diag,serial_tty,serial_smd
  113. write /sys/class/android_usb/android0/enable
  114. write /sys/class/android_usb/android0/idVendor 05C6
  115. write /sys/class/android_usb/android0/idProduct
  116. write /sys/class/android_usb/android0/f_diag/clients diag
  117. write /sys/class/android_usb/android0/f_serial/transports tty,smd
  118. write /sys/class/android_usb/android0/functions diag,serial
  119. write /sys/class/android_usb/android0/enable
  120. setprop sys.usb.state ${sys.usb.config}
  121.  
  122. on property:sys.usb.config=diag,serial_tty,serial_smd,adb
  123. stop adbd
  124. write /sys/class/android_usb/android0/enable
  125. write /sys/class/android_usb/android0/idVendor 17EF
  126. write /sys/class/android_usb/android0/idProduct
  127. write /sys/class/android_usb/android0/f_diag/clients diag
  128. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  129. write /sys/class/android_usb/android0/functions diag,adb,serial
  130. write /sys/class/android_usb/android0/enable
  131. start adbd
  132. setprop sys.usb.state ${sys.usb.config}
  133.  
  134. on property:sys.usb.config=diag,adb
  135. stop adbd
  136. write /sys/class/android_usb/android0/enable
  137. write /sys/class/android_usb/android0/idVendor 05C6
  138. write /sys/class/android_usb/android0/idProduct 901D
  139. write /sys/class/android_usb/android0/f_diag/clients diag
  140. write /sys/class/android_usb/android0/functions diag,adb
  141. write /sys/class/android_usb/android0/enable
  142. start adbd
  143. setprop sys.usb.state ${sys.usb.config}
  144.  
  145. on property:sys.usb.config=diag
  146. write /sys/class/android_usb/android0/enable
  147. write /sys/class/android_usb/android0/idVendor 05C6
  148. write /sys/class/android_usb/android0/idProduct 900E
  149. write /sys/class/android_usb/android0/f_diag/clients diag
  150. write /sys/class/android_usb/android0/functions diag
  151. write /sys/class/android_usb/android0/enable
  152. setprop sys.usb.state ${sys.usb.config}
  153.  
  154. on property:sys.usb.config=diag,serial_smd,rmnet_bam,adb
  155. stop adbd
  156. write /sys/class/android_usb/android0/enable
  157. write /sys/class/android_usb/android0/idVendor 05C6
  158. write /sys/class/android_usb/android0/idProduct
  159. write /sys/class/android_usb/android0/iSerial ""
  160. write /sys/class/android_usb/android0/f_diag/clients diag
  161. write /sys/class/android_usb/android0/f_serial/transports smd
  162. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  163. write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
  164. write /sys/class/android_usb/android0/enable
  165. start adbd
  166. setprop sys.usb.state ${sys.usb.config}
  167.  
  168. on property:sys.usb.config=diag,serial_smd,rmnet_bam
  169. write /sys/class/android_usb/android0/enable
  170. write /sys/class/android_usb/android0/idVendor 05C6
  171. write /sys/class/android_usb/android0/idProduct
  172. write /sys/class/android_usb/android0/f_diag/clients diag
  173. write /sys/class/android_usb/android0/f_serial/transports smd
  174. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  175. write /sys/class/android_usb/android0/functions diag,serial,rmnet
  176. write /sys/class/android_usb/android0/enable
  177. setprop sys.usb.state ${sys.usb.config}
  178.  
  179. on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
  180. stop adbd
  181. write /sys/class/android_usb/android0/enable
  182. write /sys/class/android_usb/android0/idVendor 05C6
  183. write /sys/class/android_usb/android0/idProduct
  184. write /sys/class/android_usb/android0/f_diag/clients diag
  185. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  186. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  187. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  188. write /sys/class/android_usb/android0/enable
  189. start adbd
  190. setprop sys.usb.state ${sys.usb.config}
  191.  
  192. on property:sys.usb.config=diag,serial_smd,serial_tty,adb,mass_storage
  193. stop adbd
  194. write /sys/class/android_usb/android0/enable
  195. write /sys/class/android_usb/android0/idVendor 17EF
  196. write /sys/class/android_usb/android0/idProduct
  197. write /sys/class/android_usb/android0/f_diag/clients diag
  198. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  199. write /sys/class/android_usb/android0/functions adb,diag,serial,mass_storage
  200. write /sys/class/android_usb/android0/enable
  201. start adbd
  202. setprop sys.usb.state ${sys.usb.config}
  203.  
  204. on property:sys.usb.config=diag,serial_smd,serial_tty,mass_storage
  205. write /sys/class/android_usb/android0/enable
  206. write /sys/class/android_usb/android0/idVendor 17EF
  207. write /sys/class/android_usb/android0/idProduct
  208. write /sys/class/android_usb/android0/f_diag/clients diag
  209. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  210. write /sys/class/android_usb/android0/functions diag,serial,mass_storage
  211. write /sys/class/android_usb/android0/enable
  212. setprop sys.usb.state ${sys.usb.config}
  213.  
  214. on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage,adb
  215. stop adbd
  216. write /sys/class/android_usb/android0/enable
  217. write /sys/class/android_usb/android0/idVendor 05C6
  218. write /sys/class/android_usb/android0/idProduct 903D
  219. write /sys/class/android_usb/android0/f_diag/clients diag
  220. write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
  221. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  222. write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet,mass_storage
  223. write /sys/class/android_usb/android0/enable
  224. start adbd
  225. setprop sys.usb.state ${sys.usb.config}
  226.  
  227. on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage
  228. write /sys/class/android_usb/android0/enable
  229. write /sys/class/android_usb/android0/idVendor 05C6
  230. write /sys/class/android_usb/android0/idProduct
  231. write /sys/class/android_usb/android0/f_diag/clients diag
  232. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  233. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  234. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  235. write /sys/class/android_usb/android0/enable
  236. setprop sys.usb.state ${sys.usb.config}
  237.  
  238. on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage
  239. write /sys/class/android_usb/android0/enable
  240. write /sys/class/android_usb/android0/idVendor 05C6
  241. write /sys/class/android_usb/android0/idProduct 903E
  242. write /sys/class/android_usb/android0/f_diag/clients diag
  243. write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
  244. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  245. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  246. write /sys/class/android_usb/android0/enable
  247. setprop sys.usb.state ${sys.usb.config}
  248.  
  249. on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb
  250. stop adbd
  251. write /sys/class/android_usb/android0/enable
  252. write /sys/class/android_usb/android0/idVendor 05C6
  253. write /sys/class/android_usb/android0/idProduct
  254. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  255. write /sys/class/android_usb/android0/f_serial/transports sdio,smd
  256. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd_sdio,mass_storage
  257. write /sys/class/android_usb/android0/enable
  258. start adbd
  259. setprop sys.usb.state ${sys.usb.config}
  260.  
  261. on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage,adb
  262. stop adbd
  263. write /sys/class/android_usb/android0/enable
  264. write /sys/class/android_usb/android0/idVendor 05C6
  265. write /sys/class/android_usb/android0/idProduct 903B
  266. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  267. write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
  268. write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd_sdio,mass_storage
  269. write /sys/class/android_usb/android0/enable
  270. start adbd
  271. setprop sys.usb.state ${sys.usb.config}
  272.  
  273. on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage
  274. write /sys/class/android_usb/android0/enable
  275. write /sys/class/android_usb/android0/idVendor 05C6
  276. write /sys/class/android_usb/android0/idProduct
  277. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  278. write /sys/class/android_usb/android0/f_serial/transports sdio,smd
  279. write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd_sdio,mass_storage
  280. write /sys/class/android_usb/android0/enable
  281. setprop sys.usb.state ${sys.usb.config}
  282.  
  283. on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage
  284. write /sys/class/android_usb/android0/enable
  285. write /sys/class/android_usb/android0/idVendor 05C6
  286. write /sys/class/android_usb/android0/idProduct 903C
  287. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  288. write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
  289. write /sys/class/android_usb/android0/functions diag,acm,rmnet_smd_sdio,mass_storage
  290. write /sys/class/android_usb/android0/enable
  291. setprop sys.usb.state ${sys.usb.config}
  292.  
  293. on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb
  294. stop adbd
  295. write /sys/class/android_usb/android0/enable
  296. write /sys/class/android_usb/android0/idVendor 05C6
  297. write /sys/class/android_usb/android0/idProduct
  298. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  299. write /sys/class/android_usb/android0/f_serial/transports sdio,tty
  300. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_sdio,mass_storage
  301. write /sys/class/android_usb/android0/enable
  302. start adbd
  303. setprop sys.usb.state ${sys.usb.config}
  304.  
  305. on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage,adb
  306. stop adbd
  307. write /sys/class/android_usb/android0/enable
  308. write /sys/class/android_usb/android0/idVendor 05C6
  309. write /sys/class/android_usb/android0/idProduct 903B
  310. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  311. write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
  312. write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_sdio,mass_storage
  313. write /sys/class/android_usb/android0/enable
  314. start adbd
  315. setprop sys.usb.state ${sys.usb.config}
  316.  
  317. on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage
  318. write /sys/class/android_usb/android0/enable
  319. write /sys/class/android_usb/android0/idVendor 05C6
  320. write /sys/class/android_usb/android0/idProduct
  321. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  322. write /sys/class/android_usb/android0/f_serial/transports sdio,tty
  323. write /sys/class/android_usb/android0/functions diag,serial,rmnet_sdio,mass_storage
  324. write /sys/class/android_usb/android0/enable
  325. setprop sys.usb.state ${sys.usb.config}
  326.  
  327. on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage
  328. write /sys/class/android_usb/android0/enable
  329. write /sys/class/android_usb/android0/idVendor 05C6
  330. write /sys/class/android_usb/android0/idProduct 903C
  331. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  332. write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
  333. write /sys/class/android_usb/android0/functions diag,acm,rmnet_sdio,mass_storage
  334. write /sys/class/android_usb/android0/enable
  335. setprop sys.usb.state ${sys.usb.config}
  336.  
  337. on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb
  338. stop adbd
  339. write /sys/class/android_usb/android0/enable
  340. write /sys/class/android_usb/android0/idVendor 05C6
  341. write /sys/class/android_usb/android0/idProduct
  342. write /sys/class/android_usb/android0/f_diag/clients diag
  343. write /sys/class/android_usb/android0/f_serial/transports tty,tty
  344. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
  345. write /sys/class/android_usb/android0/enable
  346. start adbd
  347. start port-bridge
  348. setprop sys.usb.state ${sys.usb.config}
  349.  
  350. on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage,adb
  351. stop adbd
  352. write /sys/class/android_usb/android0/enable
  353. write /sys/class/android_usb/android0/idVendor 05C6
  354. write /sys/class/android_usb/android0/idProduct 903D
  355. write /sys/class/android_usb/android0/f_diag/clients diag
  356. write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty
  357. write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage
  358. write /sys/class/android_usb/android0/enable
  359. start adbd
  360. start port-bridge
  361. setprop sys.usb.state ${sys.usb.config}
  362.  
  363. on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage
  364. write /sys/class/android_usb/android0/enable
  365. write /sys/class/android_usb/android0/idVendor 05C6
  366. write /sys/class/android_usb/android0/idProduct
  367. write /sys/class/android_usb/android0/f_diag/clients diag
  368. write /sys/class/android_usb/android0/f_serial/transports tty,tty
  369. write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
  370. write /sys/class/android_usb/android0/enable
  371. start port-bridge
  372. setprop sys.usb.state ${sys.usb.config}
  373.  
  374. on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage
  375. write /sys/class/android_usb/android0/enable
  376. write /sys/class/android_usb/android0/idVendor 05C6
  377. write /sys/class/android_usb/android0/idProduct 903E
  378. write /sys/class/android_usb/android0/f_diag/clients diag
  379. write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty
  380. write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
  381. write /sys/class/android_usb/android0/enable
  382. setprop sys.usb.state ${sys.usb.config}
  383.  
  384. on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb
  385. stop adbd
  386. write /sys/class/android_usb/android0/enable
  387. write /sys/class/android_usb/android0/idVendor 05C6
  388. write /sys/class/android_usb/android0/idProduct
  389. write /sys/class/android_usb/android0/f_diag/clients diag
  390. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  391. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
  392. write /sys/class/android_usb/android0/enable
  393. start adbd
  394. setprop sys.usb.state ${sys.usb.config}
  395.  
  396. on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage,adb
  397. stop adbd
  398. write /sys/class/android_usb/android0/enable
  399. write /sys/class/android_usb/android0/idVendor 05C6
  400. write /sys/class/android_usb/android0/idProduct 903D
  401. write /sys/class/android_usb/android0/f_diag/clients diag
  402. write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
  403. write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage
  404. write /sys/class/android_usb/android0/enable
  405. start adbd
  406. start port-bridge
  407. setprop sys.usb.state ${sys.usb.config}
  408.  
  409. on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage
  410. write /sys/class/android_usb/android0/enable
  411. write /sys/class/android_usb/android0/idVendor 05C6
  412. write /sys/class/android_usb/android0/idProduct
  413. write /sys/class/android_usb/android0/f_diag/clients diag
  414. write /sys/class/android_usb/android0/f_serial/transports smd,tty
  415. write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
  416. write /sys/class/android_usb/android0/enable
  417. setprop sys.usb.state ${sys.usb.config}
  418.  
  419. on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage
  420. write /sys/class/android_usb/android0/enable
  421. write /sys/class/android_usb/android0/idVendor 05C6
  422. write /sys/class/android_usb/android0/idProduct 903E
  423. write /sys/class/android_usb/android0/f_diag/clients diag
  424. write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
  425. write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
  426. write /sys/class/android_usb/android0/enable
  427. setprop sys.usb.state ${sys.usb.config}
  428.  
  429. # Fusion composition
  430. on property:sys.usb.config=diag,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
  431. write /sys/class/android_usb/android0/enable
  432. write /sys/class/android_usb/android0/idVendor 05C6
  433. write /sys/class/android_usb/android0/idProduct
  434. write /sys/class/android_usb/android0/f_diag/clients diag
  435. write /sys/class/android_usb/android0/f_serial/transports hsic,tty
  436. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
  437. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  438. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
  439. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  440. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  441. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  442. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  443. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  444. write /sys/class/android_usb/android0/enable
  445. start adbd
  446. setprop sys.usb.state ${sys.usb.config}
  447.  
  448. # Fusion composition with diag_mdm and adb
  449. on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
  450. write /sys/class/android_usb/android0/enable
  451. write /sys/class/android_usb/android0/idVendor 05C6
  452. write /sys/class/android_usb/android0/idProduct
  453. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  454. write /sys/class/android_usb/android0/f_serial/transports hsic,tty
  455. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
  456. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  457. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
  458. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  459. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  460. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  461. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  462. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  463. write /sys/class/android_usb/android0/enable
  464. start adbd
  465. setprop sys.usb.state ${sys.usb.config}
  466.  
  467. # Fusion composition with diag_mdm
  468. on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage
  469. write /sys/class/android_usb/android0/enable
  470. write /sys/class/android_usb/android0/idVendor 05C6
  471. write /sys/class/android_usb/android0/idProduct
  472. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  473. write /sys/class/android_usb/android0/f_serial/transports hsic,tty
  474. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
  475. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  476. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
  477. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  478. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  479. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  480. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  481. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  482. write /sys/class/android_usb/android0/enable
  483. setprop sys.usb.state ${sys.usb.config}
  484.  
  485. # Fusion DSDA composition with adb
  486. on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage,adb
  487. write /sys/class/android_usb/android0/enable
  488. write /sys/class/android_usb/android0/idVendor 05C6
  489. write /sys/class/android_usb/android0/idProduct
  490. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  491. write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
  492. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
  493. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
  494. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
  495. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  496. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  497. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  498. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  499. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  500. write /sys/class/android_usb/android0/enable
  501. start adbd
  502. setprop sys.usb.state ${sys.usb.config}
  503.  
  504. # Fusion DSDA composition without adb
  505. on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage
  506. write /sys/class/android_usb/android0/enable
  507. write /sys/class/android_usb/android0/idVendor 05C6
  508. write /sys/class/android_usb/android0/idProduct
  509. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  510. write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
  511. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
  512. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
  513. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
  514. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  515. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  516. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  517. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  518. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  519. write /sys/class/android_usb/android0/enable
  520. setprop sys.usb.state ${sys.usb.config}
  521.  
  522. # Fusion DSDA2 composition with adb
  523. on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage,adb
  524. write /sys/class/android_usb/android0/enable
  525. write /sys/class/android_usb/android0/idVendor 05C6
  526. write /sys/class/android_usb/android0/idProduct
  527. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
  528. write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
  529. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
  530. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
  531. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
  532. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  533. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  534. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  535. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  536. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  537. write /sys/class/android_usb/android0/enable
  538. start adbd
  539. setprop sys.usb.state ${sys.usb.config}
  540.  
  541. # Fusion DSDA2 composition without adb
  542. on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage
  543. write /sys/class/android_usb/android0/enable
  544. write /sys/class/android_usb/android0/idVendor 05C6
  545. write /sys/class/android_usb/android0/idProduct
  546. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
  547. write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
  548. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
  549. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
  550. write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
  551. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  552. write /sys/module/mdm_bridge/parameters/rx_rmnet_buffer_size
  553. write /sys/module/mdm_bridge/parameters/max_rx_urbs
  554. write /sys/module/g_android/parameters/ghsic_data_rx_req_size
  555. write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size
  556. write /sys/class/android_usb/android0/enable
  557. setprop sys.usb.state ${sys.usb.config}
  558.  
  559. # Fusion PCIe composition with diag_mdm and adb
  560. # Serial & RmNet bridged in userspace with tty and qti/ether
  561. on property:sys.usb.config=diag,diag_mdm,serial_tty,rmnet_qti_ether,mass_storage,adb
  562. write /sys/class/android_usb/android0/enable
  563. write /sys/class/android_usb/android0/idVendor 05C6
  564. write /sys/class/android_usb/android0/idProduct
  565. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  566. write /sys/class/android_usb/android0/f_serial/transports tty
  567. write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
  568. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  569. write /sys/class/android_usb/android0/enable
  570. start adbd
  571. setprop sys.usb.state ${sys.usb.config}
  572.  
  573. # Fusion PCIe composition with diag_mdm
  574. # Serial & RmNet bridged in userspace with tty and qti/ether
  575. on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_hsic,mass_storage
  576. write /sys/class/android_usb/android0/enable
  577. write /sys/class/android_usb/android0/idVendor 05C6
  578. write /sys/class/android_usb/android0/idProduct
  579. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  580. write /sys/class/android_usb/android0/f_serial/transports tty
  581. write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
  582. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  583. write /sys/class/android_usb/android0/enable
  584. setprop sys.usb.state ${sys.usb.config}
  585.  
  586. # Fusion HSIC/PCIe Hybrid composition with diag_mdm and adb
  587. # RmNet is bridged over PCIe using qti,ether ctrl/data transports
  588. on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_qti_ether,mass_storage,adb
  589. write /sys/class/android_usb/android0/enable
  590. write /sys/class/android_usb/android0/idVendor 05C6
  591. write /sys/class/android_usb/android0/idProduct
  592. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  593. write /sys/class/android_usb/android0/f_serial/transports hsic
  594. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
  595. write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
  596. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  597. write /sys/class/android_usb/android0/enable
  598. start adbd
  599. setprop sys.usb.state ${sys.usb.config}
  600.  
  601. # Fusion HSIC/PCIe Hybrid composition with diag_mdm
  602. # RmNet is bridged over PCIe using qti,ether ctrl/data transports
  603. on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_hsic,mass_storage
  604. write /sys/class/android_usb/android0/enable
  605. write /sys/class/android_usb/android0/idVendor 05C6
  606. write /sys/class/android_usb/android0/idProduct
  607. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  608. write /sys/class/android_usb/android0/f_serial/transports hsic
  609. write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
  610. write /sys/class/android_usb/android0/f_rmnet/transports qti,ether
  611. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  612. write /sys/class/android_usb/android0/enable
  613. setprop sys.usb.state ${sys.usb.config}
  614.  
  615. # Fusion 2.2 composition with diag_qsc and adb
  616. on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb
  617. write /sys/class/android_usb/android0/enable
  618. write /sys/class/android_usb/android0/idVendor 05C6
  619. write /sys/class/android_usb/android0/idProduct
  620. write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
  621. write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
  622. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
  623. write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
  624. write /sys/class/android_usb/android0/enable
  625. start adbd
  626. setprop sys.usb.state ${sys.usb.config}
  627.  
  628. # Fusion 2.2 composition with diag_qsc
  629. on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage
  630. write /sys/class/android_usb/android0/enable
  631. write /sys/class/android_usb/android0/idVendor 05C6
  632. write /sys/class/android_usb/android0/idProduct
  633. write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
  634. write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
  635. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
  636. write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
  637. write /sys/class/android_usb/android0/enable
  638. setprop sys.usb.state ${sys.usb.config}
  639.  
  640. on property:sys.usb.config=rndis
  641. setprop sys.usb.config rndis,${persist.sys.usb.config.extra}
  642.  
  643. on property:sys.usb.config=rndis,none
  644. write /sys/class/android_usb/android0/enable
  645. write /sys/class/android_usb/android0/idVendor 17EF
  646. write /sys/class/android_usb/android0/idProduct
  647. write /sys/class/android_usb/android0/functions rndis,none
  648. write /sys/class/android_usb/android0/enable
  649. setprop sys.usb.state rndis
  650.  
  651. on property:sys.usb.config=rndis,adb
  652. stop adbd
  653. setprop sys.usb.config rndis,${persist.sys.usb.config.extra},adb
  654.  
  655. on property:sys.usb.config=rndis,none,adb
  656. stop adbd
  657. write /sys/class/android_usb/android0/enable
  658. write /sys/class/android_usb/android0/idVendor 17EF
  659. write /sys/class/android_usb/android0/idProduct
  660. write /sys/class/android_usb/android0/functions rndis,none,adb
  661. write /sys/class/android_usb/android0/enable
  662. start adbd
  663. setprop sys.usb.state rndis,adb
  664.  
  665. on property:sys.usb.config=rndis,diag
  666. write /sys/class/android_usb/android0/enable
  667. write /sys/class/android_usb/android0/idVendor 05C6
  668. write /sys/class/android_usb/android0/idProduct 902C
  669. write /sys/class/android_usb/android0/f_diag/clients diag
  670. write /sys/class/android_usb/android0/functions rndis,diag
  671. write /sys/class/android_usb/android0/enable
  672. setprop sys.usb.state rndis
  673.  
  674. on property:sys.usb.config=rndis,diag,adb
  675. stop adbd
  676. write /sys/class/android_usb/android0/enable
  677. write /sys/class/android_usb/android0/idVendor 05C6
  678. write /sys/class/android_usb/android0/idProduct 902D
  679. write /sys/class/android_usb/android0/f_diag/clients diag
  680. write /sys/class/android_usb/android0/functions rndis,diag,adb
  681. write /sys/class/android_usb/android0/enable
  682. start adbd
  683. setprop sys.usb.state rndis,adb
  684.  
  685. on property:sys.usb.config=rndis,serial_smd
  686. write /sys/class/android_usb/android0/enable
  687. write /sys/class/android_usb/android0/idVendor 05C6
  688. write /sys/class/android_usb/android0/idProduct 90B3
  689. write /sys/class/android_usb/android0/f_serial/transports smd
  690. write /sys/class/android_usb/android0/functions rndis,serial
  691. write /sys/class/android_usb/android0/enable
  692. setprop sys.usb.state rndis
  693.  
  694. on property:sys.usb.config=rndis,serial_smd,adb
  695. stop adbd
  696. write /sys/class/android_usb/android0/enable
  697. write /sys/class/android_usb/android0/idVendor 05C6
  698. write /sys/class/android_usb/android0/idProduct 90B4
  699. write /sys/class/android_usb/android0/f_serial/transports smd
  700. write /sys/class/android_usb/android0/functions rndis,serial,adb
  701. write /sys/class/android_usb/android0/enable
  702. start adbd
  703. setprop sys.usb.state rndis,adb
  704.  
  705. on property:sys.usb.config=rndis,serial_smd,diag
  706. write /sys/class/android_usb/android0/enable
  707. write /sys/class/android_usb/android0/idVendor 05C6
  708. write /sys/class/android_usb/android0/idProduct 90B5
  709. write /sys/class/android_usb/android0/f_diag/clients diag
  710. write /sys/class/android_usb/android0/f_serial/transports smd
  711. write /sys/class/android_usb/android0/functions rndis,serial,diag
  712. write /sys/class/android_usb/android0/enable
  713. setprop sys.usb.state rndis
  714.  
  715. on property:sys.usb.config=rndis,serial_smd,diag,adb
  716. stop adbd
  717. write /sys/class/android_usb/android0/enable
  718. write /sys/class/android_usb/android0/idVendor 05C6
  719. write /sys/class/android_usb/android0/idProduct 90B6
  720. write /sys/class/android_usb/android0/f_diag/clients diag
  721. write /sys/class/android_usb/android0/f_serial/transports smd
  722. write /sys/class/android_usb/android0/functions rndis,serial,diag,adb
  723. write /sys/class/android_usb/android0/enable
  724. start adbd
  725. setprop sys.usb.state rndis,adb
  726.  
  727. on property:sys.usb.config=rndis,diag,diag_mdm
  728. write /sys/class/android_usb/android0/enable
  729. write /sys/class/android_usb/android0/idVendor 05C6
  730. write /sys/class/android_usb/android0/idProduct
  731. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  732. write /sys/class/android_usb/android0/functions rndis,diag
  733. write /sys/class/android_usb/android0/enable
  734. setprop sys.usb.state rndis
  735.  
  736. on property:sys.usb.config=rndis,diag,diag_mdm,adb
  737. stop adbd
  738. write /sys/class/android_usb/android0/enable
  739. write /sys/class/android_usb/android0/idVendor 05C6
  740. write /sys/class/android_usb/android0/idProduct
  741. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  742. write /sys/class/android_usb/android0/functions rndis,diag,adb
  743. write /sys/class/android_usb/android0/enable
  744. start adbd
  745. setprop sys.usb.state rndis,adb
  746.  
  747. on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc
  748. write /sys/class/android_usb/android0/enable
  749. write /sys/class/android_usb/android0/idVendor 05C6
  750. write /sys/class/android_usb/android0/idProduct
  751. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  752. write /sys/class/android_usb/android0/functions rndis,diag
  753. write /sys/class/android_usb/android0/enable
  754. setprop sys.usb.state rndis
  755.  
  756. on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc,adb
  757. stop adbd
  758. write /sys/class/android_usb/android0/enable
  759. write /sys/class/android_usb/android0/idVendor 05C6
  760. write /sys/class/android_usb/android0/idProduct
  761. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  762. write /sys/class/android_usb/android0/functions rndis,diag,adb
  763. write /sys/class/android_usb/android0/enable
  764. start adbd
  765. setprop sys.usb.state rndis,adb
  766.  
  767. on property:sys.usb.config=ptp
  768. write /sys/class/android_usb/android0/enable
  769. write /sys/class/android_usb/android0/idVendor 17EF
  770. write /sys/class/android_usb/android0/idProduct 749A
  771. write /sys/class/android_usb/android0/functions ptp
  772. write /sys/class/android_usb/android0/enable
  773. setprop sys.usb.state ${sys.usb.config}
  774.  
  775. on property:sys.usb.config=ptp,adb
  776. stop adbd
  777. write /sys/class/android_usb/android0/enable
  778. write /sys/class/android_usb/android0/idVendor 17EF
  779. write /sys/class/android_usb/android0/idProduct 74F9
  780. write /sys/class/android_usb/android0/functions ptp,adb
  781. write /sys/class/android_usb/android0/enable
  782. start adbd
  783. setprop sys.usb.state ${sys.usb.config}
  784.  
  785. on property:sys.usb.config=mtp,mass_storage
  786. write /sys/class/android_usb/android0/enable
  787. write /sys/class/android_usb/android0/idVendor 17EF
  788. write /sys/class/android_usb/android0/idProduct 74A6
  789. write /sys/class/android_usb/android0/functions mtp,mass_storage
  790. write /sys/class/android_usb/android0/enable
  791. setprop sys.usb.state ${sys.usb.config}
  792.  
  793. on property:sys.usb.config=mtp,adb,mass_storage
  794. stop adbd
  795. write /sys/class/android_usb/android0/enable
  796. write /sys/class/android_usb/android0/idVendor 17EF
  797. write /sys/class/android_usb/android0/idProduct 74EE
  798. write /sys/class/android_usb/android0/functions mtp,adb,mass_storage
  799. write /sys/class/android_usb/android0/enable
  800. start adbd
  801. setprop sys.usb.state ${sys.usb.config}
  802.  
  803. on property:sys.usb.config=mtp,mass_storage,adb
  804. stop adbd
  805. write /sys/class/android_usb/android0/enable
  806. write /sys/class/android_usb/android0/idVendor 17EF
  807. write /sys/class/android_usb/android0/idProduct
  808. write /sys/class/android_usb/android0/functions mtp,mass_storage,adb
  809. write /sys/class/android_usb/android0/enable
  810. start adbd
  811. setprop sys.usb.state ${sys.usb.config}
  812. on property:sys.usb.config=mtp
  813. write /sys/class/android_usb/android0/enable
  814. ##shenyong.wt,,add mtp+cdrom
  815. write /sys/class/android_usb/f_mass_storage/luns "lenovomtp"
  816. write /sys/class/android_usb/android0/idVendor 17EF
  817. write /sys/class/android_usb/android0/idProduct 74A6
  818. write /sys/class/android_usb/android0/functions mtp,mass_storage
  819. write /sys/class/android_usb/android0/enable
  820. setprop sys.usb.state ${sys.usb.config}
  821.  
  822. on property:sys.usb.config=mtp,adb
  823. stop adbd
  824. write /sys/class/android_usb/android0/enable
  825. ##shenyong.wt,,add mtp+cdrom
  826. write /sys/class/android_usb/f_mass_storage/luns "lenovomtp"
  827. write /sys/class/android_usb/android0/idVendor 17EF
  828. write /sys/class/android_usb/android0/idProduct
  829. write /sys/class/android_usb/android0/functions mtp,mass_storage,adb
  830. write /sys/class/android_usb/android0/enable
  831. start adbd
  832. setprop sys.usb.state ${sys.usb.config}
  833.  
  834. on property:sys.usb.config=mtp,diag
  835. write /sys/class/android_usb/android0/enable
  836. write /sys/class/android_usb/android0/idVendor 05C6
  837. write /sys/class/android_usb/android0/idProduct 901B
  838. write /sys/class/android_usb/android0/f_diag/clients diag
  839. write /sys/class/android_usb/android0/functions mtp,diag
  840. write /sys/class/android_usb/android0/enable
  841. setprop sys.usb.state ${sys.usb.config}
  842.  
  843. on property:sys.usb.config=mtp,diag,adb
  844. stop adbd
  845. write /sys/class/android_usb/android0/enable
  846. write /sys/class/android_usb/android0/idVendor 05C6
  847. write /sys/class/android_usb/android0/idProduct 903A
  848. write /sys/class/android_usb/android0/f_diag/clients diag
  849. write /sys/class/android_usb/android0/functions mtp,diag,adb
  850. write /sys/class/android_usb/android0/enable
  851. start adbd
  852. setprop sys.usb.state ${sys.usb.config}
  853.  
  854. on property:sys.usb.config=mtp,diag,diag_mdm
  855. write /sys/class/android_usb/android0/enable
  856. write /sys/class/android_usb/android0/idVendor 05C6
  857. write /sys/class/android_usb/android0/idProduct
  858. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  859. write /sys/class/android_usb/android0/functions mtp,diag
  860. write /sys/class/android_usb/android0/enable
  861. setprop sys.usb.state ${sys.usb.config}
  862.  
  863. on property:sys.usb.config=mtp,diag,diag_mdm,adb
  864. stop adbd
  865. write /sys/class/android_usb/android0/enable
  866. write /sys/class/android_usb/android0/idVendor 05C6
  867. write /sys/class/android_usb/android0/idProduct 903F
  868. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  869. write /sys/class/android_usb/android0/functions mtp,diag,adb
  870. write /sys/class/android_usb/android0/enable
  871. start adbd
  872. setprop sys.usb.state ${sys.usb.config}
  873.  
  874. on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc
  875. write /sys/class/android_usb/android0/enable
  876. write /sys/class/android_usb/android0/idVendor 05C6
  877. write /sys/class/android_usb/android0/idProduct
  878. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  879. write /sys/class/android_usb/android0/functions mtp,diag
  880. write /sys/class/android_usb/android0/enable
  881. setprop sys.usb.state ${sys.usb.config}
  882.  
  883. on property:sys.usb.config=mtp,diag,diag_mdm,diag_qsc,adb
  884. stop adbd
  885. write /sys/class/android_usb/android0/enable
  886. write /sys/class/android_usb/android0/idVendor 05C6
  887. write /sys/class/android_usb/android0/idProduct
  888. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
  889. write /sys/class/android_usb/android0/functions mtp,diag,adb
  890. write /sys/class/android_usb/android0/enable
  891. start adbd
  892. setprop sys.usb.state ${sys.usb.config}
  893.  
  894. on property:sys.usb.config=diag,diag_mdm,ccid
  895. write /sys/class/android_usb/android0/enable
  896. write /sys/class/android_usb/android0/idVendor 05C6
  897. write /sys/class/android_usb/android0/idProduct
  898. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  899. write /sys/class/android_usb/android0/functions diag,ccid
  900. write /sys/class/android_usb/android0/enable
  901. setprop sys.usb.state ${sys.usb.config}
  902.  
  903. on property:sys.usb.config=diag,diag_mdm,ccid,adb
  904. stop adbd
  905. write /sys/class/android_usb/android0/enable
  906. write /sys/class/android_usb/android0/idVendor 05C6
  907. write /sys/class/android_usb/android0/idProduct
  908. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  909. write /sys/class/android_usb/android0/functions diag,adb,ccid
  910. write /sys/class/android_usb/android0/enable
  911. start adbd
  912. setprop sys.usb.state ${sys.usb.config}
  913.  
  914. on property:sys.usb.config=mass_storage,adb
  915. stop adbd
  916. write /sys/class/android_usb/android0/enable
  917. ##shenyong.wt,,add mtp+cdrom
  918. write /sys/class/android_usb/f_mass_storage/luns "default"
  919. write /sys/class/android_usb/android0/idVendor 17EF
  920. write /sys/class/android_usb/android0/idProduct
  921. write /sys/class/android_usb/android0/functions mass_storage,adb
  922. write /sys/class/android_usb/android0/enable
  923. start adbd
  924. setprop sys.usb.state ${sys.usb.config}
  925.  
  926. #Mass-storage only composition
  927. on property:sys.usb.config=mass_storage
  928. write /sys/class/android_usb/android0/enable
  929. ##shenyong.wt,,add mtp+cdrom
  930. write /sys/class/android_usb/f_mass_storage/luns "default"
  931. write /sys/class/android_usb/android0/idVendor 17EF
  932. write /sys/class/android_usb/android0/idProduct 743A
  933. write /sys/class/android_usb/android0/functions mass_storage
  934. write /sys/class/android_usb/android0/enable
  935. setprop sys.usb.state ${sys.usb.config}
  936.  
  937. on property:sys.usb.config=uws
  938. write /sys/class/android_usb/android0/enable
  939. ##shenyong.wt,,add mtp+cdrom
  940. write /sys/class/android_usb/f_mass_storage/luns "lenovomtp"
  941. write /sys/class/android_usb/android0/idVendor 17EF
  942. write /sys/class/android_usb/android0/idProduct 743D
  943. write /sys/class/android_usb/android0/functions mass_storage
  944. write /sys/class/android_usb/android0/enable
  945. setprop sys.usb.state ${sys.usb.config}
  946.  
  947. on property:sys.usb.config=uws,adb
  948. stop adbd
  949. write /sys/class/android_usb/android0/enable
  950. ##shenyong.wt,,add mtp+cdrom
  951. write /sys/class/android_usb/f_mass_storage/luns "lenovomtp"
  952. write /sys/class/android_usb/android0/idVendor 17EF
  953. write /sys/class/android_usb/android0/idProduct
  954. write /sys/class/android_usb/android0/functions adb,mass_storage
  955. write /sys/class/android_usb/android0/enable
  956. start adbd
  957. setprop sys.usb.state ${sys.usb.config}
  958.  
  959. on property:sys.usb.config=diag,qdss
  960. write /sys/class/android_usb/android0/enable
  961. write /sys/class/android_usb/android0/idVendor 05C6
  962. write /sys/class/android_usb/android0/idProduct 904A
  963. write /sys/class/android_usb/android0/f_diag/clients diag
  964. write /sys/class/android_usb/android0/f_qdss/debug_intf
  965. write /sys/class/android_usb/android0/f_qdss/transports bam
  966. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  967. write /sys/class/android_usb/android0/functions diag,qdss
  968. write /sys/class/android_usb/android0/enable
  969. setprop sys.usb.state ${sys.usb.config}
  970.  
  971. on property:sys.usb.config=diag,qdss,adb
  972. stop adbd
  973. write /sys/class/android_usb/android0/enable
  974. write /sys/class/android_usb/android0/idVendor 05C6
  975. write /sys/class/android_usb/android0/idProduct
  976. write /sys/class/android_usb/android0/f_diag/clients diag
  977. write /sys/class/android_usb/android0/f_qdss/debug_intf
  978. write /sys/class/android_usb/android0/f_qdss/transports bam
  979. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  980. write /sys/class/android_usb/android0/functions diag,qdss,adb
  981. write /sys/class/android_usb/android0/enable
  982. start adbd
  983. setprop sys.usb.state ${sys.usb.config}
  984.  
  985. on property:sys.usb.config=diag,diag_mdm,qdss
  986. write /sys/class/android_usb/android0/enable
  987. write /sys/class/android_usb/android0/idVendor 05C6
  988. write /sys/class/android_usb/android0/idProduct
  989. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  990. write /sys/class/android_usb/android0/f_qdss/debug_intf
  991. write /sys/class/android_usb/android0/f_qdss/transports bam
  992. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  993. write /sys/class/android_usb/android0/functions diag,qdss
  994. write /sys/class/android_usb/android0/enable
  995. setprop sys.usb.state ${sys.usb.config}
  996.  
  997. on property:sys.usb.config=diag,diag_mdm,qdss,adb
  998. stop adbd
  999. write /sys/class/android_usb/android0/enable
  1000. write /sys/class/android_usb/android0/idVendor 05C6
  1001. write /sys/class/android_usb/android0/idProduct
  1002. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  1003. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1004. write /sys/class/android_usb/android0/f_qdss/transports bam
  1005. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1006. write /sys/class/android_usb/android0/functions diag,qdss,adb
  1007. write /sys/class/android_usb/android0/enable
  1008. start adbd
  1009. setprop sys.usb.state ${sys.usb.config}
  1010.  
  1011. on property:sys.usb.config=diag,qdss,rmnet_bam
  1012. write /sys/class/android_usb/android0/enable
  1013. write /sys/class/android_usb/android0/idVendor 05C6
  1014. write /sys/class/android_usb/android0/idProduct
  1015. write /sys/class/android_usb/android0/f_diag/clients diag
  1016. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  1017. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1018. write /sys/class/android_usb/android0/f_qdss/transports bam
  1019. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1020. write /sys/class/android_usb/android0/functions diag,qdss,rmnet
  1021. write /sys/class/android_usb/android0/enable
  1022. setprop sys.usb.state ${sys.usb.config}
  1023.  
  1024. on property:sys.usb.config=diag,qdss,rmnet_bam,adb
  1025. stop adbd
  1026. write /sys/class/android_usb/android0/enable
  1027. write /sys/class/android_usb/android0/idVendor 05C6
  1028. write /sys/class/android_usb/android0/idProduct
  1029. write /sys/class/android_usb/android0/f_diag/clients diag
  1030. write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
  1031. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1032. write /sys/class/android_usb/android0/f_qdss/transports bam
  1033. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1034. write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
  1035. write /sys/module/dwc3/parameters/tx_fifo_resize_enable
  1036. write /sys/class/android_usb/android0/enable
  1037. start adbd
  1038. setprop sys.usb.state ${sys.usb.config}
  1039.  
  1040. on property:sys.usb.config=diag,diag_mdm,qdss,rmnet_hsic
  1041. write /sys/class/android_usb/android0/enable
  1042. write /sys/class/android_usb/android0/idVendor 05C6
  1043. write /sys/class/android_usb/android0/idProduct 909B
  1044. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  1045. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  1046. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1047. write /sys/class/android_usb/android0/f_qdss/transports bam
  1048. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1049. write /sys/class/android_usb/android0/functions diag,qdss,rmnet
  1050. write /sys/class/android_usb/android0/enable
  1051. setprop sys.usb.state ${sys.usb.config}
  1052.  
  1053. on property:sys.usb.config=diag,diag_mdm,qdss,rmnet_hsic,adb
  1054. stop adbd
  1055. write /sys/class/android_usb/android0/enable
  1056. write /sys/class/android_usb/android0/idVendor 05C6
  1057. write /sys/class/android_usb/android0/idProduct 909A
  1058. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  1059. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  1060. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1061. write /sys/class/android_usb/android0/f_qdss/transports bam
  1062. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1063. write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
  1064. write /sys/module/dwc3/parameters/tx_fifo_resize_enable
  1065. write /sys/class/android_usb/android0/enable
  1066. start adbd
  1067. setprop sys.usb.state ${sys.usb.config}
  1068.  
  1069. on property:sys.usb.config=diag,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic
  1070. write /sys/class/android_usb/android0/enable
  1071. write /sys/class/android_usb/android0/idVendor 05C6
  1072. write /sys/class/android_usb/android0/idProduct 90A3
  1073. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  1074. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  1075. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1076. write /sys/class/android_usb/android0/f_qdss/transports bam,hsic
  1077. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic
  1078. write /sys/class/android_usb/android0/functions diag,qdss,rmnet
  1079. write /sys/class/android_usb/android0/enable
  1080. setprop sys.usb.state ${sys.usb.config}
  1081.  
  1082. on property:sys.usb.config=diag,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic,adb
  1083. stop adbd
  1084. write /sys/class/android_usb/android0/enable
  1085. write /sys/class/android_usb/android0/idVendor 05C6
  1086. write /sys/class/android_usb/android0/idProduct 90A2
  1087. write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
  1088. write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
  1089. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1090. write /sys/class/android_usb/android0/f_qdss/transports bam,hsic
  1091. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic
  1092. write /sys/class/android_usb/android0/functions diag,qdss,adb,rmnet
  1093. write /sys/module/dwc3/parameters/tx_fifo_resize_enable
  1094. write /sys/class/android_usb/android0/enable
  1095. start adbd
  1096. setprop sys.usb.state ${sys.usb.config}
  1097.  
  1098. on property:sys.usb.config=rndis,diag,qdss
  1099. write /sys/class/android_usb/android0/enable
  1100. write /sys/class/android_usb/android0/idVendor 05C6
  1101. write /sys/class/android_usb/android0/idProduct
  1102. write /sys/class/android_usb/android0/f_diag/clients diag
  1103. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1104. write /sys/class/android_usb/android0/f_qdss/transports bam
  1105. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1106. write /sys/class/android_usb/android0/functions rndis,diag,qdss
  1107. write /sys/class/android_usb/android0/enable
  1108. setprop sys.usb.state ${sys.usb.config}
  1109.  
  1110. on property:sys.usb.config=rndis,diag,qdss,adb
  1111. stop adbd
  1112. write /sys/class/android_usb/android0/enable
  1113. write /sys/class/android_usb/android0/idVendor 05C6
  1114. write /sys/class/android_usb/android0/idProduct
  1115. write /sys/class/android_usb/android0/f_diag/clients diag
  1116. write /sys/class/android_usb/android0/f_qdss/debug_intf
  1117. write /sys/class/android_usb/android0/f_qdss/transports bam
  1118. write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam
  1119. write /sys/class/android_usb/android0/functions rndis,diag,qdss,adb
  1120. write /sys/module/dwc3/parameters/tx_fifo_resize_enable
  1121. write /sys/class/android_usb/android0/enable
  1122. start adbd
  1123. setprop sys.usb.state ${sys.usb.config}
  1124.  
  1125. on property:sys.usb.config=ncm
  1126. write /sys/class/android_usb/android0/enable
  1127. write /sys/class/android_usb/android0/idVendor
  1128. write /sys/class/android_usb/android0/idProduct A4A1
  1129. write /sys/class/android_usb/android0/functions ncm
  1130. write /sys/class/android_usb/android0/enable
  1131. setprop sys.usb.state ${sys.usb.config}
  1132.  
  1133. on property:sys.usb.config=ncm,adb
  1134. stop adbd
  1135. write /sys/class/android_usb/android0/enable
  1136. write /sys/class/android_usb/android0/idVendor 05C6
  1137. write /sys/class/android_usb/android0/idProduct 908C
  1138. write /sys/class/android_usb/android0/functions ncm,adb
  1139. write /sys/class/android_usb/android0/enable
  1140. start adbd
  1141. setprop sys.usb.state ${sys.usb.config}
  1142.  
  1143. on property:sys.usb.config=charging
  1144. write /sys/class/android_usb/android0/enable
  1145. write /sys/class/android_usb/android0/idVendor 05C6
  1146. write /sys/class/android_usb/android0/idProduct F006
  1147. write /sys/class/android_usb/android0/functions charging
  1148. write /sys/class/android_usb/android0/enable
  1149. setprop sys.usb.state ${sys.usb.config}

下边是开机后不插usb线,kernel log中与android.c相关的log,可以看到该文件中各个函数的调用顺序


254 [ 7.893632][UTC:1970-01-01 00:00:07(7)]init: Nathan init
255 [ 7.899461][UTC:1970-01-01 00:00:07(7)]android_probe: Nathan android_probe
256 [ 7.905813][UTC:1970-01-01 00:00:07(7)]android_create_device: Nathan android_create_device
257 [ 7.914843][UTC:1970-01-01 00:00:07(7)]android_bind: Nathan android_bind
258 [ 7.920619][UTC:1970-01-01 00:00:07(7)]cdev_to_android_dev: Nathan cdev_to_android_dev
259 [ 7.928555][UTC:1970-01-01 00:00:07(7)]android_init_functions: Nathan android_init_functions
264 [ 7.966995][UTC:1970-01-01 00:00:07(7)]cdev_to_android_dev: Nathan cdev_to_android_dev
272 [ 8.029023][UTC:1970-01-01 00:00:07(7)]init: Nathan init, after platform_driver_register
387 [ 15.848597][UTC:1970-01-01 00:09:35(575)]enable_store: Nathan enable_store buf:0
389 [ 15.872882][UTC:1970-01-01 00:09:35(575)]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
390 [ 15.889524][UTC:1970-01-01 00:09:35(575)]alloc_android_config: Nathan alloc_android_config
391 [ 15.898231][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
392 [ 15.906078][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
393 [ 15.920715][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
395 [ 15.937418][UTC:1970-01-01 00:09:35(575)]enable_store: Nathan enable_store buf:1
396 [ 15.937431][UTC:1970-01-01 00:09:35(575)]android_disable: Nathan android_disable
397 [ 15.937434][UTC:1970-01-01 00:09:35(575)]android_enable: Nathan android_enable
398 [ 15.975975][UTC:1970-01-01 00:09:35(575)]android_enable: Nathan android_enable
400 [ 15.993523][UTC:1970-01-01 00:09:35(575)]cdev_to_android_dev: Nathan cdev_to_android_dev
401 [ 16.003646][UTC:1970-01-01 00:09:35(575)]android_bind_config: Nathan android_bind_config
403 [ 16.029783][UTC:1970-01-01 00:09:35(575)]diag: In diag_send_log_mask_update, invalid status 0[ 16.030342][UTC:1970-01-01 00:09:35(575)]android_bind_enabled_functions: Nathan android_bind_enabled_functions
451 [ 30.480285][UTC:2014-01-01 00:00:09(1388534409)]state_show: Nathan state_show buf:

下面是完整的kernel log


1 [ 3.713760] usbcore: registered new interface driver ums-sddr55
2 [ 3.719788] usbcore: registered new interface driver ums-usbat
3 [ 3.725777] usbcore: registered new interface driver usbserial
4 [ 3.731299] usbcore: registered new interface driver qc_csvt
5 [ 3.736990] usbserial: USB Serial support registered for qc_csvt
6 [ 3.742957] usbcore: registered new interface driver usb_ehset_test
7 [ 3.751881] msm_otg 78d9000.usb: phy_reset: success
8 [ 3.759026] mousedev: PS/2 mouse device common for all mice
9 [ 3.764506] usbcore: registered new interface driver xpad
10 [ 3.772360] input: ft5x06_ts as /devices/soc.0/78b9000.i2c/i2c-5/5-0038/input/input0
11 [ 4.015241] i2c-msm-v2 78b9000.i2c: msm_bus_scale_register_client(mstr-id:86):0xa (ok)
12 [ 4.023430] ft5x06_ts 5-0038: Device ID = 0x12
13 [ 4.027958] ft5x06_ts 5-0038: report rate = 120Hz
14 [ 4.033764] ft5x06_ts 5-0038: Firmware version = 27.0.0
15 [ 4.185145] i2c-msm-v2 78b6000.i2c: msm_bus_scale_register_client(mstr-id:86):0xb (ok)
16 [ 4.194073] input: accelerometer as /devices/soc.0/78b6000.i2c/i2c-0/0-000e/input/input1
17 [ 4.201225] kxtj9 0-000e: Power on=1. enabled=1
18 [ 4.404626] i2c-msm-v2 78b6000.i2c: slave:0x68 is not responding (I2C-NACK) ensure the slave is powered and out of reset
19 [ 4.414595] mpu6050 0-0068: Fail to read power mode, ret=-107
20 [ 4.420204] mpu6050 0-0068: Cannot get invalid chip type
21 [ 4.425710] mpu6050 0-0068: Probe device return error-107
22 [ 4.430901] mpu6050: probe of 0-0068 failed with error -107
23 [ 4.436592] AKM compass driver: initialize.
24 [ 4.440807] i2c-msm-v2 78b6000.i2c: slave:0xc is not responding (I2C-NACK) ensure the slave is powered and out of reset
25 [ 4.451527] akm09911 0-000c: akm_i2c_txdata: transfer failed.
26 [ 4.457156] akm09911 0-000c: AKECS_Set_PowerDown: Can not set to powerdown mode.
27 [ 4.554608] i2c-msm-v2 78b6000.i2c: slave:0xc is not responding (I2C-NACK) ensure the slave is powered and out of reset
28 [ 4.564488] akm09911 0-000c: akm_i2c_rxdata: transfer failed.
29 [ 4.570357] akm09911: probe of 0-000c failed with error -107
30 [ 4.643134] input: light as /devices/virtual/input/input2
31 [ 4.648518] input: proximity as /devices/virtual/input/input3
32 [ 4.826101][UTC:1970-01-01 00:00:04(4)]qcom,qpnp-rtc qpnp-rtc-ee342800: rtc core: registered qpnp_rtc as rtc0
33 [ 4.835433][UTC:1970-01-01 00:00:04(4)]i2c /dev entries driver
34 [ 4.846966][UTC:1970-01-01 00:00:04(4)]platform 1d00000.qcom,vidc: Driver msm_vidc_v4l2 requests probe deferral
35 [ 4.859382][UTC:1970-01-01 00:00:04(4)]msm_cci_probe: pdev ee3a8a00 device id = -1
36 [ 4.879702][UTC:1970-01-01 00:00:04(4)]msm_flash_lm3642_init entry
37 [ 4.888167][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
38 [ 4.895260][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
39 [ 4.902980][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
40 [ 4.910727][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
41 [ 4.918535][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
42 [ 4.926370][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
43 [ 4.934109][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
44 [ 4.941977][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
45 [ 4.949789][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
46 [ 4.957602][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
47 [ 4.965418][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
48 [ 4.973182][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
49 [ 4.981048][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
50 [ 4.988857][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
51 [ 4.996675][UTC:1970-01-01 00:00:04(4)]msm_eeprom_parse_memory_map: pageen not needed
52 [ 5.093984][UTC:1970-01-01 00:00:05(5)]msm_cci_init:756: hw_version = 0x10000008
53 [ 5.491341][UTC:1970-01-01 00:00:05(5)]MSM-SENSOR-INIT msm_sensor_init_module:143 MSM_SENSOR_INIT_MODULE (null)
54 [ 5.504102][UTC:1970-01-01 00:00:05(5)]g_sctrl[0] edac3c00
55 [ 5.510062][UTC:1970-01-01 00:00:05(5)]g_sctrl[1] edac3e00[ 5.514727][UTC:1970-01-01 00:00:05(5)]mt9m114_init_module:1155
56 [ 5.521672][UTC:1970-01-01 00:00:05(5)]mt9m114_init_module:1160 rc -19
57 [ 5.527380][UTC:1970-01-01 00:00:05(5)]ov5645_init_module:558
58 [ 5.551281][UTC:1970-01-01 00:00:05(5)]MSM-CPP cpp_init_hardware:815 CPP HW Version: 0x40010000
59 [ 5.559083][UTC:1970-01-01 00:00:05(5)]MSM-CPP cpp_init_hardware:825 stream_cnt:0
60 [ 5.574951][UTC:1970-01-01 00:00:05(5)]__msm_jpeg_init:1236] Jpeg Device id 0
61 [ 5.584300][UTC:1970-01-01 00:00:05(5)]BMS: bms_get_adc: vadc not found - defer probe rc=-517
62 [ 5.592060][UTC:1970-01-01 00:00:05(5)]BMS: qpnp_vm_bms_probe: Failed to get adc rc=-517
63 [ 5.600126][UTC:1970-01-01 00:00:05(5)]spmi qpnp-vm-bms-ee343200: Driver qcom,qpnp-vm-bms requests probe deferral
64 [ 5.610834][UTC:1970-01-01 00:00:05(5)]CHG: qpnp_lbc_probe: Failed to read DT properties rc=-517
65 [ 5.619135][UTC:1970-01-01 00:00:05(5)]spmi qpnp-linear-charger-ee343000: Driver qcom,qpnp-linear-charger requests probe deferral
66 [ 5.632038][UTC:1970-01-01 00:00:05(5)]unable to find DT imem DLOAD mode node
67 [ 5.638995][UTC:1970-01-01 00:00:05(5)]unable to find DT imem EDLOAD mode node
68 [ 5.671162][UTC:1970-01-01 00:00:05(5)]device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
69 [ 5.681480][UTC:1970-01-01 00:00:05(5)]cpuidle: using governor ladder
70 [ 5.687428][UTC:1970-01-01 00:00:05(5)]cpuidle: using governor menu
71 [ 5.693731][UTC:1970-01-01 00:00:05(5)]sdhci: Secure Digital Host Controller Interface driver
72 [ 5.702338][UTC:1970-01-01 00:00:05(5)]sdhci: Copyright(c) Pierre Ossman
73 [ 5.708971][UTC:1970-01-01 00:00:05(5)]sdhci-pltfm: SDHCI platform and OF driver helper
74 [ 5.727596][UTC:1970-01-01 00:00:05(5)]mmc0: no vqmmc regulator found
75 [ 5.733058][UTC:1970-01-01 00:00:05(5)]mmc0: no vmmc regulator found
76 [ 5.772574][UTC:1970-01-01 00:00:05(5)]mmc0: SDHCI controller on 7824900.sdhci [7824900.sdhci] using 32-bit ADMA
77 [ 5.795264][UTC:1970-01-01 00:00:05(5)]mmc1: no vqmmc regulator found
78 [ 5.800727][UTC:1970-01-01 00:00:05(5)]mmc1: no vmmc regulator found
79 [ 5.847657][UTC:1970-01-01 00:00:05(5)]mmc1: SDHCI controller on 7864900.sdhci [7864900.sdhci] using 32-bit ADMA
80 [ 5.863973][UTC:1970-01-01 00:00:05(5)]qcom,leds-qpnp: probe of leds-qpnp-ee343400 failed with error -10
81 [ 5.876518][UTC:1970-01-01 00:00:05(5)]QCE50: __qce_get_device_tree_data: bam_pipe_pair=0x1
82 [ 5.883733][UTC:1970-01-01 00:00:05(5)]QCE50: __qce_get_device_tree_data: ce-device =0x0QCE50: __qce_get_device_tree_data: ce_phy_reg_base=0x720000
83 [ 5.897100][UTC:1970-01-01 00:00:05(5)]QCE50: __qce_get_device_tree_data: ce_virt_reg_base=0xf07c0000
84 [ 5.906703][UTC:1970-01-01 00:00:05(5)]QCE50: __qce_get_device_tree_data: ce_bam_phy_reg_base=0x704000
85 [ 5.915949][UTC:1970-01-01 00:00:05(5)]QCE50: __qce_get_device_tree_data: CRYPTO BAM IRQ = 239.
86 [ 5.926542][UTC:1970-01-01 00:00:05(5)]XXX::mmca_vsn::csd.mmca_vsn=4
87 [ 5.926723][UTC:1970-01-01 00:00:05(5)]qce 720000.qcedev: Qualcomm Crypto 5.3.1 device found @0x720000
88 [ 5.926748][UTC:1970-01-01 00:00:05(5)]qce 720000.qcedev: CE device = 0x0
89 [ 5.926748][UTC:1970-01-01 00:00:05(5)], IO base, CE = 0xf07c0000
90 [ 5.926748][UTC:1970-01-01 00:00:05(5)], Consumer (IN) PIPE 2, Producer (OUT) PIPE 3
91 [ 5.926748][UTC:1970-01-01 00:00:05(5)]IO base BAM = 0x0
92 [ 5.926748][UTC:1970-01-01 00:00:05(5)]BAM IRQ 239
93 [ 5.926748][UTC:1970-01-01 00:00:05(5)]Engines Availability = 0x2010853
94 [ 5.978887][UTC:1970-01-01 00:00:05(5)]XXX::emmc_name=KMQ7x000SA-B315-Samsung
95 [ 5.986516][UTC:1970-01-01 00:00:05(5)]sps:BAM 0x00704000 is registered.
96 [ 5.986518][UTC:1970-01-01 00:00:05(5)]sps:BAM 0x00704000 (va:0xf0c40000) enabled: ver:0x25, number of pipes:8
97 [ 6.002778][UTC:1970-01-01 00:00:05(5)]mmc0: BKOPS_EN bit = 0
98 [ 6.009001][UTC:1970-01-01 00:00:05(5)]QCE50: qce_sps_init: Qualcomm MSM CE-BAM at 0x0000000000704000 irq 239
99 [ 6.022086][UTC:1970-01-01 00:00:05(5)]usbcore: registered new interface driver usbhid
100 [ 6.029120][UTC:1970-01-01 00:00:05(5)]usbhid: USB HID core driver
101 [ 6.036475][UTC:1970-01-01 00:00:06(6)]zram: Created 1 device(s) ...
102 [ 6.044187][UTC:1970-01-01 00:00:06(6)]ashmem: initialized
103 [ 6.052317][UTC:1970-01-01 00:00:06(6)]mmc0: new HS200 MMC card at address 0001
104 [ 6.053877][UTC:1970-01-01 00:00:06(6)]logger: created 256K log 'log_main'
105 [ 6.055216][UTC:1970-01-01 00:00:06(6)]logger: created 256K log 'log_events'
106 [ 6.056467][UTC:1970-01-01 00:00:06(6)]logger: created 256K log 'log_radio'
107 [ 6.057725][UTC:1970-01-01 00:00:06(6)]logger: created 256K log 'log_system'
108 [ 6.086786][UTC:1970-01-01 00:00:06(6)]sps:BAM 0x078c4000 is registered.
109 [ 6.093153][UTC:1970-01-01 00:00:06(6)]usb_bam_ipa_create_resources: Failed to create USB_PROD resource
110 [ 6.093321][UTC:1970-01-01 00:00:06(6)]mmcblk0: mmc0:0001 Q7XSAB 7.28 GiB
111 [ 6.109677][UTC:1970-01-01 00:00:06(6)]mmcblk0rpmb: mmc0:0001 Q7XSAB partition 3 512 KiB
112 [ 6.110533][UTC:1970-01-01 00:00:06(6)]qcom,qpnp-power-on qpnp-power-on-ee342200: PMIC@SID0 Power-on reason: Triggered from KPD (power key press) and 'cold' boot
113 [ 6.110559][UTC:1970-01-01 00:00:06(6)]qcom,qpnp-power-on qpnp-power-on-ee342200: PMIC@SID0: Power-off reason: Triggered from UVLO (Under Voltage Lock Out)
114 [ 6.111154][UTC:1970-01-01 00:00:06(6)]input: qpnp_pon as /devices/virtual/input/input4
115 [ 6.115044][UTC:1970-01-01 00:00:06(6)]PMIC@SID0: PM8916 v2.0 options: 2, 2, 0, 0
116 [ 6.118625][UTC:1970-01-01 00:00:06(6)]coresight-fuse 5e01c.fuse: Fuse initialized
117 [ 6.120393][UTC:1970-01-01 00:00:06(6)]coresight-cti 810000.cti: CTI initialized
118 [ 6.120922][UTC:1970-01-01 00:00:06(6)]coresight-cti 811000.cti: CTI initialized
119 [ 6.121426][UTC:1970-01-01 00:00:06(6)]coresight-cti 812000.cti: CTI initialized
120 [ 6.121952][UTC:1970-01-01 00:00:06(6)]coresight-cti 813000.cti: CTI initialized
121 [ 6.122455][UTC:1970-01-01 00:00:06(6)]coresight-cti 814000.cti: CTI initialized
122 [ 6.122986][UTC:1970-01-01 00:00:06(6)]coresight-cti 815000.cti: CTI initialized
123 [ 6.123457][UTC:1970-01-01 00:00:06(6)]coresight-cti 816000.cti: CTI initialized
124 [ 6.123904][UTC:1970-01-01 00:00:06(6)]coresight-cti 817000.cti: CTI initialized
125 [ 6.124463][UTC:1970-01-01 00:00:06(6)]coresight-cti 818000.cti: CTI initialized
126 [ 6.124981][UTC:1970-01-01 00:00:06(6)]coresight-cti 858000.cti: CTI initialized
127 [ 6.125441][UTC:1970-01-01 00:00:06(6)]coresight-cti 859000.cti: CTI initialized
128 [ 6.125924][UTC:1970-01-01 00:00:06(6)]coresight-cti 85a000.cti: CTI initialized
129 [ 6.126384][UTC:1970-01-01 00:00:06(6)]coresight-cti 85b000.cti: CTI initialized
130 [ 6.126864][UTC:1970-01-01 00:00:06(6)]coresight-cti 830000.cti: CTI initialized
131 [ 6.127347][UTC:1970-01-01 00:00:06(6)]coresight-cti 835000.cti: CTI initialized
132 [ 6.127808][UTC:1970-01-01 00:00:06(6)]coresight-cti 838000.cti: CTI initialized
133 [ 6.128293][UTC:1970-01-01 00:00:06(6)]coresight-cti 83c000.cti: CTI initialized
134 [ 6.129515][UTC:1970-01-01 00:00:06(6)]coresight-csr 801000.csr: CSR initialized
135 [ 6.131038][UTC:1970-01-01 00:00:06(6)]coresight-tmc 826000.tmc: Byte Counter feature enabled
136 [ 6.131604][UTC:1970-01-01 00:00:06(6)]sps:BAM 0x00884000 is registered.
137 [ 6.131606][UTC:1970-01-01 00:00:06(6)]coresight-tmc 826000.tmc: TMC initialized
138 [ 6.132389][UTC:1970-01-01 00:00:06(6)]coresight-tmc 825000.tmc: TMC initialized
139 [ 6.138845][UTC:1970-01-01 00:00:06(6)]nidnt boot config: 0
140 [ 6.143245][UTC:1970-01-01 00:00:06(6)]coresight-tpiu 820000.tpiu: NIDnT on SDCARD only mode
141 [ 6.143528][UTC:1970-01-01 00:00:06(6)]coresight-tpiu 820000.tpiu: TPIU initialized
142 [ 6.145057][UTC:1970-01-01 00:00:06(6)]coresight-funnel 821000.funnel: FUNNEL initialized
143 [ 6.145458][UTC:1970-01-01 00:00:06(6)]coresight-funnel 841000.funnel: FUNNEL initialized
144 [ 6.145829][UTC:1970-01-01 00:00:06(6)]coresight-funnel 869000.funnel: FUNNEL initialized
145 [ 6.146223][UTC:1970-01-01 00:00:06(6)]coresight-funnel 868000.funnel: FUNNEL initialized
146 [ 6.147603][UTC:1970-01-01 00:00:06(6)]coresight-replicator 824000.replicator: REPLICATOR initialized
147 [ 6.149315][UTC:1970-01-01 00:00:06(6)]coresight-stm 802000.stm: STM initialized
148 [ 6.150768][UTC:1970-01-01 00:00:06(6)]coresight-hwevent 86c000.hwevent: Hardware Event driver initialized
149 [ 6.152764][UTC:1970-01-01 00:00:06(6)]coresight-etmv4 85c000.etm: ETMv4 initialized
150 [ 6.153919][UTC:1970-01-01 00:00:06(6)]coresight-etmv4 85d000.etm: ETMv4 initialized
151 [ 6.428840][UTC:1970-01-01 00:00:06(6)]coresight-etmv4 85e000.etm: ETMv4 initialized
152 [ 6.436982][UTC:1970-01-01 00:00:06(6)]coresight-etmv4 85f000.etm: ETMv4 initialized
153 [ 6.442038][UTC:1970-01-01 00:00:06(6)] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30
154 [ 6.460388][UTC:1970-01-01 00:00:06(6)]coresight-modem-etm modem_etm0.3: Modem ETM initialized
155 [ 6.470247][UTC:1970-01-01 00:00:06(6)]coresight-wcn-etm wcn_etm0.2: Wireless ETM initialized
156 [ 6.480062][UTC:1970-01-01 00:00:06(6)]coresight-rpm-etm rpm_etm0.1: RPM ETM initialized
157 [ 6.489694][UTC:1970-01-01 00:00:06(6)]coresight-qpdi 1941000.qpdi: CoreSight QPDI driver initialized
158 [ 6.500936][UTC:1970-01-01 00:00:06(6)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
159 [ 6.509828][UTC:1970-01-01 00:00:06(6)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
160 [ 6.553981][UTC:1970-01-01 00:00:06(6)]msm-pcm-lpa msm-pcm-lpa: msm_pcm_probe: dev name msm-pcm-lpa
161 [ 6.564533][UTC:1970-01-01 00:00:06(6)]platform qcom,msm-voip-dsp.39: Driver msm-voip-dsp requests probe deferral
162 [ 6.575096][UTC:1970-01-01 00:00:06(6)]platform qcom,msm-pcm-voice.40: Driver msm-pcm-voice requests probe deferral
163 [ 6.596866][UTC:1970-01-01 00:00:06(6)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
164 [ 6.608451][UTC:1970-01-01 00:00:06(6)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
165 [ 6.618037][UTC:1970-01-01 00:00:06(6)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: platform msm-pcm-voice not registered
166 [ 6.627690][UTC:1970-01-01 00:00:06(6)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
167 [ 6.637608][UTC:1970-01-01 00:00:06(6)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
168 [ 6.648184][UTC:1970-01-01 00:00:06(6)]u32 classifier
169 [ 6.652391][UTC:1970-01-01 00:00:06(6)] Actions configured
170 [ 6.658189][UTC:1970-01-01 00:00:06(6)]Netfilter messages via NETLINK v0.30.
171 [ 6.665338][UTC:1970-01-01 00:00:06(6)]nf_conntrack version 0.5.0 (14125 buckets, 56500 max)
172 [ 6.675426][UTC:1970-01-01 00:00:06(6)]ctnetlink v0.93: registering with nfnetlink.
173 [ 6.682830][UTC:1970-01-01 00:00:06(6)]sysctl could not get directory: /net//netfilter -20
174 [ 6.690334][UTC:1970-01-01 00:00:06(6)]CPU: 3 PID: 1 Comm: swapper/0 Not tainted 3.10.28-g6283d37-dirty #9
175 [ 6.700045][UTC:1970-01-01 00:00:06(6)][<c00158b0>] (unwind_backtrace+0x0/0x128) from [<c0012da8>] (show_stack+0x20/0x24)
176 [ 6.710981][UTC:1970-01-01 00:00:06(6)][<c0012da8>] (show_stack+0x20/0x24) from [<c09155bc>] (dump_stack+0x20/0x28)
177 [ 6.721385][UTC:1970-01-01 00:00:06(6)][<c09155bc>] (dump_stack+0x20/0x28) from [<c016aef8>] (__register_sysctl_table+0x444/0x490)
178 [ 6.733109][UTC:1970-01-01 00:00:06(6)][<c016aef8>] (__register_sysctl_table+0x444/0x490) from [<c016b228>] (__register_sysctl_paths+0xe4/0x190)
179 [ 6.746040][UTC:1970-01-01 00:00:06(6)][<c016b228>] (__register_sysctl_paths+0xe4/0x190) from [<c016b2fc>] (register_sysctl_paths+0x28/0x30)
180 [ 6.758626][UTC:1970-01-01 00:00:06(6)][<c016b2fc>] (register_sysctl_paths+0x28/0x30) from [<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274)
181 [ 6.771037][UTC:1970-01-01 00:00:06(6)][<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274) from [<c00088dc>] (do_one_initcall+0xe4/0x198)
182 [ 6.783011][UTC:1970-01-01 00:00:06(6)][<c00088dc>] (do_one_initcall+0xe4/0x198) from [<c0d97c84>] (kernel_init_freeable+0x104/0x1d0)
183 [ 6.794996][UTC:1970-01-01 00:00:06(6)][<c0d97c84>] (kernel_init_freeable+0x104/0x1d0) from [<c090a36c>] (kernel_init+0x1c/0xf4)
184 [ 6.806541][UTC:1970-01-01 00:00:06(6)][<c090a36c>] (kernel_init+0x1c/0xf4) from [<c000eb98>] (ret_from_fork+0x14/0x20)
185 [ 6.817560][UTC:1970-01-01 00:00:06(6)]NF_TPROXY: Transparent proxy support initialized, version 4.1.0
186 [ 6.826569][UTC:1970-01-01 00:00:06(6)]NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
187 [ 6.835617][UTC:1970-01-01 00:00:06(6)]xt_time: kernel timezone is -0000
188 [ 6.842166][UTC:1970-01-01 00:00:06(6)]ip_tables: (C) 2000-2006 Netfilter Core Team
189 [ 6.849679][UTC:1970-01-01 00:00:06(6)]arp_tables: (C) 2002 David S. Miller
190 [ 6.856122][UTC:1970-01-01 00:00:06(6)]TCP: cubic registered
191 [ 6.861593][UTC:1970-01-01 00:00:06(6)]Initializing XFRM netlink socket
192 [ 6.870247][UTC:1970-01-01 00:00:06(6)]NET: Registered protocol family 10
193 [ 6.882695][UTC:1970-01-01 00:00:06(6)]mip6: Mobile IPv6
194 [ 6.887143][UTC:1970-01-01 00:00:06(6)]ip6_tables: (C) 2000-2006 Netfilter Core Team
195 [ 6.895392][UTC:1970-01-01 00:00:06(6)]sit: IPv6 over IPv4 tunneling driver
196 [ 6.903017][UTC:1970-01-01 00:00:06(6)]NET: Registered protocol family 17
197 [ 6.908928][UTC:1970-01-01 00:00:06(6)]NET: Registered protocol family 15
198 [ 6.915768][UTC:1970-01-01 00:00:06(6)]Bridge firewalling registered
199 [ 6.921933][UTC:1970-01-01 00:00:06(6)]Ebtables v2.0 registered
200 [ 6.928393][UTC:1970-01-01 00:00:06(6)]Bluetooth: RFCOMM TTY layer initialized
201 [ 6.935127][UTC:1970-01-01 00:00:06(6)]Bluetooth: RFCOMM socket layer initialized
202 [ 6.942481][UTC:1970-01-01 00:00:06(6)]Bluetooth: RFCOMM ver 1.11
203 [ 6.948609][UTC:1970-01-01 00:00:06(6)]Bluetooth: BNEP (Ethernet Emulation) ver 1.3
204 [ 6.956240][UTC:1970-01-01 00:00:06(6)]Bluetooth: BNEP filters: protocol multicast
205 [ 6.963774][UTC:1970-01-01 00:00:06(6)]Bluetooth: BNEP socket layer initialized
206 [ 6.971090][UTC:1970-01-01 00:00:06(6)]Bluetooth: HIDP (Human Interface Emulation) ver 1.2
207 [ 6.979350][UTC:1970-01-01 00:00:06(6)]Bluetooth: HIDP socket layer initialized
208 [ 6.986697][UTC:1970-01-01 00:00:06(6)]l2tp_core: L2TP core driver, V2.0
209 [ 6.993316][UTC:1970-01-01 00:00:06(6)]l2tp_ppp: PPPoL2TP kernel driver, V2.0
210 [ 7.000431][UTC:1970-01-01 00:00:06(6)]l2tp_ip: L2TP IP encapsulation support (L2TPv3)
211 [ 7.008364][UTC:1970-01-01 00:00:06(6)]l2tp_netlink: L2TP netlink interface
212 [ 7.015379][UTC:1970-01-01 00:00:06(6)]l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
213 [ 7.023527][UTC:1970-01-01 00:00:06(6)]l2tp_debugfs: L2TP debugfs support
214 [ 7.030292][UTC:1970-01-01 00:00:06(6)]l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
215 [ 7.040714][UTC:1970-01-01 00:00:07(7)]NET: Registered protocol family 27
216 [ 7.053231][UTC:1970-01-01 00:00:07(7)]XXX::restartlevel system
217 [ 7.061381][UTC:1970-01-01 00:00:07(7)]XXX::restartlevel system
218 [ 7.075263][UTC:1970-01-01 00:00:07(7)]of_batterydata_read_data: wingtech_guangyu_4v35_2300mah loaded
219 [ 7.106523][UTC:1970-01-01 00:00:07(7)]BMS: bms_load_hw_defaults: BMS_EN=1 Sample_Interval-S1=[100]S2=[70] Sample_Count-S1=[256]S2=[128] Fifo_Length-S1=[5]S2=[5] FSM_state=2
220 [ 7.132853][UTC:1970-01-01 00:00:07(7)]BMS: calculate_initial_soc: warm_reset=0 est_ocv=0 shutdown_soc_invalid=1 shutdown_ocv=65535 shutdown_soc=255 last_soc=-22 calculated_soc=80 last_ocv_uv=4102435
221 [ 7.150203][UTC:1970-01-01 00:00:07(7)]BMS: check_eoc_condition: Unable to read battery status
222 [ 7.174598][UTC:1970-01-01 00:00:07(7)]BMS: qpnp_vm_bms_probe: probe success: soc=80 vbatt=4017519 ocv=4102435 warm_reset=0
223 [ 7.295616][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
224 [ 7.316221][UTC:1970-01-01 00:00:07(7)]battery powe supply creat attr file!!
225 [ 7.322371][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
226 [ 7.333165][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
227 [ 7.344944][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
228 [ 7.348471][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
229 [ 7.351131][UTC:1970-01-01 00:00:07(7)]CHG: qpnp_lbc_probe: Probe chg_dis=0 bpd=1 usb=0 batt_pres=1 batt_volt=4031013 soc=80
230 [ 7.351332][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
231 [ 7.351488][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
232 [ 7.399245][UTC:1970-01-01 00:00:07(7)]msm_otg 78d9000.usb: USB in low power mode
233 [ 7.407465][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
234 [ 7.433074][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
235 [ 7.444743][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
236 [ 7.454642][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
237 [ 7.464234][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
238 [ 7.474209][UTC:1970-01-01 00:00:07(7)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
239 [ 7.484210][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
240 [ 7.493881][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
241 [ 7.504976][UTC:1970-01-01 00:00:07(7)]VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 0
242 [ 7.514000][UTC:1970-01-01 00:00:07(7)]Registering SWP/SWPB emulation handler
243 [ 7.524503][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
244 [ 7.534544][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
245 [ 7.545417][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
246 [ 7.558600][UTC:1970-01-01 00:00:07(7)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
247 [ 7.823225][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
248 [ 7.834847][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
249 [ 7.844781][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
250 [ 7.854415][UTC:1970-01-01 00:00:07(7)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
251 [ 7.864291][UTC:1970-01-01 00:00:07(7)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
252 [ 7.874414][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
253 [ 7.883964][UTC:1970-01-01 00:00:07(7)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
254 [ 7.893632][UTC:1970-01-01 00:00:07(7)]init: Nathan init
255 [ 7.899461][UTC:1970-01-01 00:00:07(7)]android_probe: Nathan android_probe
256 [ 7.905813][UTC:1970-01-01 00:00:07(7)]android_create_device: Nathan android_create_device
257 [ 7.914843][UTC:1970-01-01 00:00:07(7)]android_bind: Nathan android_bind
258 [ 7.920619][UTC:1970-01-01 00:00:07(7)]cdev_to_android_dev: Nathan cdev_to_android_dev
259 [ 7.928555][UTC:1970-01-01 00:00:07(7)]android_init_functions: Nathan android_init_functions
260 [ 7.937177][UTC:1970-01-01 00:00:07(7)]file system registered
261 [ 7.942850][UTC:1970-01-01 00:00:07(7)]mbim_init: initialize 1 instances
262 [ 7.949627][UTC:1970-01-01 00:00:07(7)]mbim_init: Initialized 1 ports
263 [ 7.959511][UTC:1970-01-01 00:00:07(7)]rndis_qc_init: initialize rndis QC instance
264 [ 7.966995][UTC:1970-01-01 00:00:07(7)]cdev_to_android_dev: Nathan cdev_to_android_dev
265 [ 7.974917][UTC:1970-01-01 00:00:07(7)]android_usb gadget: Mass Storage Function, version: 2009/09/11
266 [ 7.983179][UTC:1970-01-01 00:00:07(7)]android_usb gadget: Number of LUNs=3
267 [ 7.990162][UTC:1970-01-01 00:00:07(7)] lun0: LUN: read only CD-ROM file: (no medium)
268 [ 7.997998][UTC:1970-01-01 00:00:07(7)] lun1: LUN: removable file: (no medium)
269 [ 8.005176][UTC:1970-01-01 00:00:07(7)] lun2: LUN: removable file: (no medium)
270 [ 8.013373][UTC:1970-01-01 00:00:07(7)]android_usb gadget: android_usb ready
271 [ 8.019478][UTC:1970-01-01 00:00:07(7)]msm_hsusb msm_hsusb: [ci13xxx_start] hw_ep_max = 16
272 [ 8.029023][UTC:1970-01-01 00:00:07(7)]init: Nathan init, after platform_driver_register
273 [ 8.029152][UTC:1970-01-01 00:00:08(8)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
274 [ 8.029168][UTC:1970-01-01 00:00:08(8)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
275 [ 8.030316][UTC:1970-01-01 00:00:08(8)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
276 [ 8.030395][UTC:1970-01-01 00:00:08(8)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
277 [ 8.030670][UTC:1970-01-01 00:00:08(8)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
278 [ 8.030874][UTC:1970-01-01 00:00:08(8)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
279 [ 8.031021][UTC:1970-01-01 00:00:08(8)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
280 [ 8.109929][UTC:1970-01-01 00:00:08(8)]input: gpio-keys as /devices/soc.0/gpio_keys.62/input/input5
281 [ 8.119167][UTC:1970-01-01 00:09:27(567)]qcom,qpnp-rtc qpnp-rtc-ee342800: setting system clock to 1970-01-01 00:09:27 UTC (567)
282 [ 8.119596][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
283 [ 8.119612][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
284 [ 8.120731][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
285 [ 8.120811][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
286 [ 8.121088][UTC:1970-01-01 00:09:27(567)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
287 [ 8.121295][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
288 [ 8.121446][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
289 [ 8.202794][UTC:1970-01-01 00:09:27(567)]battery_current_limit qcom,bcl.57: battery_current_limit:probe_btm_properties Error reading key:qcom,ibat-monitor. ret = -19
290 [ 8.218007][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
291 [ 8.222518][UTC:1970-01-01 00:09:27(567)]msm_thermal:interrupt_mode_init Interrupt mode init
292 [ 8.222536][UTC:1970-01-01 00:09:27(567)]msm_thermal:disable_msm_thermal Max frequency reset for CPU0
293 [ 8.248071][UTC:1970-01-01 00:09:27(567)]msm_thermal:disable_msm_thermal Max frequency reset for CPU1
294 [ 8.248074][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
295 [ 8.248517][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
296 [ 8.248550][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
297 [ 8.248646][UTC:1970-01-01 00:09:27(567)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
298 [ 8.248800][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
299 [ 8.248853][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
300 [ 8.249273][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
301 [ 8.249279][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
302 [ 8.249659][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
303 [ 8.249687][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
304 [ 8.249779][UTC:1970-01-01 00:09:27(567)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
305 [ 8.368560][UTC:1970-01-01 00:09:27(567)]msm_thermal:disable_msm_thermal Max frequency reset for CPU2
306 [ 8.377722][UTC:1970-01-01 00:09:27(567)]msm_thermal:disable_msm_thermal Max frequency reset for CPU3
307 [ 8.389167][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
308 [ 8.398152][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
309 [ 8.399653][UTC:1970-01-01 00:09:27(567)]led_gpio_flash_probe:probe successfully!
310 [ 8.402592][UTC:1970-01-01 00:09:27(567)]qcom,cc-debug-8916 1874000.qcom,cc-debug: Registered Debug Mux successfully
311 [ 8.403389][UTC:1970-01-01 00:09:27(567)]clock_late_init: Removing enables held for handed-off clocks
312 [ 8.435884][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
313 [ 8.447982][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
314 [ 8.457447][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
315 [ 8.467531][UTC:1970-01-01 00:09:27(567)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
316 [ 8.477491][UTC:1970-01-01 00:09:27(567)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
317 [ 8.487751][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343a00: Driver wcd-spmi-core requests probe deferral
318 [ 8.497590][UTC:1970-01-01 00:09:27(567)]spmi wcd-spmi-ee343c00: Driver wcd-spmi-core requests probe deferral
319 [ 8.507983][UTC:1970-01-01 00:09:27(567)]ALSA device list:
320 [ 8.512806][UTC:1970-01-01 00:09:27(567)] No soundcards f颷 8.520912][UTC:1970-01-01 00:09:27(567)]Freeing unused kernel memory: 864K (c0d97000 - c0e6f000)
321 [ 8.539773][UTC:1970-01-01 00:09:27(567)]SELinux: Permission attach_queue in class tun_socket not defined in policy.
322 [ 8.549416][UTC:1970-01-01 00:09:27(567)]SELinux: the above unknown classes and permissions will be denied
323 [ 8.793671][UTC:1970-01-01 00:09:28(568)]type=1403 audit(568.159:2): policy loaded auid=4294967295 ses=4294967295
324 [ 8.803263][UTC:1970-01-01 00:09:28(568)]SELinux: Loaded policy from /sepolicy
325 [ 8.812676][UTC:1970-01-01 00:09:28(568)]type=1404 audit(568.189:3): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
326 [ 13.225969][UTC:1970-01-01 00:09:32(572)]init: /init.qcom.rc: 463: user option requires a user id
327 [ 13.236701][UTC:1970-01-01 00:09:32(572)]init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.
328 [ 13.249629][UTC:1970-01-01 00:09:32(572)]init: invalid uid 'fm_radio'
329 [ 13.266739][UTC:1970-01-01 00:09:32(572)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
330 [ 13.279381][UTC:1970-01-01 00:09:32(572)]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=0,reg1049=0x90,reg1009=0x0
331 [ 13.734701][UTC:1970-01-01 00:09:33(573)]init: cannot open '/initlogo.rle'
332 [ 13.751304][UTC:1970-01-01 00:09:33(573)]iSerial_store: serial number is feb1dcc4, uinque_serial_string is feb1dcc4
333 [ 13.827726][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p23): mounted filesystem with ordered data mode. Opts: barrier=1,discard
334 [ 13.839531][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p30): Ignoring removed nomblk_io_submit option
335 [ 14.107338][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p30): 2 orphan inodes deleted
336 [ 14.114223][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p30): recovery complete
337 [ 14.127893][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
338 [ 14.162404][UTC:1970-01-01 00:09:33(573)]fs_mgr: Running /system/bin/e2fsck on /dev/block/bootdevice/by-name/userdata
339 [ 14.206053][UTC:1970-01-01 00:09:33(573)]e2fsck (175) used greatest stack depth: 5152 bytes left
340 [ 14.213875][UTC:1970-01-01 00:09:33(573)]e2fsck: e2fsck 1.41.14 (22-Dec-2010)
341 [ 14.221032][UTC:1970-01-01 00:09:33(573)]e2fsck: /dev/block/bootdevice/by-name/userdata: clean, 1660/317616 files, 169492/1269750 blocks
342 [ 14.238247][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: barrier=1,noauto_da_alloc,discard
343 [ 14.250660][UTC:1970-01-01 00:09:33(573)]init (169) used greatest stack depth: 4920 bytes left
344 [ 14.267444][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p25): recovery complete
345 [ 14.274442][UTC:1970-01-01 00:09:33(573)]EXT4-fs (mmcblk0p25): mounted filesystem with ordered data mode. Opts: barrier=1
346 [ 14.343861][UTC:1970-01-01 00:09:33(573)]init: Detected MSM SOC ID=206 SOC VER=65537 BOARD TYPE=QRD
347 [ 14.352357][UTC:1970-01-01 00:09:33(573)]init: failed to open '/sys/class/graphics/fb2/msm_fb_type'
348 [ 14.378432][UTC:1970-01-01 00:09:33(573)]init: property 'persist.sys.ssr.enable_debug' doesn't exist while expanding '${persist.sys.ssr.enable_debug}'
349 [ 14.391043][UTC:1970-01-01 00:09:33(573)]init: cannot expand '${persist.sys.ssr.enable_debug}' while writing to '/sys/module/subsystem_restart/parameters/enable_debug'
350 [ 14.406000][UTC:1970-01-01 00:09:33(573)]init: property 'persist.sys.mba_boot_timeout' doesn't exist while expanding '${persist.sys.mba_boot_timeout}'
351 [ 14.419523][UTC:1970-01-01 00:09:33(573)]init: cannot expand '${persist.sys.mba_boot_timeout}' while writing to '/sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms'
352 [ 14.434353][UTC:1970-01-01 00:09:33(573)]init: property 'persist.sys.modem_auth_timeout' doesn't exist while expanding '${persist.sys.modem_auth_timeout}'
353 [ 14.448109][UTC:1970-01-01 00:09:33(573)]init: cannot expand '${persist.sys.modem_auth_timeout}' while writing to '/sys/module/pil_msa/parameters/modem_auth_timeout_ms'
354 [ 14.463304][UTC:1970-01-01 00:09:33(573)]init: property 'persist.sys.pil_proxy_timeout' doesn't exist while expanding '${persist.sys.pil_proxy_timeout}'
355 [ 14.476822][UTC:1970-01-01 00:09:33(573)]init: cannot expand '${persist.sys.pil_proxy_timeout}' while writing to '/sys/module/peripheral_loader/parameters/proxy_timeout_ms'
356 [ 14.495593][UTC:1970-01-01 00:09:33(573)]pil-q6v5-mss 4080000.qcom,mss: modem: loading from 0x86800000 to 0x8b900000
357 [ 14.553192][UTC:1970-01-01 00:09:33(573)]pil: MBA boot done
358 [ 15.191582][UTC:1970-01-01 00:09:34(574)]pil-q6v5-mss 4080000.qcom,mss: modem: Brought out of reset
359 [ 15.297938][UTC:1970-01-01 00:09:34(574)]pil-q6v5-mss 4080000.qcom,mss: modem: Power/Clock ready interrupt received
360 [ 15.297966][UTC:1970-01-01 00:09:34(574)]pil-q6v5-mss 4080000.qcom,mss: Subsystem error monitoring/handling services are up
361 [ 15.298845][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
362 [ 15.298852][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
363 [ 15.299328][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: ASoC: CODEC msm8x16_wcd_codec not registered
364 [ 15.299360][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: snd_soc_register_card failed (-517)
365 [ 15.299466][UTC:1970-01-01 00:09:34(574)]platform msm-snd-card.0: Driver msm8x16-asoc-wcd requests probe deferral
366 [ 15.301602][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
367 [ 15.301608][UTC:1970-01-01 00:09:34(574)]msm8x16-asoc-wcd msm-snd-card.0: default codec configured
368 [ 15.312052][UTC:1970-01-01 00:09:34(574)]msm-pcm-routing msm-pcm-routing: ASoC: no dapm match for VOICE2_STUB_DL --> Voice2 Stub --> INTERNAL_BT_SCO_RX_Voice Mixer
369 [ 15.312059][UTC:1970-01-01 00:09:34(574)]msm-pcm-routing msm-pcm-routing: ASoC: Failed to add route VOICE2_STUB_DL -> Voice2 Stub -> INTERNAL_BT_SCO_RX_Voice Mixer
370 [ 15.326718][UTC:1970-01-01 00:09:34(574)]msm-pcm-routing msm-pcm-routing: ASoC: mux SLIM_0_RX AANC MUX has no paths
371 [ 15.329098][UTC:1970-01-01 00:09:34(574)]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX3 MIX1 INP3 has no paths
372 [ 15.329230][UTC:1970-01-01 00:09:34(574)]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX2 MIX1 INP3 has no paths
373 [ 15.452216][UTC:1970-01-01 00:09:34(574)]type=1400 audit(574.819:4): avc: denied { entrypoint } for pid=207 comm="init" path="/sbin/healthd" dev="rootfs" ino=5598 scontext=u:r:healthd:s0 tcontext=u:object_r:rootfs:s0 tclass=file
374 [ 15.453588][UTC:1970-01-01 00:09:34(574)]M-Notify: General: 7
375 [ 15.469991][UTC:1970-01-01 00:09:34(574)]init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
376 [ 15.503022][UTC:1970-01-01 00:09:34(574)]warning: `qrngd' uses 32-bit capabilities (legacy support in use)
377 [ 15.613499][UTC:1970-01-01 00:09:34(574)]init: cannot find '/system/bin/ssr_diag', disabling 'ssr_diag'
378 [ 15.659617][UTC:1970-01-01 00:09:35(575)]init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}'
379 [ 15.700693][UTC:1970-01-01 00:09:35(575)]init: powerctl: cannot expand '${sys.powerctl}'
380 [ 15.726257][UTC:1970-01-01 00:09:35(575)]init: property 'sys.sysctl.extra_free_kbytes' doesn't exist while expanding '${sys.sysctl.extra_free_kbytes}'
381 [ 15.742610][UTC:1970-01-01 00:09:35(575)]init: cannot expand '${sys.sysctl.extra_free_kbytes}' while writing to '/proc/sys/vm/extra_free_kbytes'
382 [ 15.757207][UTC:1970-01-01 00:09:35(575)]init: property 'sys.sysctl.tcp_def_init_rwnd' doesn't exist while expanding '${sys.sysctl.tcp_def_init_rwnd}'
383 [ 15.769971][UTC:1970-01-01 00:09:35(575)]init: cannot expand '${sys.sysctl.tcp_def_init_rwnd}' while writing to '/proc/sys/net/ipv4/tcp_default_init_rwnd'
384 shell@Kraft-A6000:/ $ [ 15.806145][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_release: data: released=false, type=1, mode=0, data=0xeba0a980
385 [ 15.825821][UTC:1970-01-01 00:09:35(575)]init: sys_prop: permission denied uid:0 name:persist.sys.sd.defaultpath
386 [ 15.836489][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_release: data: released=false, type=1, mode=0, data=0xeba0a980
387 [ 15.848597][UTC:1970-01-01 00:09:35(575)]enable_store: Nathan enable_store buf:0
388 [ 15.855133][UTC:1970-01-01 00:09:35(575)]enable_store: android_usb: already disabled
389 [ 15.872882][UTC:1970-01-01 00:09:35(575)]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
390 [ 15.889524][UTC:1970-01-01 00:09:35(575)]alloc_android_config: Nathan alloc_android_config
391 [ 15.898231][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
392 [ 15.906078][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
393 [ 15.920715][UTC:1970-01-01 00:09:35(575)]android_enable_function: Nathan android_enable_function
394 [ 15.932505][UTC:1970-01-01 00:09:35(575)]handle_qmi_request: Error getting req_desc for msg_id 36
395 [ 15.937418][UTC:1970-01-01 00:09:35(575)]enable_store: Nathan enable_store buf:1
396 [ 15.937431][UTC:1970-01-01 00:09:35(575)]android_disable: Nathan android_disable
397 [ 15.937434][UTC:1970-01-01 00:09:35(575)]android_enable: Nathan android_enable
398 [ 15.975975][UTC:1970-01-01 00:09:35(575)]android_enable: Nathan android_enable
399 [ 15.977244][UTC:1970-01-01 00:09:35(575)]mem_share_svc_recv_msg: Error receiving message
400 [ 15.993523][UTC:1970-01-01 00:09:35(575)]cdev_to_android_dev: Nathan cdev_to_android_dev
401 [ 16.003646][UTC:1970-01-01 00:09:35(575)]android_bind_config: Nathan android_bind_config
402 [ 16.011546][UTC:1970-01-01 00:09:35(575)]diag: In diag_send_msg_mask_update, invalid status 0
403 [ 16.029783][UTC:1970-01-01 00:09:35(575)]diag: In diag_send_log_mask_update, invalid status 0[ 16.030342][UTC:1970-01-01 00:09:35(575)]android_bind_enabled_functions: Nathan android_bind_enabled_functions
404 [ 16.101668][UTC:1970-01-01 00:09:35(575)]failed: no power_down_setting[ 16.108254][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:69 i 0 j 1 cam_vio
405 [ 16.115468][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:80 i 1 j 2 cam_vana
406 [ 16.123519][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:58 i 2 j 0 cam_vdig
407 [ 16.133312][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:91 i 3 j 3 cam_vaf
408 [ 16.144372][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:91 i 8 j 3 cam_vaf
409 [ 16.151359][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:58 i 9 j 0 cam_vdig
410 [ 16.162197][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_load_app: App (keymaste) does'nt exist, loading apps for first time
411 [ 16.175314][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:80 i 10 j 2 cam_vana
412 [ 16.177796][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_load_app: scm_call rsp.result is QSEOS_RESULT_FAILURE
413 [ 16.177814][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_ioctl: failed load_app request: -14
414 [ 16.178028][UTC:1970-01-01 00:09:35(575)]QSEECOM: qseecom_release: data: released=false, type=1, mode=0, data=0xebbd8800
415 [ 16.212097][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:69 i 11 j 1 cam_vio
416 [ 16.249240][UTC:1970-01-01 00:09:35(575)]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic1
417 [ 16.258004][UTC:1970-01-01 00:09:35(575)]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic2
418 [ 16.288157][UTC:1970-01-01 00:09:35(575)]imx219_q8n13a probe succeeded
419 [ 16.368479][UTC:1970-01-01 00:09:35(575)]failed: no power_down_setting[ 16.373974][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:69 i 2 j 1 cam_vio
420 [ 16.384391][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:58 i 3 j 0 cam_vdig
421 [ 16.393205][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:80 i 4 j 2 cam_vana
422 [ 16.401871][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:80 i 3 j 2 cam_vana
423 [ 16.409937][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:58 i 4 j 0 cam_vdig
424 [ 16.418779][UTC:1970-01-01 00:09:35(575)]msm_camera_fill_vreg_params:69 i 5 j 1 cam_vio
425 [ 16.478979][UTC:1970-01-01 00:09:35(575)]gc2355_8916 probe succeeded
426 [ 16.534109][UTC:1970-01-01 00:09:35(575)]msm_actuator_close:834 software shutdown error rc=-14[ 16.545266][UTC:1970-01-01 00:09:35(575)]msm_cci_release invalid ref count 0 / cci state 1
427 [ 16.552514][UTC:1970-01-01 00:09:35(575)]msm_sensor_cci_i2c_util line 496 rc = -22
428 [ 16.560140][UTC:1970-01-01 00:09:35(575)]msm_actuator_close:842 cci_init failed
429 [ 16.592777][UTC:1970-01-01 00:09:35(575)]MSM-CPP cpp_init_hardware:825 stream_cnt:0
430 [ 16.807669][UTC:1970-01-01 00:09:36(576)]MSM-SENSOR-INIT msm_sensor_wait_for_probe_done:54 msm_cam_get_module_init_status -2
431 [ 16.807669][UTC:1970-01-01 00:09:36(576)]
432 [ 16.881701][UTC:1970-01-01 00:09:36(576)]msm_qti_pp_get_rms_value_control, back not active to query rms
433 [ 16.892001][UTC:1970-01-01 00:09:36(576)]msm_dolby_dap_param_to_get_control_get, port_id not set, do not query ADM
434 [ 16.977840][UTC:1970-01-01 00:09:36(576)]core_set_license: error getting metainfo size, err:0x0, size:0
435 [ 17.185706][UTC:1970-01-01 00:09:36(576)]diag: In diag_process_smd_read_data, diag_device_write error: -19
436 [ 18.284389][UTC:1970-01-01 00:09:37(577)]mdss_check_dsi_ctrl_status: ctl not powered on
437 [ 18.350960][UTC:1970-01-01 00:09:37(577)]diag: In diag_send_msg_mask_update, invalid status 0
438 [ 18.358413][UTC:1970-01-01 00:09:37(577)]diag: In diag_send_log_mask_update, invalid status 0[ 20.284400][UTC:1970-01-01 00:09:39(579)]mdss_check_dsi_ctrl_status: ctl not powered on
439 [ 21.018850][UTC:2014-01-01 00:00:00(1388534400)]wcnss: no space available for smd frame
440 [ 21.054421][UTC:2014-01-01 00:00:00(1388534400)]wcnss: no space available for smd frame
441 [ 21.084419][UTC:2014-01-01 00:00:00(1388534400)]wcnss: no space available for smd frame
442 [ 21.114406][UTC:2014-01-01 00:00:00(1388534400)]wcnss: no space available for smd frame
443 [ 22.284372][UTC:2014-01-01 00:00:01(1388534401)]mdss_check_dsi_ctrl_status: ctl not powered on
444 [ 24.284369][UTC:2014-01-01 00:00:03(1388534403)]mdss_check_dsi_ctrl_status: ctl not powered on
445 [ 26.284369][UTC:2014-01-01 00:00:05(1388534405)]mdss_check_dsi_ctrl_status: ctl not powered on
446 [ 28.284379][UTC:2014-01-01 00:00:07(1388534407)]mdss_check_dsi_ctrl_status: ctl not powered on
447 [ 29.946552][UTC:2014-01-01 00:00:09(1388534409)]mdss_dsi_on:705 Panel already on.
448 [ 30.011816][UTC:2014-01-01 00:00:09(1388534409)]wgz ldo17 enable = 1
449 [ 30.017286][UTC:2014-01-01 00:00:09(1388534409)]8916_l17: Failed to create debugfs directory
450 [ 30.026004][UTC:2014-01-01 00:00:09(1388534409)]wgz get regulator Ldo17 ok
451 [ 30.480285][UTC:2014-01-01 00:00:09(1388534409)]state_show: Nathan state_show buf:
452 [ 31.592449][UTC:2014-01-01 00:00:10(1388534410)]type=1400 audit(1388534410.689:5): avc: denied { getattr } for pid=1113 comm="zygote" path="socket:[11555]" dev="sockfs" ino=11555 scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
453 [ 31.614670][UTC:2014-01-01 00:00:10(1388534410)]type=1400 audit(1388534410.719:6): avc: denied { getopt } for pid=1113 comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
454 [ 32.759888][UTC:2014-01-01 00:00:11(1388534411)]type=1400 audit(1388534411.859:7): avc: denied { getattr } for pid=1342 comm="zygote" path="socket:[11555]" dev="sockfs" ino=11555 scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
455 [ 32.782677][UTC:2014-01-01 00:00:11(1388534411)]type=1400 audit(1388534411.879:8): avc: denied { getopt } for pid=1342 comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
456 [ 33.160568][UTC:2014-01-01 00:00:12(1388534412)]type=1400 audit(1388534412.259:9): avc: denied { read write } for pid=1234 comm="d.process.acore" name="kgsl-3d0" dev="tmpfs" ino=7330 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
457 [ 33.183433][UTC:2014-01-01 00:00:12(1388534412)]type=1400 audit(1388534412.279:10): avc: denied { open } for pid=1234 comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino=7330 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
458 [ 33.207702][UTC:2014-01-01 00:00:12(1388534412)]type=1400 audit(1388534412.309:11): avc: denied { ioctl } for pid=1234 comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino=7330 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
459 [ 33.653857][UTC:2014-01-01 00:00:12(1388534412)]init: untracked pid 1492 exited
460 [ 34.173425][UTC:2014-01-01 00:00:13(1388534413)]type=1400 audit(1388534413.269:12): avc: denied { ioctl } for pid=1234 comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino=7330 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
461 [ 34.996506][UTC:2014-01-01 00:00:14(1388534414)]init: sys_prop: permission denied uid:1013 name:service.bootanim.exit
462 [ 37.173157][UTC:2014-01-01 00:00:16(1388534416)]init: untracked pid 1886 exited
463 [ 37.258507][UTC:2014-01-01 00:00:16(1388534416)]init: untracked pid 1905 exited
464 [ 37.262194][UTC:2014-01-01 00:00:16(1388534416)]Thread-117 (1862) used greatest stack depth: 4900 bytes left
465 [ 37.324447][UTC:2014-01-01 00:00:16(1388534416)]init: untracked pid 1916 exited
466 [ 38.290187][UTC:2014-01-01 00:00:17(1388534417)]wgz ldo17 enable = 0
467 [ 38.296063][UTC:2014-01-01 00:00:17(1388534417)]wgz get regulator Ldo17 ok
468 [ 38.345346][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.449:15): avc: denied { search } for pid=1961 comm="mobile.avlenovo" name="1" dev="proc" ino=6032 scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=dir
469 [ 38.368025][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.469:16): avc: denied { read } for pid=1961 comm="mobile.avlenovo" name="status" dev="proc" ino=12538 scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
470 [ 38.390317][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.489:17): avc: denied { open } for pid=1961 comm="mobile.avlenovo" path="/proc/1/status" dev="proc" ino=12538 scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
471 [ 38.413138][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.509:18): avc: denied { search } for pid=1961 comm="mobile.avlenovo" name="2" dev="proc" ino=8894 scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=dir
472 [ 38.433653][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.529:19): avc: denied { read } for pid=1961 comm="mobile.avlenovo" name="status" dev="proc" ino=11942 scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
473 [ 38.455167][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.559:20): avc: denied { open } for pid=1961 comm="mobile.avlenovo" path="/proc/2/status" dev="proc" ino=11942 scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
474 [ 38.510415][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.609:21): avc: denied { search } for pid=1961 comm="mobile.avlenovo" name="168" dev="proc" ino=6182 scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=dir
475 [ 38.531260][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.629:22): avc: denied { read } for pid=1961 comm="mobile.avlenovo" name="status" dev="proc" ino=11943 scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=file
476 [ 38.552722][UTC:2014-01-01 00:00:17(1388534417)]type=1400 audit(1388534417.649:23): avc: denied { open } for pid=1961 comm="mobile.avlenovo" path="/proc/168/status" dev="proc" ino=11943 scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=file
477 [ 38.577366][UTC:2014-01-01 00:00:17(1388534417)]Thread-76 (1724) used greatest stack depth: 4880 bytes left
478 [ 42.302586][UTC:2014-01-01 00:00:21(1388534421)]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found
479 [ 42.376680][UTC:2014-01-01 00:00:21(1388534421)]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found

 

下边是开机后插usb线,kernel log中与android.c相关的log,可以看到该文件中各个函数的调用顺序

 [    7.927508][UTC:-- ::()]init: Nathan init
[ 7.933262][UTC:-- ::()]android_probe: Nathan android_probe
[ 7.939743][UTC:-- ::()]android_create_device: Nathan android_create_device
[ 7.948722][UTC:-- ::()]android_bind: Nathan android_bind
[ 7.954527][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 7.962372][UTC:-- ::()]android_init_functions: Nathan android_init_functions
[ 8.000895][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.072068][UTC:-- ::()]init: Nathan init, after platform_driver_register
[ 15.946108][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 15.968569][UTC:-- ::()]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
[ 15.978858][UTC:-- ::()]alloc_android_config: Nathan alloc_android_config
[ 15.989642][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 15.997446][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.006212][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.015662][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.022331][UTC:-- ::()]android_disable: Nathan android_disable
[ 16.034402][UTC:-- ::()]android_enable: Nathan android_enable
shell@Kraft-A6000:/ $ [ 16.053530][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.060040][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.068088][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 16.076092][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 16.320722][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.329279][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 16.338150][UTC:-- ::()]android_work: Nathan android_work
[ 16.511472][UTC:-- ::()]failed: no power_down_setting[ 16.512802][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.512805][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.512873][UTC:-- ::()]android_work: Nathan android_work
[ 16.512877][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.516428][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.516431][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 16.570787][UTC:-- ::()]android_work: Nathan android_work
[ 16.570791][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.688607][UTC:-- ::()]gc2355_8916 probe succeeded[ 16.716914][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.724589][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.732415][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.740906][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.748705][UTC:-- ::()]android_work: Nathan android_work
[ 16.756324][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.764696][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.772574][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.781016][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.788920][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.797335][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.839330][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.847768][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.855610][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.865966][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.874505][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.882439][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.890838][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.899028][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.907144][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.915224][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.923462][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.931396][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.939783][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.950913][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.950917][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951243][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951245][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951575][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951577][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951770][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951772][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.952749][UTC:-- ::()]android_work: Nathan android_work
[ 17.179817][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.187499][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.195426][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.203819][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.213002][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.220678][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.238563][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.246241][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.296220][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.303895][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.365454][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.373134][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.381198][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.389451][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.397417][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.405770][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.413778][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.422090][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.482560][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.490237][UTC:-- ::()]android_setup: Nathan android_setup
[ 30.978922][UTC:-- ::()]state_show: Nathan state_show buf:

下面为完整的kerenl log

   [    5.935579][UTC:-- ::()]qce .qcedev: Qualcomm Crypto 5.3. device found @0x720000
[ 5.935605][UTC:-- ::()]qce .qcedev: CE device = 0x0
[ 5.935605][UTC:-- ::()], IO base, CE = 0xf07c0000
[ 5.935605][UTC:-- ::()], Consumer (IN) PIPE , Producer (OUT) PIPE
[ 5.935605][UTC:-- ::()]IO base BAM = 0x0
[ 5.935605][UTC:-- ::()]BAM IRQ
[ 5.935605][UTC:-- ::()]Engines Availability = 0x2010853
[ 5.987717][UTC:-- ::()]XXX::emmc_name=KMQ7x000SA-B315-Samsung
[ 5.995342][UTC:-- ::()]sps:BAM 0x00704000 is registered.
[ 5.995344][UTC:-- ::()]sps:BAM 0x00704000 (va:0xf0c40000) enabled: ver:0x25, number of pipes:
[ 6.011609][UTC:-- ::()]mmc0: BKOPS_EN bit =
[ 6.017882][UTC:-- ::()]QCE50: qce_sps_init: Qualcomm MSM CE-BAM at 0x0000000000704000 irq
[ 6.030792][UTC:-- ::()]usbcore: registered new interface driver usbhid
[ 6.037835][UTC:-- ::()]usbhid: USB HID core driver
[ 6.045239][UTC:-- ::()]zram: Created device(s) ...
[ 6.052919][UTC:-- ::()]ashmem: initialized
[ 6.062013][UTC:-- ::()]logger: created 256K log 'log_main'
[ 6.069498][UTC:-- ::()]mmc0: new HS200 MMC card at address
[ 6.069946][UTC:-- ::()]logger: created 256K log 'log_events'
[ 6.071220][UTC:-- ::()]logger: created 256K log 'log_radio'
[ 6.072479][UTC:-- ::()]logger: created 256K log 'log_system'
[ 6.074271][UTC:-- ::()]sps:BAM 0x078c4000 is registered.
[ 6.074273][UTC:-- ::()]usb_bam_ipa_create_resources: Failed to create USB_PROD resource
[ 6.075259][UTC:-- ::()]qcom,qpnp-power-on qpnp-power-on-ee382200: PMIC@SID0 Power-on reason: Triggered from KPD (power key press) and 'cold' boot
[ 6.075286][UTC:-- ::()]qcom,qpnp-power-on qpnp-power-on-ee382200: PMIC@SID0: Power-off reason: Triggered from PS_HOLD (PS_HOLD/MSM controlled shutdown)
[ 6.075877][UTC:-- ::()]input: qpnp_pon as /devices/virtual/input/input4
[ 6.079584][UTC:-- ::()]PMIC@SID0: PM8916 v2. options: , , ,
[ 6.083027][UTC:-- ::()]coresight-fuse 5e01c.fuse: Fuse initialized
[ 6.084896][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.085425][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.085923][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.086462][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.086961][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.087490][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.088019][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.088466][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.088934][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.089413][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.089868][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.090353][UTC:-- ::()]coresight-cti 85a000.cti: CTI initialized
[ 6.090812][UTC:-- ::()]coresight-cti 85b000.cti: CTI initialized
[ 6.091294][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.091806][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.092265][UTC:-- ::()]coresight-cti .cti: CTI initialized
[ 6.092749][UTC:-- ::()]coresight-cti 83c000.cti: CTI initialized
[ 6.093998][UTC:-- ::()]coresight-csr .csr: CSR initialized
[ 6.095604][UTC:-- ::()]coresight-tmc .tmc: Byte Counter feature enabled
[ 6.096175][UTC:-- ::()]sps:BAM 0x00884000 is registered.
[ 6.096177][UTC:-- ::()]coresight-tmc .tmc: TMC initialized
[ 6.097024][UTC:-- ::()]coresight-tmc .tmc: TMC initialized
[ 6.103315][UTC:-- ::()]nidnt boot config:
[ 6.107825][UTC:-- ::()]coresight-tpiu .tpiu: NIDnT on SDCARD only mode
[ 6.108106][UTC:-- ::()]coresight-tpiu .tpiu: TPIU initialized
[ 6.109577][UTC:-- ::()]coresight-funnel .funnel: FUNNEL initialized
[ 6.109977][UTC:-- ::()]coresight-funnel .funnel: FUNNEL initialized
[ 6.110345][UTC:-- ::()]coresight-funnel .funnel: FUNNEL initialized
[ 6.110767][UTC:-- ::()]coresight-funnel .funnel: FUNNEL initialized
[ 6.112140][UTC:-- ::()]coresight-replicator .replicator: REPLICATOR initialized
[ 6.113865][UTC:-- ::()]coresight-stm .stm: STM initialized
[ 6.115399][UTC:-- ::()]coresight-hwevent 86c000.hwevent: Hardware Event driver initialized
[ 6.117398][UTC:-- ::()]coresight-etmv4 85c000.etm: ETMv4 initialized
[ 6.118487][UTC:-- ::()]coresight-etmv4 85d000.etm: ETMv4 initialized
[ 6.119551][UTC:-- ::()]coresight-etmv4 85e000.etm: ETMv4 initialized
[ 6.433041][UTC:-- ::()]coresight-etmv4 85f000.etm: ETMv4 initialized
[ 6.434300][UTC:-- ::()]mmcblk0: mmc0: Q7XSAB 7.28 GiB
[ 6.435616][UTC:-- ::()]mmcblk0rpmb: mmc0: Q7XSAB partition KiB
[ 6.457239][UTC:-- ::()]coresight-modem-etm modem_etm0.: Modem ETM initialized
[ 6.461613][UTC:-- ::()] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30
[ 6.481524][UTC:-- ::()]coresight-wcn-etm wcn_etm0.: Wireless ETM initialized
[ 6.491293][UTC:-- ::()]coresight-rpm-etm rpm_etm0.: RPM ETM initialized
[ 6.500416][UTC:-- ::()]coresight-qpdi .qpdi: CoreSight QPDI driver initialized
[ 6.512322][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 6.521215][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 6.566146][UTC:-- ::()]msm-pcm-lpa msm-pcm-lpa: msm_pcm_probe: dev name msm-pcm-lpa
[ 6.576702][UTC:-- ::()]platform qcom,msm-voip-dsp.: Driver msm-voip-dsp requests probe deferral
[ 6.587218][UTC:-- ::()]platform qcom,msm-pcm-voice.: Driver msm-pcm-voice requests probe deferral
[ 6.609519][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 6.621111][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 6.630701][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: platform msm-pcm-voice not registered
[ 6.640346][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 6.650264][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 6.660846][UTC:-- ::()]u32 classifier
[ 6.665105][UTC:-- ::()] Actions configured
[ 6.670790][UTC:-- ::()]Netfilter messages via NETLINK v0..
[ 6.677989][UTC:-- ::()]nf_conntrack version 0.5. ( buckets, max)
[ 6.688075][UTC:-- ::()]ctnetlink v0.: registering with nfnetlink.
[ 6.695523][UTC:-- ::()]sysctl could not get directory: /net//netfilter -20
[ 6.702985][UTC:-- ::()]CPU: PID: Comm: swapper/ Not tainted 3.10.-g6283d37-dirty #
[ 6.712706][UTC:-- ::()][<c00158b0>] (unwind_backtrace+0x0/0x128) from [<c0012da8>] (show_stack+0x20/0x24)
[ 6.723632][UTC:-- ::()][<c0012da8>] (show_stack+0x20/0x24) from [<c09155bc>] (dump_stack+0x20/0x28)
[ 6.734035][UTC:-- ::()][<c09155bc>] (dump_stack+0x20/0x28) from [<c016aef8>] (__register_sysctl_table+0x444/0x490)
[ 6.745761][UTC:-- ::()][<c016aef8>] (__register_sysctl_table+0x444/0x490) from [<c016b228>] (__register_sysctl_paths+0xe4/0x190)
[ 6.758689][UTC:-- ::()][<c016b228>] (__register_sysctl_paths+0xe4/0x190) from [<c016b2fc>] (register_sysctl_paths+0x28/0x30)
[ 6.771274][UTC:-- ::()][<c016b2fc>] (register_sysctl_paths+0x28/0x30) from [<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274)
[ 6.783685][UTC:-- ::()][<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274) from [<c00088dc>] (do_one_initcall+0xe4/0x198)
[ 6.795665][UTC:-- ::()][<c00088dc>] (do_one_initcall+0xe4/0x198) from [<c0d97c84>] (kernel_init_freeable+0x104/0x1d0)
[ 6.807640][UTC:-- ::()][<c0d97c84>] (kernel_init_freeable+0x104/0x1d0) from [<c090a36c>] (kernel_init+0x1c/0xf4)
[ 6.819190][UTC:-- ::()][<c090a36c>] (kernel_init+0x1c/0xf4) from [<c000eb98>] (ret_from_fork+0x14/0x20)
[ 6.830208][UTC:-- ::()]NF_TPROXY: Transparent proxy support initialized, version 4.1.
[ 6.839215][UTC:-- ::()]NF_TPROXY: Copyright (c) - BalaBit IT Ltd.
[ 6.848271][UTC:-- ::()]xt_time: kernel timezone is -
[ 6.854965][UTC:-- ::()]ip_tables: (C) - Netfilter Core Team
[ 6.862252][UTC:-- ::()]arp_tables: (C) David S. Miller
[ 6.868774][UTC:-- ::()]TCP: cubic registered
[ 6.874241][UTC:-- ::()]Initializing XFRM netlink socket
[ 6.882917][UTC:-- ::()]NET: Registered protocol family
[ 6.895457][UTC:-- ::()]mip6: Mobile IPv6
[ 6.899846][UTC:-- ::()]ip6_tables: (C) - Netfilter Core Team
[ 6.908164][UTC:-- ::()]sit: IPv6 over IPv4 tunneling driver
[ 6.915841][UTC:-- ::()]NET: Registered protocol family
[ 6.921694][UTC:-- ::()]NET: Registered protocol family
[ 6.928589][UTC:-- ::()]Bridge firewalling registered
[ 6.934807][UTC:-- ::()]Ebtables v2. registered
[ 6.941148][UTC:-- ::()]Bluetooth: RFCOMM TTY layer initialized
[ 6.947957][UTC:-- ::()]Bluetooth: RFCOMM socket layer initialized
[ 6.955355][UTC:-- ::()]Bluetooth: RFCOMM ver 1.11
[ 6.961385][UTC:-- ::()]Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 6.969066][UTC:-- ::()]Bluetooth: BNEP filters: protocol multicast
[ 6.976641][UTC:-- ::()]Bluetooth: BNEP socket layer initialized
[ 6.983866][UTC:-- ::()]Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 6.992180][UTC:-- ::()]Bluetooth: HIDP socket layer initialized
[ 6.999517][UTC:-- ::()]l2tp_core: L2TP core driver, V2.
[ 7.006166][UTC:-- ::()]l2tp_ppp: PPPoL2TP kernel driver, V2.
[ 7.013204][UTC:-- ::()]l2tp_ip: L2TP IP encapsulation support (L2TPv3)
[ 7.021191][UTC:-- ::()]l2tp_netlink: L2TP netlink interface
[ 7.028202][UTC:-- ::()]l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
[ 7.036403][UTC:-- ::()]l2tp_debugfs: L2TP debugfs support
[ 7.043066][UTC:-- ::()]l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
[ 7.053576][UTC:-- ::()]NET: Registered protocol family
[ 7.065535][UTC:-- ::()]XXX::restartlevel system
[ 7.073729][UTC:-- ::()]XXX::restartlevel system
[ 7.087592][UTC:-- ::()]of_batterydata_read_data: wingtech_guangyu_4v35_2300mah loaded
[ 7.118891][UTC:-- ::()]BMS: bms_load_hw_defaults: BMS_EN= Sample_Interval-S1=[]S2=[] Sample_Count-S1=[]S2=[] Fifo_Length-S1=[]S2=[] FSM_state=
[ 7.145236][UTC:-- ::()]BMS: calculate_initial_soc: warm_reset= est_ocv= shutdown_soc_invalid= shutdown_ocv= shutdown_soc= last_soc=- calculated_soc= last_ocv_uv=
[ 7.162556][UTC:-- ::()]BMS: check_eoc_condition: Unable to read battery status
[ 7.186651][UTC:-- ::()]BMS: qpnp_vm_bms_probe: probe success: soc= vbatt= ocv= warm_reset=
[ 7.335611][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.356188][UTC:-- ::()]battery powe supply creat attr file!!
[ 7.362342][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.373212][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.378529][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.381240][UTC:-- ::()]CHG: qpnp_lbc_probe: Probe chg_dis= bpd= usb= batt_pres= batt_volt= soc=
[ 7.381439][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 7.381593][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 7.425466][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.438945][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.471347][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 7.483017][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 7.492956][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 7.502739][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 7.512762][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 7.522762][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 7.532315][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 7.543338][UTC:-- ::()]VFP support v0.: implementor architecture part variant rev
[ 7.552362][UTC:-- ::()]Registering SWP/SWPB emulation handler
[ 7.564495][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.576993][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.587033][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.600571][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.857091][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 7.868691][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 7.878636][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 7.888316][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 7.898208][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 7.908248][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 7.917899][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 7.927508][UTC:-- ::()]init: Nathan init
[ 7.933262][UTC:-- ::()]android_probe: Nathan android_probe
[ 7.939743][UTC:-- ::()]android_create_device: Nathan android_create_device
[ 7.948722][UTC:-- ::()]android_bind: Nathan android_bind
[ 7.954527][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 7.962372][UTC:-- ::()]android_init_functions: Nathan android_init_functions
[ 7.971141][UTC:-- ::()]file system registered
[ 7.976757][UTC:-- ::()]mbim_init: initialize instances
[ 7.983439][UTC:-- ::()]mbim_init: Initialized ports
[ 7.993403][UTC:-- ::()]rndis_qc_init: initialize rndis QC instance
[ 8.000895][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.008742][UTC:-- ::()]android_usb gadget: Mass Storage Function, version: //
[ 8.017125][UTC:-- ::()]android_usb gadget: Number of LUNs=
[ 8.024021][UTC:-- ::()] lun0: LUN: read only CD-ROM file: (no medium)
[ 8.031878][UTC:-- ::()] lun1: LUN: removable file: (no medium)
[ 8.039162][UTC:-- ::()] lun2: LUN: removable file: (no medium)
[ 8.047382][UTC:-- ::()]android_usb gadget: android_usb ready
[ 8.053439][UTC:-- ::()]msm_hsusb msm_hsusb: [ci13xxx_start] hw_ep_max =
[ 8.061774][UTC:-- ::()]msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESET_EVENT received
[ 8.072068][UTC:-- ::()]init: Nathan init, after platform_driver_register
[ 8.072147][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.072163][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.073371][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.073448][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.073730][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.073935][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 8.074085][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 8.152998][UTC:-- ::()]input: gpio-keys as /devices/soc./gpio_keys./input/input5
[ 8.162248][UTC:-- ::()]qcom,qpnp-rtc qpnp-rtc-ee382800: setting system clock to -- :: UTC ()
[ 8.162899][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.162916][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.164141][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.164222][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.164555][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.164845][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 8.164998][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 8.165972][UTC:-- ::()]CHG: qpnp_lbc_batt_temp_alarm_work_fn: wgz ok ,enable charger
[ 8.166091][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 8.166199][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 8.166353][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 8.169276][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x0
[ 8.298925][UTC:-- ::()]battery_current_limit qcom,bcl.: battery_current_limit:probe_btm_properties Error reading key:qcom,ibat-monitor. ret = -
[ 8.314161][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.318704][UTC:-- ::()]msm_thermal:interrupt_mode_init Interrupt mode init
[ 8.318722][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU0
[ 8.343926][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.352661][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU1
[ 8.353090][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.353123][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.353220][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.353309][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 8.353361][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 8.353783][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.353789][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.354165][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.354193][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.354284][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.464701][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU2
[ 8.473854][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU3
[ 8.485341][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 8.494300][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 8.495862][UTC:-- ::()]led_gpio_flash_probe:probe successfully!
[ 8.498807][UTC:-- ::()]qcom,cc-debug- .qcom,cc-debug: Registered Debug Mux successfully
[ 8.499650][UTC:-- ::()]clock_late_init: Removing enables held for handed-off clocks
[ 8.532181][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.544119][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.553557][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.563685][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.573642][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.583809][UTC:-- ::()]ALSA device list:
[ 8.583882][UTC:-- ::()]spmi wcd-spmi-ee383a00: Driver wcd-spmi-core requests probe deferral
[ 8.583935][UTC:-- ::()]spmi wcd-spmi-ee383c00: Driver wcd-spmi-core requests probe deferral
[ 8.609019][UTC:-- ::()] No soundcards f[ 8.617056][UTC:-- ::()]Freeing unused kernel memory: 864K (c0d97000 - c0e6f000)
[ 8.635940][UTC:-- ::()]SELinux: Permission attach_queue in class tun_socket not defined in policy.
[ 8.645543][UTC:-- ::()]SELinux: the above unknown classes and permissions will be denied
[ 8.873592][UTC:-- ::()]type= audit(863.199:): policy loaded auid= ses=
[ 8.883132][UTC:-- ::()]SELinux: Loaded policy from /sepolicy
[ 8.892673][UTC:-- ::()]type= audit(863.219:): enforcing= old_enforcing= auid= ses=
[ 8.927238][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0xd
[ 8.948390][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x5
[ 8.958521][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x5
[ 8.972167][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x5
[ 13.343551][UTC:-- ::()]init: /init.qcom.rc: : user option requires a user id
[ 13.354872][UTC:-- ::()]init (): /proc//oom_adj is deprecated, please use /proc//oom_score_adj instead.
[ 13.367763][UTC:-- ::()]init: invalid uid 'fm_radio'
[ 13.384860][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x5
[ 13.397670][UTC:-- ::()]XXX::reg1010=0x20,reg1310=0x0,reg1309=0x90,plugged_in=,reg1049=0x90,reg1009=0x5
[ 13.852657][UTC:-- ::()]init: cannot open '/initlogo.rle'
[ 13.869369][UTC:-- ::()]iSerial_store: serial number is feb1dcc4, uinque_serial_string is feb1dcc4
[ 13.948369][UTC:-- ::()]EXT4-fs (mmcblk0p23): mounted filesystem with ordered data mode. Opts: barrier=,discard
[ 13.960408][UTC:-- ::()]EXT4-fs (mmcblk0p30): Ignoring removed nomblk_io_submit option
[ 14.201005][UTC:-- ::()]EXT4-fs (mmcblk0p30): orphan inodes deleted
[ 14.207922][UTC:-- ::()]EXT4-fs (mmcblk0p30): recovery complete
[ 14.222198][UTC:-- ::()]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 14.234679][UTC:-- ::()]jbd2/mmcblk0p30 () used greatest stack depth: bytes left
[ 14.262029][UTC:-- ::()]fs_mgr: Running /system/bin/e2fsck on /dev/block/bootdevice/by-name/userdata
[ 14.305831][UTC:-- ::()]e2fsck () used greatest stack depth: bytes left
[ 14.313651][UTC:-- ::()]e2fsck: e2fsck 1.41. (-Dec-)
[ 14.320780][UTC:-- ::()]e2fsck: /dev/block/bootdevice/by-name/userdata: clean, / files, / blocks
[ 14.338038][UTC:-- ::()]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: barrier=,noauto_da_alloc,discard
[ 14.350473][UTC:-- ::()]init () used greatest stack depth: bytes left
[ 14.367083][UTC:-- ::()]EXT4-fs (mmcblk0p25): recovery complete
[ 14.374070][UTC:-- ::()]EXT4-fs (mmcblk0p25): mounted filesystem with ordered data mode. Opts: barrier=
[ 14.441074][UTC:-- ::()]init: Detected MSM SOC ID= SOC VER= BOARD TYPE=QRD
[ 14.449541][UTC:-- ::()]init: failed to open '/sys/class/graphics/fb2/msm_fb_type'
[ 14.467812][UTC:-- ::()]init: property 'persist.sys.ssr.enable_debug' doesn't exist while expanding '${persist.sys.ssr.enable_debug}'
[ 14.480404][UTC:-- ::()]init: cannot expand '${persist.sys.ssr.enable_debug}' while writing to '/sys/module/subsystem_restart/parameters/enable_debug'
[ 14.495368][UTC:-- ::()]init: property 'persist.sys.mba_boot_timeout' doesn't exist while expanding '${persist.sys.mba_boot_timeout}'
[ 14.508674][UTC:-- ::()]init: cannot expand '${persist.sys.mba_boot_timeout}' while writing to '/sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms'
[ 14.523689][UTC:-- ::()]init: property 'persist.sys.modem_auth_timeout' doesn't exist while expanding '${persist.sys.modem_auth_timeout}'
[ 14.537570][UTC:-- ::()]init: cannot expand '${persist.sys.modem_auth_timeout}' while writing to '/sys/module/pil_msa/parameters/modem_auth_timeout_ms'
[ 14.552511][UTC:-- ::()]init: property 'persist.sys.pil_proxy_timeout' doesn't exist while expanding '${persist.sys.pil_proxy_timeout}'
[ 14.566132][UTC:-- ::()]init: cannot expand '${persist.sys.pil_proxy_timeout}' while writing to '/sys/module/peripheral_loader/parameters/proxy_timeout_ms'
[ 14.585120][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: loading from 0x86800000 to 0x8b900000
[ 14.642423][UTC:-- ::()]pil: MBA boot done
[ 15.278408][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: Brought out of reset
[ 15.383306][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: Power/Clock ready interrupt received
[ 15.383334][UTC:-- ::()]pil-q6v5-mss .qcom,mss: Subsystem error monitoring/handling services are up
[ 15.384165][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 15.384171][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 15.384689][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 15.384722][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 15.384826][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 15.386890][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 15.386897][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 15.396727][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: no dapm match for VOICE2_STUB_DL --> Voice2 Stub --> INTERNAL_BT_SCO_RX_Voice Mixer
[ 15.396734][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: Failed to add route VOICE2_STUB_DL -> Voice2 Stub -> INTERNAL_BT_SCO_RX_Voice Mixer
[ 15.409490][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: mux SLIM_0_RX AANC MUX has no paths
[ 15.411673][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX3 MIX1 INP3 has no paths
[ 15.411776][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX2 MIX1 INP3 has no paths
[ 15.537570][UTC:-- ::()]type= audit(869.869:): avc: denied { entrypoint } for pid= comm="init" path="/sbin/healthd" dev="rootfs" ino= scontext=u:r:healthd:s0 tcontext=u:object_r:rootfs:s0 tclass=file
[ 15.538637][UTC:-- ::()]M-Notify: General:
[ 15.554027][UTC:-- ::()]init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
[ 15.729445][UTC:-- ::()]init: cannot find '/system/bin/ssr_diag', disabling 'ssr_diag'
[ 15.755506][UTC:-- ::()]init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}'
[ 15.767822][UTC:-- ::()]init: powerctl: cannot expand '${sys.powerctl}'
[ 15.785678][UTC:-- ::()]init: property 'sys.sysctl.extra_free_kbytes' doesn't exist while expanding '${sys.sysctl.extra_free_kbytes}'
[ 15.808436][UTC:-- ::()]init: cannot expand '${sys.sysctl.extra_free_kbytes}' while writing to '/proc/sys/vm/extra_free_kbytes'
[ 15.825280][UTC:-- ::()]init: property 'sys.sysctl.tcp_def_init_rwnd' doesn't exist while expanding '${sys.sysctl.tcp_def_i 15.855647][UTC:-- ::()]init: cannot expand '${sys.sysctl.tcp_def_init_rwnd}' while writing to '/proc/sys/net/ipv4/tcp_default_init_rwnd'
[ 15.931031][UTC:-- ::()]init: sys_prop: permission denied uid: name:persist.sys.sd.defaultpath
[ 15.946108][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 15.957007][UTC:-- ::()]enable_store: android_usb: already disabled
[ 15.968569][UTC:-- ::()]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
[ 15.978858][UTC:-- ::()]alloc_android_config: Nathan alloc_android_config
[ 15.989642][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 15.997446][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.006212][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.015662][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.022331][UTC:-- ::()]android_disable: Nathan android_disable
[ 16.034402][UTC:-- ::()]android_enable: Nathan android_enable
shell@Kraft-A6000:/ $ [ 16.053530][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.060040][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.068088][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 16.076092][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 16.101290][UTC:-- ::()]handle_qmi_request: Error getting req_desc for msg_id
[ 16.109464][UTC:-- ::()]mem_share_svc_recv_msg: Error receiving message
[ 16.117302][UTC:-- ::()]diag: In diag_send_msg_mask_update, invalid status
[ 16.133429][UTC:-- ::()]diag: In diag_send_log_mask_update, invalid status [ 16.211547][UTC:-- ::()]QSEECOM: qseecom_load_app: App (keymaste) does'nt exist, loading apps for first time
[ 16.225577][UTC:-- ::()]QSEECOM: qseecom_load_app: scm_call rsp.result is QSEOS_RESULT_FAILURE
[ 16.235310][UTC:-- ::()]QSEECOM: qseecom_ioctl: failed load_app request: -
[ 16.248017][UTC:-- ::()]QSEECOM: qseecom_release: data: released=false, type=, mode=, data=0xec816000
[ 16.271509][UTC:-- ::()]failed: no power_down_setting[ 16.277561][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.286220][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.294875][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.303465][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vaf
[ 16.312201][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vaf
[ 16.320722][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.329279][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 16.338150][UTC:-- ::()]android_work: Nathan android_work
[ 16.339371][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.339375][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.339378][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.434960][UTC:-- ::()]imx219_q8n13a probe succeeded[ 16.486399][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic1
[ 16.495597][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic2
[ 16.511472][UTC:-- ::()]failed: no power_down_setting[ 16.512802][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.512805][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.512873][UTC:-- ::()]android_work: Nathan android_work
[ 16.512877][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.516428][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.516431][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 16.569131][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.570787][UTC:-- ::()]android_work: Nathan android_work
[ 16.570791][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.595542][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.604206][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.612886][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.621828][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.630266][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.688607][UTC:-- ::()]gc2355_8916 probe succeeded[ 16.716914][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.724589][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.732415][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.740906][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.748705][UTC:-- ::()]android_work: Nathan android_work
[ 16.756324][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.764696][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.772574][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.781016][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.788920][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.797335][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.799056][UTC:-- ::()]msm_actuator_close: software shutdown error rc=-[ 16.799062][UTC:-- ::()]msm_cci_release invalid ref count / cci state
[ 16.799065][UTC:-- ::()]msm_sensor_cci_i2c_util line rc = -
[ 16.799068][UTC:-- ::()]msm_actuator_close: cci_init failed
[ 16.839330][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.847768][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.855610][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 16.865966][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.874505][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.882439][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.890838][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.899028][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.907144][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.915224][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.923462][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.931396][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.939783][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.949995][UTC:-- ::()]MSM-SENSOR-INIT msm_sensor_wait_for_probe_done: msm_cam_get_module_init_status -
[ 16.949995][UTC:-- ::()]
[ 16.950913][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.950917][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951243][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951245][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951575][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951577][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.951770][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.951772][UTC:-- ::()]android_setup: Nathan android_setup
[ 16.952749][UTC:-- ::()]android_work: Nathan android_work
[ 16.964432][UTC:-- ::()]MSM-CPP cpp_init_hardware: stream_cnt:
[ 17.122411][UTC:-- ::()]msm_qti_pp_get_rms_value_control, back not active to query rms
[ 17.133105][UTC:-- ::()]msm_dolby_dap_param_to_get_control_get, port_id not set, do not query ADM
[ 17.179817][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.187499][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.195426][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.203819][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.213002][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.220678][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.238563][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.246241][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.296220][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.303895][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.314763][UTC:-- ::()]core_set_license: error getting metainfo size, err:0x0, size:
[ 17.316193][UTC:-- ::()]diag: In diag_process_smd_read_data, diag_device_write error: -
[ 17.365454][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.373134][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.381198][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.389451][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.397417][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.405770][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.413778][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.422090][UTC:-- ::()]android_setup: Nathan android_setup
[ 17.482560][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 17.490237][UTC:-- ::()]android_setup: Nathan android_setup
[ 18.629739][UTC:-- ::()]diag: In diag_send_msg_mask_update, invalid status [ 18.634386][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 18.646338][UTC:-- ::()]diag: In diag_send_log_mask_update, invalid status [ 20.634364][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 21.289984][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.324402][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.354411][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.384442][UTC:-- ::()]wcnss: no space available for smd frame
[ 22.634373][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 24.634356][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 26.634350][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 28.634359][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 30.446345][UTC:-- ::()]mdss_dsi_on: Panel already on.
[ 30.510392][UTC:-- ::()]wgz ldo17 enable =
[ 30.515789][UTC:-- ::()]8916_l17: Failed to create debugfs directory
[ 30.524145][UTC:-- ::()]wgz get regulator Ldo17 ok
[ 30.978922][UTC:-- ::()]state_show: Nathan state_show buf:
[ 32.148010][UTC:-- ::()]type= audit(1388534705.619:): avc: denied { getattr } for pid= comm="zygote" path="socket:[6959]" dev="sockfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 32.169991][UTC:-- ::()]type= audit(1388534705.639:): avc: denied { getopt } for pid= comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 33.491661][UTC:-- ::()]type= audit(1388534706.959:): avc: denied { getattr } for pid= comm="zygote" path="socket:[6959]" dev="sockfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 33.514494][UTC:-- ::()]type= audit(1388534706.989:): avc: denied { getopt } for pid= comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 33.941410][UTC:-- ::()]type= audit(1388534707.409:): avc: denied { read write } for pid= comm="d.process.acore" name="kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 33.967326][UTC:-- ::()]type= audit(1388534707.439:): avc: denied { open } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 33.991283][UTC:-- ::()]type= audit(1388534707.459:): avc: denied { ioctl } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 34.497400][UTC:-- ::()]init: untracked pid exited
[ 34.797791][UTC:-- ::()]type= audit(1388534708.269:): avc: denied { ioctl } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 35.499167][UTC:-- ::()]init: sys_prop: permission denied uid: name:service.bootanim.exit
[ 35.542949][UTC:-- ::()]BootAnimation () used greatest stack depth: bytes left
[ 36.124461][UTC:-- ::()]type= audit(1388534709.599:): avc: denied { read write } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 37.428644][UTC:-- ::()]init: untracked pid exited
[ 37.499443][UTC:-- ::()]init: untracked pid exited
[ 37.576722][UTC:-- ::()]init: untracked pid exited
[ 38.790518][UTC:-- ::()]wgz ldo17 enable =
[ 38.795977][UTC:-- ::()]wgz get regulator Ldo17 ok
[ 38.824123][UTC:-- ::()]audit_printk_skb: callbacks suppressed
[ 38.831508][UTC:-- ::()]type= audit(1388534712.289:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=dir
[ 38.852856][UTC:-- ::()]type= audit(1388534712.319:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
[ 38.873815][UTC:-- ::()]type= audit(1388534712.339:): avc: denied { open } for pid= comm="mobile.avlenovo" path="/proc/1/status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
[ 38.895925][UTC:-- ::()]type= audit(1388534712.369:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=dir
[ 38.916742][UTC:-- ::()]type= audit(1388534712.389:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
[ 38.938252][UTC:-- ::()]type= audit(1388534712.409:): avc: denied { open } for pid= comm="mobile.avlenovo" path="/proc/2/status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
[ 38.999501][UTC:-- ::()]type= audit(1388534712.469:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=dir
[ 39.020099][UTC:-- ::()]type= audit(1388534712.489:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=file
[ 39.041876][UTC:-- ::()]type= audit(1388534712.509:): avc: denied { open } for pid= comm="mobile.avlenovo" path="/proc/168/status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=file
[ 39.069484][UTC:-- ::()]type= audit(1388534712.539:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:healthd:s0 tclass=dir
[ 44.106057][UTC:-- ::()]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found
[ 44.189154][UTC:-- ::()]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found
[ 52.164414][UTC:-- ::()]audit_printk_skb: callbacks suppressed
[ 52.171666][UTC:-- ::()]type= audit(1388534725.629:): avc: denied { read write } for pid= comm="facebook.katana" name="kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 52.195009][UTC:-- ::()]type= audit(1388534725.669:): avc: denied { open } for pid= comm="facebook.katana" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 52.218582][UTC:-- ::()]type= audit(1388534725.689:): avc: denied { ioctl } for pid= comm="facebook.katana" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file

下边是先不插usb线开机,然后插上usb线,默认选择mtp,mass_storage,adb,之后手动在菜单里选择ptp,adb,再断开usb线的kernel log中与android.c相关的log,可以看到该文件中各个函数的调用顺序

  [    8.697614][UTC:-- ::()]init: Nathan init
[ 8.703776][UTC:-- ::()]android_probe: Nathan android_probe
[ 8.710094][UTC:-- ::()]android_create_device: Nathan android_create_device
[ 8.719760][UTC:-- ::()]android_bind: Nathan android_bind
[ 8.725612][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.733409][UTC:-- ::()]android_init_functions: Nathan android_init_functions
[ 8.776743][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.841933][UTC:-- ::()]init: Nathan init, after platform_driver_register
[ 16.453498][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.486965][UTC:-- ::()]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
[ 16.497072][UTC:-- ::()]alloc_android_config: Nathan alloc_android_config
[ 16.516610][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.526254][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.534626][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.543293][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.551511][UTC:-- ::()]android_disable: Nathan android_disable
[ 16.559386][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.610168][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.617627][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.626806][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 16.634709][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 31.102589][UTC:-- ::()]state_show: Nathan state_show buf:
[ 61.115619][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.123292][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.132416][UTC:-- ::()]android_work: Nathan android_work
[ 61.218374][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.226050][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 61.234410][UTC:-- ::()]android_work: Nathan android_work
[ 61.875455][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.883126][UTC:-- ::()]android_resume: Nathan android_resume
[ 61.890996][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.899621][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.908312][UTC:-- ::()]android_work: Nathan android_work
[ 61.947634][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.955315][UTC:-- ::()]android_setup: Nathan android_setup
[ 61.963165][UTC:-- ::()]android_work: Nathan android_work
[ 61.970649][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 61.980965][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.989515][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.998612][UTC:-- ::()]android_work: Nathan android_work
[ 62.005590][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 62.071918][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.079588][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.087477][UTC:-- ::()]android_work: Nathan android_work
[ 62.094863][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 62.105180][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.113787][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.123629][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.131309][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.142635][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.150307][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.160623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.168291][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.179623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.187287][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.197621][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.205283][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.215623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.223285][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.233622][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.241285][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.253626][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.261298][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.273628][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.281303][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.291629][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.299306][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.312637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.320317][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.330627][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.338297][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.349636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.357310][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.369634][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.377308][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.385484][UTC:-- ::()]android_work: Nathan android_work
[ 62.510649][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.518335][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.528642][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.536335][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.550849][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.558682][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.580637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.588312][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.602633][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.610302][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.628636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.636305][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.646636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.654312][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.664637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.672308][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.682633][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.690300][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.734638][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.742309][UTC:-- ::()]android_setup: Nathan android_setup
[ 95.075531][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.082528][UTC:-- ::()]android_disable: Nathan android_disable
[ 95.108020][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.125073][UTC:-- ::()]android_unbind_config: Nathan android_unbind_config
[ 95.140799][UTC:-- ::()]android_unbind_enabled_functions: Nathan android_unbind_enabled_functions
[ 95.202111][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.217817][UTC:-- ::()]functions_store: Nathan functions_store buf:ptp,adb
[ 95.226655][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 95.235859][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 95.245337][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.253184][UTC:-- ::()]android_disable: Nathan android_disable
[ 95.261199][UTC:-- ::()]android_enable: Nathan android_enable
[ 95.272351][UTC:-- ::()]android_enable: Nathan android_enable
[ 95.279278][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.287875][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 95.296536][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 95.310391][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.318057][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 95.326126][UTC:-- ::()]android_work: Nathan android_work
[ 96.314241][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.321915][UTC:-- ::()]android_resume: Nathan android_resume
[ 96.329777][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.338404][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 96.346977][UTC:-- ::()]android_work: Nathan android_work
[ 96.354590][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 96.489429][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.497110][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.504935][UTC:-- ::()]android_work: Nathan android_work
[ 96.512238][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.520889][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 96.532823][UTC:-- ::()]android_work: Nathan android_work
[ 96.712027][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.719712][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.727499][UTC:-- ::()]android_work: Nathan android_work
[ 96.734884][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.743493][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.751415][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 96.761595][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.770228][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.778132][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.786550][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.794408][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.802869][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.810909][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.819188][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.826933][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.835509][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.843258][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.851827][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.859564][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.868147][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.875883][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.884466][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.892213][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.900785][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.908524][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.917105][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.924857][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.933425][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.941175][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.949744][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.957531][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.966066][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.973865][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.982385][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.990182][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.998704][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.006451][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.015023][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.023035][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.031343][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.045338][UTC:-- ::()]android_work: Nathan android_work
[ 97.127823][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.135509][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.143391][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.151823][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.159766][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.168143][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.176036][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.184466][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.234480][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.242151][UTC:-- ::()]android_setup: Nathan android_setup
[ 123.795798][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 123.803482][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 123.811612][UTC:-- ::()]android_work: Nathan android_work
[ 123.819135][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 123.993190][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 123.993272][UTC:-- ::()]android_disable: Nathan android_disable
[ 124.008843][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 124.018425][UTC:-- ::()]android_work: Nathan android_work
[ 124.019074][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 124.019077][UTC:-- ::()]android_unbind_config: Nathan android_unbind_config
[ 124.019080][UTC:-- ::()]android_unbind_enabled_functions: Nathan android_unbind_enabled_functions
[ 124.053933][UTC:-- ::()]android_enable: Nathan android_enable
[ 124.061571][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 124.061745][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 124.080709][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 124.089147][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions

完整的kernel log如下

[    7.043380][UTC:-- ::()]    Actions configured
[ 7.049250][UTC:-- ::()]Netfilter messages via NETLINK v0..
[ 7.056495][UTC:-- ::()]nf_conntrack version 0.5. ( buckets, max)
[ 7.068174][UTC:-- ::()]ctnetlink v0.: registering with nfnetlink.
[ 7.076474][UTC:-- ::()]sysctl could not get directory: /net//netfilter -20
[ 7.083769][UTC:-- ::()]CPU: PID: Comm: swapper/ Not tainted 3.10.-g6283d37-dirty #
[ 7.093561][UTC:-- ::()][<c00158b0>] (unwind_backtrace+0x0/0x128) from [<c0012da8>] (show_stack+0x20/0x24)
[ 7.104498][UTC:-- ::()][<c0012da8>] (show_stack+0x20/0x24) from [<c09155bc>] (dump_stack+0x20/0x28)
[ 7.114887][UTC:-- ::()][<c09155bc>] (dump_stack+0x20/0x28) from [<c016aef8>] (__register_sysctl_table+0x444/0x490)
[ 7.126607][UTC:-- ::()][<c016aef8>] (__register_sysctl_table+0x444/0x490) from [<c016b228>] (__register_sysctl_paths+0xe4/0x190)
[ 7.139539][UTC:-- ::()][<c016b228>] (__register_sysctl_paths+0xe4/0x190) from [<c016b2fc>] (register_sysctl_paths+0x28/0x30)
[ 7.152121][UTC:-- ::()][<c016b2fc>] (register_sysctl_paths+0x28/0x30) from [<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274)
[ 7.164530][UTC:-- ::()][<c0dda9f0>] (nf_conntrack_sip_init+0x1c/0x274) from [<c00088dc>] (do_one_initcall+0xe4/0x198)
[ 7.176509][UTC:-- ::()][<c00088dc>] (do_one_initcall+0xe4/0x198) from [<c0d97c84>] (kernel_init_freeable+0x104/0x1d0)
[ 7.188489][UTC:-- ::()][<c0d97c84>] (kernel_init_freeable+0x104/0x1d0) from [<c090a36c>] (kernel_init+0x1c/0xf4)
[ 7.200035][UTC:-- ::()][<c090a36c>] (kernel_init+0x1c/0xf4) from [<c000eb98>] (ret_from_fork+0x14/0x20)
[ 7.211308][UTC:-- ::()]NF_TPROXY: Transparent proxy support initialized, version 4.1.
[ 7.220044][UTC:-- ::()]NF_TPROXY: Copyright (c) - BalaBit IT Ltd.
[ 7.229936][UTC:-- ::()]xt_time: kernel timezone is -
[ 7.237393][UTC:-- ::()]ip_tables: (C) - Netfilter Core Team
[ 7.245317][UTC:-- ::()]arp_tables: (C) David S. Miller
[ 7.251652][UTC:-- ::()]TCP: cubic registered
[ 7.257066][UTC:-- ::()]Initializing XFRM netlink socket
[ 7.267703][UTC:-- ::()]NET: Registered protocol family
[ 7.286968][UTC:-- ::()]mip6: Mobile IPv6
[ 7.291485][UTC:-- ::()]ip6_tables: (C) - Netfilter Core Team
[ 7.300265][UTC:-- ::()]sit: IPv6 over IPv4 tunneling driver
[ 7.308997][UTC:-- ::()]NET: Registered protocol family
[ 7.315070][UTC:-- ::()]NET: Registered protocol family
[ 7.321881][UTC:-- ::()]Bridge firewalling registered
[ 7.328084][UTC:-- ::()]Ebtables v2. registered
[ 7.334953][UTC:-- ::()]Bluetooth: RFCOMM TTY layer initialized
[ 7.341337][UTC:-- ::()]Bluetooth: RFCOMM socket layer initialized
[ 7.348786][UTC:-- ::()]Bluetooth: RFCOMM ver 1.11
[ 7.354857][UTC:-- ::()]Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 7.362401][UTC:-- ::()]Bluetooth: BNEP filters: protocol multicast
[ 7.370091][UTC:-- ::()]Bluetooth: BNEP socket layer initialized
[ 7.377339][UTC:-- ::()]Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 7.385627][UTC:-- ::()]Bluetooth: HIDP socket layer initialized
[ 7.393019][UTC:-- ::()]l2tp_core: L2TP core driver, V2.
[ 7.399629][UTC:-- ::()]l2tp_ppp: PPPoL2TP kernel driver, V2.
[ 7.406675][UTC:-- ::()]l2tp_ip: L2TP IP encapsulation support (L2TPv3)
[ 7.414652][UTC:-- ::()]l2tp_netlink: L2TP netlink interface
[ 7.421597][UTC:-- ::()]l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
[ 7.429986][UTC:-- ::()]l2tp_debugfs: L2TP debugfs support
[ 7.436594][UTC:-- ::()]l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
[ 7.448343][UTC:-- ::()]NET: Registered protocol family
[ 7.466399][UTC:-- ::()]XXX::restartlevel system
[ 7.477632][UTC:-- ::()]XXX::restartlevel system
[ 7.496194][UTC:-- ::()]of_batterydata_read_data: wingtech_guangyu_4v35_2300mah loaded
[ 7.527886][UTC:-- ::()]BMS: bms_load_hw_defaults: BMS_EN= Sample_Interval-S1=[]S2=[] Sample_Count-S1=[]S2=[] Fifo_Length-S1=[]S2=[] FSM_state=
[ 7.556444][UTC:-- ::()]BMS: calculate_initial_soc: warm_reset= est_ocv= shutdown_soc_invalid= shutdown_ocv= shutdown_soc= last_soc=- calculated_soc= last_ocv_uv=
[ 7.574437][UTC:-- ::()]BMS: check_eoc_condition: Unable to read battery status
[ 7.598970][UTC:-- ::()]BMS: qpnp_vm_bms_probe: probe success: soc= vbatt= ocv= warm_reset=
[ 7.736621][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.758838][UTC:-- ::()]battery powe supply creat attr file!!
[ 7.765200][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.775966][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.782855][UTC:-- ::()]msm_otg 78d9000.usb: USB in low power mode
[ 7.789736][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.792724][UTC:-- ::()]CHG: qpnp_lbc_probe: Probe chg_dis= bpd= usb= batt_pres= batt_volt= soc=
[ 7.793094][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 7.793395][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 7.835608][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.849180][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.915707][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 7.927428][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 7.938594][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 7.948413][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 7.958526][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 7.968454][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 7.978088][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 7.984581][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.984751][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.985076][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 7.988462][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 8.033278][UTC:-- ::()]VFP support v0.: implementor architecture part variant rev
[ 8.042370][UTC:-- ::()]Registering SWP/SWPB emulation handler
[ 8.625703][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.637415][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.648589][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.658407][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.668586][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.678470][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 8.688075][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 8.697614][UTC:-- ::()]init: Nathan init
[ 8.703776][UTC:-- ::()]android_probe: Nathan android_probe
[ 8.710094][UTC:-- ::()]android_create_device: Nathan android_create_device
[ 8.719760][UTC:-- ::()]android_bind: Nathan android_bind
[ 8.725612][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.733409][UTC:-- ::()]android_init_functions: Nathan android_init_functions
[ 8.742549][UTC:-- ::()]file system registered
[ 8.748017][UTC:-- ::()]mbim_init: initialize instances
[ 8.754749][UTC:-- ::()]mbim_init: Initialized ports
[ 8.768278][UTC:-- ::()]rndis_qc_init: initialize rndis QC instance
[ 8.776743][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 8.785469][UTC:-- ::()]android_usb gadget: Mass Storage Function, version: //
[ 8.793737][UTC:-- ::()]android_usb gadget: Number of LUNs=
[ 8.800785][UTC:-- ::()] lun0: LUN: read only CD-ROM file: (no medium)
[ 8.808591][UTC:-- ::()] lun1: LUN: removable file: (no medium)
[ 8.815841][UTC:-- ::()] lun2: LUN: removable file: (no medium)
[ 8.825081][UTC:-- ::()]android_usb gadget: android_usb ready
[ 8.831196][UTC:-- ::()]msm_hsusb msm_hsusb: [ci13xxx_start] hw_ep_max =
[ 8.841933][UTC:-- ::()]init: Nathan init, after platform_driver_register
[ 8.842066][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.842097][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.844577][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.844725][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.845283][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.845666][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 8.845960][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 8.925499][UTC:-- ::()]input: gpio-keys as /devices/soc./gpio_keys./input/input5
[ 8.935881][UTC:-- ::()]qcom,qpnp-rtc qpnp-rtc-ee362800: setting system clock to -- :: UTC ()
[ 8.936689][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 8.936721][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 8.938962][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 8.939109][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 8.939645][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 8.940032][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 8.940325][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 9.021303][UTC:-- ::()]battery_current_limit qcom,bcl.: battery_current_limit:probe_btm_properties Error reading key:qcom,ibat-monitor. ret = -
[ 9.037923][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 9.046845][UTC:-- ::()]msm_thermal:interrupt_mode_init Interrupt mode init
[ 9.046880][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU0
[ 9.047676][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU1
[ 9.047687][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU2
[ 9.047695][UTC:-- ::()]msm_thermal:disable_msm_thermal Max frequency reset for CPU3
[ 9.095453][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 9.104989][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 9.115267][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 9.116749][UTC:-- ::()]led_gpio_flash_probe:probe successfully!
[ 9.119670][UTC:-- ::()]qcom,cc-debug- .qcom,cc-debug: Registered Debug Mux successfully
[ 9.120479][UTC:-- ::()]clock_late_init: Removing enables held for handed-off clocks
[ 9.123974][UTC:-- ::()]ALSA device list:
[ 9.123977][UTC:-- ::()] No soundcards found.
[ 9.164347][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests prob錥 9.174607][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 9.176272][UTC:-- ::()]Freeing unused kernel memory: 864K (c0d97000 - c0e6f000)
[ 9.192632][UTC:-- ::()]spmi wcd-spmi-ee363c00: Driver wcd-spmi-core requests probe deferral
[ 9.203067][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 9.215302][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 9.224746][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 9.235110][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 9.245152][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 9.273972][UTC:-- ::()]SELinux: Permission attach_queue in class tun_socket not defined in policy.
[ 9.283696][UTC:-- ::()]SELinux: the above unknown classes and permissions will be denied
[ 9.553620][UTC:-- ::()]type= audit(1859.099:): policy loaded auid= ses=
[ 9.563384][UTC:-- ::()]SELinux: Loaded policy from /sepolicy
[ 9.572878][UTC:-- ::()]type= audit(1859.129:): enforcing= old_enforcing= auid= ses=
[ 13.944148][UTC:-- ::()]init: /init.qcom.rc: : user option requires a user id
[ 13.955599][UTC:-- ::()]init (): /proc//oom_adj is deprecated, please use /proc//oom_score_adj instead.
[ 13.968645][UTC:-- ::()]init: invalid uid 'fm_radio'
[ 13.985831][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 13.998561][UTC:-- ::()]XXX::reg1010=0x0,reg1310=0x0,reg1309=0x0,plugged_in=,reg1049=0x90,reg1009=0x0
[ 14.453737][UTC:-- ::()]init: cannot open '/initlogo.rle'
[ 14.470737][UTC:-- ::()]iSerial_store: serial number is feb1dcc4, uinque_serial_string is feb1dcc4
[ 14.546858][UTC:-- ::()]EXT4-fs (mmcblk0p23): mounted filesystem with ordered data mode. Opts: barrier=,discard
[ 14.558847][UTC:-- ::()]EXT4-fs (mmcblk0p30): Ignoring removed nomblk_io_submit option
[ 14.784660][UTC:-- ::()]EXT4-fs (mmcblk0p30): orphan inodes deleted
[ 14.791631][UTC:-- ::()]EXT4-fs (mmcblk0p30): recovery complete
[ 14.805456][UTC:-- ::()]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 14.835774][UTC:-- ::()]fs_mgr: Running /system/bin/e2fsck on /dev/block/bootdevice/by-name/userdata
[ 14.879435][UTC:-- ::()]e2fsck () used greatest stack depth: bytes left
[ 14.887374][UTC:-- ::()]e2fsck: e2fsck 1.41. (-Dec-)
[ 14.894691][UTC:-- ::()]e2fsck: /dev/block/bootdevice/by-name/userdata: clean, / files, / blocks
[ 14.911866][UTC:-- ::()]EXT4-fs (mmcblk0p30): mounted filesystem with ordered data mode. Opts: barrier=,noauto_da_alloc,discard
[ 14.924403][UTC:-- ::()]init () used greatest stack depth: bytes left
[ 14.941222][UTC:-- ::()]EXT4-fs (mmcblk0p25): recovery complete
[ 14.948341][UTC:-- ::()]EXT4-fs (mmcblk0p25): mounted filesystem with ordered data mode. Opts: barrier=
[ 15.014850][UTC:-- ::()]init: Detected MSM SOC ID= SOC VER= BOARD TYPE=QRD
[ 15.023340][UTC:-- ::()]init: failed to open '/sys/class/graphics/fb2/msm_fb_type'
[ 15.041778][UTC:-- ::()]init: property 'persist.sys.ssr.enable_debug' doesn't exist while expanding '${persist.sys.ssr.enable_debug}'
[ 15.054398][UTC:-- ::()]init: cannot expand '${persist.sys.ssr.enable_debug}' while writing to '/sys/module/subsystem_restart/parameters/enable_debug'
[ 15.069601][UTC:-- ::()]init: property 'persist.sys.mba_boot_timeout' doesn't exist while expanding '${persist.sys.mba_boot_timeout}'
[ 15.082895][UTC:-- ::()]init: cannot expand '${persist.sys.mba_boot_timeout}' while writing to '/sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms'
[ 15.098047][UTC:-- ::()]init: property 'persist.sys.modem_auth_timeout' doesn't exist while expanding '${persist.sys.modem_auth_timeout}'
[ 15.111967][UTC:-- ::()]init: cannot expand '${persist.sys.modem_auth_timeout}' while writing to '/sys/module/pil_msa/parameters/modem_auth_timeout_ms'
[ 15.127022][UTC:-- ::()]init: property 'persist.sys.pil_proxy_timeout' doesn't exist while expanding '${persist.sys.pil_proxy_timeout}'
[ 15.140812][UTC:-- ::()]init: cannot expand '${persist.sys.pil_proxy_timeout}' while writing to '/sys/module/peripheral_loader/parameters/proxy_timeout_ms'
[ 15.159600][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: loading from 0x86800000 to 0x8b900000
[ 15.217252][UTC:-- ::()]pil: MBA boot done
[ 15.854757][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: Brought out of reset
[ 15.961096][UTC:-- ::()]pil-q6v5-mss .qcom,mss: modem: Power/Clock ready interrupt received
[ 15.961122][UTC:-- ::()]pil-q6v5-mss .qcom,mss: Subsystem error monitoring/handling services are up
[ 15.961556][UTC:-- ::()]spmi wcd-spmi-ee363a00: Driver wcd-spmi-core requests probe deferral
[ 15.962115][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 15.962121][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 15.962589][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: ASoC: CODEC msm8x16_wcd_codec not registered
[ 15.962620][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: snd_soc_register_card failed (-)
[ 15.962721][UTC:-- ::()]platform msm-snd-card.: Driver msm8x16-asoc-wcd requests probe deferral
[ 15.964845][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: msm8x16_asoc_machine_probe: missing qcom,msm-snd-card-id in dt node
[ 15.964851][UTC:-- ::()]msm8x16-asoc-wcd msm-snd-card.: default codec configured
[ 15.975265][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: no dapm match for VOICE2_STUB_DL --> Voice2 Stub --> INTERNAL_BT_SCO_RX_Voice Mixer
[ 15.975272][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: Failed to add route VOICE2_STUB_DL -> Voice2 Stub -> INTERNAL_BT_SCO_RX_Voice Mixer
[ 15.989739][UTC:-- ::()]msm-pcm-routing msm-pcm-routing: ASoC: mux SLIM_0_RX AANC MUX has no paths
[ 15.992101][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX3 MIX1 INP3 has no paths
[ 15.992213][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: mux RX2 MIX1 INP3 has no paths
[ 15.993358][UTC:-- ::()]type= audit(1865.539:): avc: denied { entrypoint } for pid= comm="init" path="/sbin/healthd" dev="rootfs" ino= scontext=u:r:healthd:s0 tcontext=u:object_r:rootfs:s0 tclass=file
[ 15.995593][UTC:-- ::()]binder: : transaction failed , size -
[ 16.157083][UTC:-- ::()]M-Notify: General:
[ 16.167556][UTC:-- ::()]init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
shell@Kraft-A6000:/ $ [ 16.314121][UTC:-- ::()]init: cannot find '/system/bin/ssr_diag', disabling 'ssr_diag'
[ 16.326207][UTC:-- ::()]init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}'
[ 16.337944][UTC:-- ::()]init: powerctl: cannot expand '${sys.powerctl}'
[ 16.346172][UTC:-- ::()]init: property 'sys.sysctl.extra_free_kbytes' doesn't exist while expanding '${sys.sysctl.extra_free_kbytes}'
[ 16.359230][UTC:-- ::()]init: cannot expand '${sys.sysctl.extra_free_kbytes}' while writing to '/proc/sys/vm/extra_free_kbytes'
[ 16.372485][UTC:-- ::()]init: property 'sys.sysctl.tcp_def_init_rwnd' doesn't exist while expanding '${sys.sysctl.tcp_def_init_rwnd}'
[ 16.385467][UTC:-- ::()]init: cannot expand '${sys.sysctl.tcp_def_init_rwnd}' while writing to '/proc/sys/net/ipv4/tcp_default_init_rwnd'
[ 16.453498][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.464042][UTC:-- ::()]enable_store: android_usb: already disabled
[ 16.486965][UTC:-- ::()]functions_store: Nathan functions_store buf:mtp,mass_storage,adb
[ 16.497072][UTC:-- ::()]alloc_android_config: Nathan alloc_android_config
[ 16.516610][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.526254][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.534626][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 16.543293][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 16.551511][UTC:-- ::()]android_disable: Nathan android_disable
[ 16.559386][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.572592][UTC:-- ::()]init: sys_prop: permission denied uid: name:persist.sys.sd.defaultpath
[ 16.610168][UTC:-- ::()]android_enable: Nathan android_enable
[ 16.617627][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 16.626806][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 16.634709][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 16.675341][UTC:-- ::()]handle_qmi_request: Error getting req_desc for msg_id
[ 16.684126][UTC:-- ::()]mem_share_svc_recv_msg: Error receiving message
[ 16.709499][UTC:-- ::()]diag: In diag_send_msg_mask_update, invalid status
[ 16.724344][UTC:-- ::()]diag: In diag_send_log_mask_update, invalid status [ 16.773893][UTC:-- ::()]QSEECOM: qseecom_load_app: App (keymaste) does'nt exist, loading apps for first time
[ 16.787652][UTC:-- ::()]QSEECOM: qseecom_load_app: scm_call rsp.result is QSEOS_RESULT_FAILURE
[ 16.792151][UTC:-- ::()]failed: no power_down_setting[ 16.792162][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.792165][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.792168][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.792171][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vaf
[ 16.792175][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vaf
[ 16.792177][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.792180][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.792183][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.860967][UTC:-- ::()]imx219_q8n13a probe succeeded[ 16.880634][UTC:-- ::()]QSEECOM: qseecom_ioctl: failed load_app request: -
[ 16.895417][UTC:-- ::()]QSEECOM: qseecom_release: data: released=false, type=, mode=, data=0xed71c600
[ 16.938136][UTC:-- ::()]failed: no power_down_setting
[ 16.944083][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 16.953172][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.962070][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.972376][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vana
[ 16.980232][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vdig
[ 16.988857][UTC:-- ::()]msm_camera_fill_vreg_params: i j cam_vio
[ 17.009373][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic1
[ 17.018750][UTC:-- ::()]wcd-spmi-core msm8x16_wcd_codec: ASoC: unknown pin Digital Mic2
[ 17.051851][UTC:-- ::()]gc2355_8916 probe succeeded
[ 17.107804][UTC:-- ::()]msm_actuator_close: software shutdown error rc=-[ 17.116571][UTC:-- ::()]msm_cci_release invalid ref count / cci state
[ 17.124993][UTC:-- ::()]msm_sensor_cci_i2c_util line rc = -
[ 17.133240][UTC:-- ::()]msm_actuator_close: cci_init failed
[ 17.166774][UTC:-- ::()]MSM-CPP cpp_init_hardware: stream_cnt:
[ 17.516152][UTC:-- ::()]MSM-SENSOR-INIT msm_sensor_wait_for_probe_done: msm_cam_get_module_init_status -
[ 17.516152][UTC:-- ::()]
[ 17.580438][UTC:-- ::()]msm_qti_pp_get_rms_value_control, back not active to query rms
[ 17.590654][UTC:-- ::()]msm_dolby_dap_param_to_get_control_get, port_id not set, do not query ADM
[ 17.661420][UTC:-- ::()]core_set_license: error getting metainfo size, err:0x0, size:
[ 17.891059][UTC:-- ::()]diag: In diag_process_smd_read_data, diag_device_write error: -
[ 19.030692][UTC:-- ::()]diag: In diag_send_msg_mask_update, invalid status
[ 19.038738][UTC:-- ::()]diag: In diag_send_log_mask_update, invalid status [ 19.064373][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 21.064381][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 21.699161][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.734375][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.764373][UTC:-- ::()]wcnss: no space available for smd frame
[ 21.794377][UTC:-- ::()]wcnss: no space available for smd frame
[ 22.568062][UTC:-- ::()]tc () used greatest stack depth: bytes left
[ 23.064348][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 25.064337][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 27.064341][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 29.064366][UTC:-- ::()]mdss_check_dsi_ctrl_status: ctl not powered on
[ 30.696407][UTC:-- ::()]mdss_dsi_on: Panel already on.
[ 30.761198][UTC:-- ::()]wgz ldo17 enable =
[ 30.766758][UTC:-- ::()]8916_l17: Failed to create debugfs directory
[ 30.776245][UTC:-- ::()]wgz get regulator Ldo17 ok
[ 31.102589][UTC:-- ::()]state_show: Nathan state_show buf:
[ 32.262142][UTC:-- ::()]type= audit(1388535700.728:): avc: denied { getattr } for pid= comm="zygote" path="socket:[10709]" dev="sockfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 32.284443][UTC:-- ::()]type= audit(1388535700.758:): avc: denied { getopt } for pid= comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 33.313580][UTC:-- ::()]type= audit(1388535701.778:): avc: denied { getattr } for pid= comm="zygote" path="socket:[10709]" dev="sockfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 33.336041][UTC:-- ::()]type= audit(1388535701.818:): avc: denied { getopt } for pid= comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
[ 34.066231][UTC:-- ::()]type= audit(1388535702.538:): avc: denied { read write } for pid= comm="d.process.acore" name="kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 34.089367][UTC:-- ::()]type= audit(1388535702.558:): avc: denied { open } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 34.112615][UTC:-- ::()]type= audit(1388535702.578:): avc: denied { ioctl } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 34.591381][UTC:-- ::()]init: untracked pid exited
[ 34.989640][UTC:-- ::()]type= audit(1388535703.458:): avc: denied { ioctl } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 35.766979][UTC:-- ::()]init: sys_prop: permission denied uid: name:service.bootanim.exit
[ 37.853294][UTC:-- ::()]init: untracked pid exited
[ 37.934247][UTC:-- ::()]init: untracked pid exited
[ 38.109570][UTC:-- ::()]init: untracked pid exited
[ 38.710173][UTC:-- ::()]type= audit(1388535707.178:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=dir
[ 38.731511][UTC:-- ::()]type= audit(1388535707.198:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
[ 38.764499][UTC:-- ::()]type= audit(1388535707.238:): avc: denied { open } for pid= comm="mobile.avlenovo" path="/proc/1/status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:init:s0 tclass=file
[ 38.791366][UTC:-- ::()]type= audit(1388535707.258:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=dir
[ 38.812975][UTC:-- ::()]type= audit(1388535707.278:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
[ 38.834637][UTC:-- ::()]type= audit(1388535707.308:): avc: denied { open } for pid= comm="mobile.avlenovo" path="/proc/2/status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:kernel:s0 tclass=file
[ 38.871236][UTC:-- ::()]type= audit(1388535707.338:): avc: denied { search } for pid= comm="mobile.avlenovo" name="" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=dir
[ 38.891862][UTC:-- ::()]type= audit(1388535707.368:): avc: denied { read } for pid= comm="mobile.avlenovo" name="status" dev="proc" ino= scontext=u:r:untrusted_app:s0 tcontext=u:r:ueventd:s0 tclass=file
[ 39.039972][UTC:-- ::()]wgz ldo17 enable =
[ 39.045550][UTC:-- ::()]wgz get regulator Ldo17 ok
[ 43.362647][UTC:-- ::()]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found
[ 43.438391][UTC:-- ::()]msm_get_platform_subtype: Invalid hardware platform sub type for qrd found
[ 44.973776][UTC:-- ::()]audit_printk_skb: callbacks suppressed
[ 44.981730][UTC:-- ::()]type= audit(1388535713.438:): avc: denied { ioctl } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 45.409180][UTC:-- ::()]type= audit(1388535713.878:): avc: denied { read write } for pid= comm="d.process.acore" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 46.367824][UTC:-- ::()]type= audit(1388535714.838:): avc: denied { write } for pid= comm="d.process.acore" name="mpctl" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:socket_device:s0 tclass=sock_file
[ 52.554212][UTC:-- ::()]type= audit(1388535721.018:): avc: denied { open } for pid= comm="facebook.katana" path="/dev/kgsl-3d0" dev="tmpfs" ino= scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
[ 61.115619][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.123292][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.132416][UTC:-- ::()]android_work: Nathan android_work
[ 61.218374][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.226050][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 61.234410][UTC:-- ::()]android_work: Nathan android_work
[ 61.642094][UTC:-- ::()]CHG: qpnp_lbc_batt_temp_alarm_work_fn: wgz ok ,enable charger
[ 61.875455][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.883126][UTC:-- ::()]android_resume: Nathan android_resume
[ 61.890996][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.899621][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.908312][UTC:-- ::()]android_work: Nathan android_work
[ 61.947634][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.955315][UTC:-- ::()]android_setup: Nathan android_setup
[ 61.963165][UTC:-- ::()]android_work: Nathan android_work
[ 61.970649][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 61.980965][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 61.989515][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 61.998612][UTC:-- ::()]android_work: Nathan android_work
[ 62.005590][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 62.071918][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.079588][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.087477][UTC:-- ::()]android_work: Nathan android_work
[ 62.094863][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 62.105180][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.113787][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.123629][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.131309][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.142635][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.150307][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.160623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.168291][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.179623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.187287][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.197621][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.205283][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.215623][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.223285][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.233622][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.241285][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.253626][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.261298][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.273628][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.281303][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.291629][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.299306][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.312637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.320317][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.330627][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.338297][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.349636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.357310][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.369634][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.377308][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.385484][UTC:-- ::()]android_work: Nathan android_work
[ 62.510649][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.518335][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.528642][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.536335][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.550849][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.558682][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.580637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.588312][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.602633][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.610302][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.628636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.636305][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.646636][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.654312][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.664637][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.672308][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.682633][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.690300][UTC:-- ::()]android_setup: Nathan android_setup
[ 62.734638][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 62.742309][UTC:-- ::()]android_setup: Nathan android_setup
[ 95.075531][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.082528][UTC:-- ::()]android_disable: Nathan android_disable
[ 95.108020][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.125073][UTC:-- ::()]android_unbind_config: Nathan android_unbind_config
[ 95.140799][UTC:-- ::()]android_unbind_enabled_functions: Nathan android_unbind_enabled_functions
[ 95.202111][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.209319][UTC:-- ::()]enable_store: android_usb: already disabled
[ 95.217817][UTC:-- ::()]functions_store: Nathan functions_store buf:ptp,adb
[ 95.226655][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 95.235859][UTC:-- ::()]android_enable_function: Nathan android_enable_function
[ 95.245337][UTC:-- ::()]enable_store: Nathan enable_store buf:
[ 95.253184][UTC:-- ::()]android_disable: Nathan android_disable
[ 95.261199][UTC:-- ::()]android_enable: Nathan android_enable
[ 95.272351][UTC:-- ::()]android_enable: Nathan android_enable
[ 95.279278][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.287875][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 95.296536][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions
[ 95.310391][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 95.318057][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 95.326126][UTC:-- ::()]android_work: Nathan android_work
[ 96.314241][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.321915][UTC:-- ::()]android_resume: Nathan android_resume
[ 96.329777][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.338404][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 96.346977][UTC:-- ::()]android_work: Nathan android_work
[ 96.354590][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 96.489429][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.497110][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.504935][UTC:-- ::()]android_work: Nathan android_work
[ 96.512238][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.520889][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 96.532823][UTC:-- ::()]android_work: Nathan android_work
[ 96.712027][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.719712][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.727499][UTC:-- ::()]android_work: Nathan android_work
[ 96.734884][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.743493][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.751415][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 96.761595][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.770228][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.778132][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.786550][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.794408][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.802869][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.810909][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.819188][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.826933][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.835509][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.843258][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.851827][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.859564][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.868147][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.875883][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.884466][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.892213][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.900785][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.908524][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.917105][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.924857][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.933425][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.941175][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.949744][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.957531][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.966066][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.973865][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.982385][UTC:-- ::()]android_setup: Nathan android_setup
[ 96.990182][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 96.998704][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.006451][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.015023][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.023035][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.031343][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.045338][UTC:-- ::()]android_work: Nathan android_work
[ 97.127823][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.135509][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.143391][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.151823][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.159766][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.168143][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.176036][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.184466][UTC:-- ::()]android_setup: Nathan android_setup
[ 97.234480][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 97.242151][UTC:-- ::()]android_setup: Nathan android_setup
[ 123.795798][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 123.803482][UTC:-- ::()]android_suspend: Nathan android_suspend
[ 123.811612][UTC:-- ::()]android_work: Nathan android_work
[ 123.819135][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 123.993190][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 123.993272][UTC:-- ::()]android_disable: Nathan android_disable
[ 124.008843][UTC:-- ::()]android_disconnect: Nathan android_disconnect
[ 124.018425][UTC:-- ::()]android_work: Nathan android_work
[ 124.019074][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 124.019077][UTC:-- ::()]android_unbind_config: Nathan android_unbind_config
[ 124.019080][UTC:-- ::()]android_unbind_enabled_functions: Nathan android_unbind_enabled_functions
[ 124.053933][UTC:-- ::()]android_enable: Nathan android_enable
[ 124.061571][UTC:-- ::()]cdev_to_android_dev: Nathan cdev_to_android_dev
[ 124.061745][UTC:-- ::()]android_pm_qos_update_latency: Nathan android_pm_qos_update_latency
[ 124.080709][UTC:-- ::()]android_bind_config: Nathan android_bind_config
[ 124.089147][UTC:-- ::()]android_bind_enabled_functions: Nathan android_bind_enabled_functions

可以看到,不管插不插usb线,都会走的调用流程如下:

init->android_probe->android_create_device->android_bind->android_init_functions

之后就是匹配rc文件里的相关配置,向各个文件节点写入响应的数值。

下面具体分析各个流程,从相关文件节点的读写相应函数开始分析。

先看enable时写0和1内核驱动的动作

Android USB驱动源码分析(-)的更多相关文章

  1. (转)Linux设备驱动之HID驱动 源码分析

    //Linux设备驱动之HID驱动 源码分析 http://blog.chinaunix.net/uid-20543183-id-1930836.html HID是Human Interface De ...

  2. Android网络框架源码分析一---Volley

    转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium ...

  3. OpenGL—Android 开机动画源码分析一

    .1 Android开机动画实现方式目前实现Android开机动画的方式主要是逐帧动画和OpenGL动画. ?逐帧动画 逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的 ...

  4. 9.1 IIC驱动源码分析

    学习目标:分析linux内核源码下的i2c总线驱动 drivers/i2c/busses/i2c-s3c2410.c 和 driver/i2c/chips/eeprom.c 设备驱动: 一.i2c驱动 ...

  5. Android分包MultiDex源码分析

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/52845661 本文出自: [HansChen的博客] 概述 Android开发者应该 ...

  6. [Android]简略的Android消息机制源码分析

    相关源码 framework/base/core/java/andorid/os/Handler.java framework/base/core/java/andorid/os/Looper.jav ...

  7. Android Doze模式源码分析

    科技的仿生学无处不在,给予我们启发.为了延长电池是使用寿命,google从蛇的冬眠中得到体会,那就是在某种情况下也让手机进入类冬眠的情况,从而引入了今天的主题,Doze模式,Doze中文是打盹儿,打盹 ...

  8. Android消息机制源码分析

    本篇主要介绍Android中的消息机制,即Looper.Handler是如何协同工作的: Looper:主要用来管理当前线程的消息队列,每个线程只能有一个Looper Handler:用来将消息(Me ...

  9. Android 开机动画源码分析

    Android系统在启动SystemServer进程时,通过两个阶段来启动系统所有服务,在第一阶段启动本地服务,如SurfaceFlinger,SensorService等,在第二阶段则启动一系列的J ...

随机推荐

  1. php面试专题---12、JavaScript和jQuery基础考点

    php面试专题---12.JavaScript和jQuery基础考点 一.总结 一句话总结: 比较常考察的是JavaScript的HTML样式操作以及jQuery的选择器和事件.样式操作. 1.下列不 ...

  2. leetcode 292. Nim游戏(python)

    你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断 ...

  3. jenkins自动化打包报错:gradle: 未找到命令

    shell脚本如下: cd /home/wangju/gitProject/Automation echo "************************开始清理环境********** ...

  4. day09—css布局解决方案之全屏布局

    转行学开发,代码100天——2018-03-25 今天,本文记录全屏布局的的方法.全屏布局,即滚动条不是全局滚动条,而是出现在内容区域内,:浏览器变大时,撑满窗口. 如:设置下图中布局,其中top区, ...

  5. [转]Hook executed successfully but returned HTTP 403

    原文地址:https://www.cnblogs.com/chenglc/p/11174530.html jenkins配置gitlab的webhook,完成配置,测试结果显示 Hook execut ...

  6. LeetCode 144. Binary Tree Preorder Traversal 动态演示

    先序遍历的非递归办法,还是要用到一个stack class Solution { public: vector<int> preorderTraversal(TreeNode* root) ...

  7. 15.队列Queue的特点以及使用,优先级等

    #生产者与消费者模式,模式解释:比如MVC设计模式 ''' 1.队列 (1)特点:先进先出 (2)python2 VS python3 python2:from Queue import queue ...

  8. numpy.meshgrid的理解以及3D曲面图绘制(梯度下降法实现过程)

    相关概念: 1.x向量和y向量 import numpy as np import matplotlib.pyplot as plt x = np.array([[0,1,2,3], [0,0,0,0 ...

  9. Java8数据流

    流/Stream是在JAVA8中引入的一个抽象,可以处理类似SQL语句声明数据. 例如,考虑下面的SQL语句. SELECT max(salary),employee_id,employee_name ...

  10. Jenkins设置默用户为root

    https://www.jianshu.com/p/181dfb259dc7 最近在需要在jenkins执行shell脚本,由于Jenkins之前是默认在线安装的,这样jenkins设置了默认用户je ...