# This file gets copied as /init.common.diag.rc

on post-fs-data
    # Modem logging collection
    mkdir /data/vendor/radio 0775 radio radio
    mkdir /data/vendor/radio/diag_logs 0777 system system
    chmod 777 /data/vendor/radio/diag_logs/cfg
    chmod 777 /data/vendor/radio/diag_logs/custom_cfg
    # WLAN logging collection
    mkdir /data/vendor/wifi 0777 system system
    mkdir /data/vendor/wifi/cnss_diag 0777 system system
    # SM DUMP logging collection
    mkdir /data/smlog_dump 0777 system system

    # Copy OEM adb_keys if /data/misc/adb/adb_keys does not exist
    copy /data/misc/adb/adb_keys /data/misc/adb/adb_keys_temp
    copy /vendor/etc/adb_keys /data/misc/adb/adb_keys
    copy /data/misc/adb/adb_keys_temp /data/misc/adb/adb_keys
    chown system shell /data/misc/adb/adb_keys
    chmod 640 /data/misc/adb/adb_keys
    rm /data/misc/adb/adb_keys_temp

on boot
    chmod 666 /dev/diag

on property:sys.usb.config=rndis,diag
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 05C6
     write /sys/class/android_usb/android0/idProduct 902C
     write /sys/class/android_usb/android0/f_diag/clients diag
     write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
     setprop sys.usb.state rndis

on property:sys.usb.config=rndis,diag,adb
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 05C6
     write /sys/class/android_usb/android0/idProduct 902D
     write /sys/class/android_usb/android0/f_diag/clients diag
     write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
     start adbd
     setprop sys.usb.state rndis,adb

on property:sys.usb.config=diag
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 900E
    write /sys/class/android_usb/android0/bDeviceClass 0
    write /sys/class/android_usb/android0/bDeviceSubClass 0
    write /sys/class/android_usb/android0/bDeviceProtocol 0
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

on property:sys.usb.config=diag,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 903D
    write /sys/class/android_usb/android0/bDeviceClass 0
    write /sys/class/android_usb/android0/bDeviceSubClass 0
    write /sys/class/android_usb/android0/bDeviceProtocol 0
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 9025
    write /sys/class/android_usb/android0/bDeviceClass 0
    write /sys/class/android_usb/android0/bDeviceSubClass 0
    write /sys/class/android_usb/android0/bDeviceProtocol 0
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 9025
    write /sys/class/android_usb/android0/bDeviceClass 0
    write /sys/class/android_usb/android0/bDeviceSubClass 0
    write /sys/class/android_usb/android0/bDeviceProtocol 0
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty
    write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa
    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

on property:persist.sys.cnss.diag_qxdm=true
    start vendor.cnss_diag

on property:persist.sys.cnss.diag_qxdm=false
    stop vendor.cnss_diag

on property:persist.sys.cnss.diag_txt=true
    start vendor.cnss_diag_txt

on property:persist.sys.cnss.diag_txt=false
    stop vendor.cnss_diag_txt

service vendor.cnss_diag /vendor/bin/cnss_diag -q -u
    class late_start
    user system
    group system
    oneshot

service vendor.cnss_diag_txt /vendor/bin/cnss_diag -s -f -m /data/vendor/wifi/cnss_diag/cnss_diag.conf
    class late_start
    user system
    group system
    disabled
    oneshot

on property:persist.vendor.sys.crash_rcu=true
    write /proc/sys/kernel/panic_on_rcu_stall 1

on property:persist.vendor.sys.crash_rcu=false
    write /proc/sys/kernel/panic_on_rcu_stall 0


on property:sys.logger.bluetooth=true
   setprop persist.vendor.service.bdroid.snooplog true
   setprop persist.vendor.service.bdroid.fwsnoop true

on property:sys.logger.bluetooth=false
   setprop persist.vendor.service.bdroid.snooplog false
   setprop persist.vendor.service.bdroid.fwsnoop false

on property:persist.bluetooth.btsnoopenable=true
   setprop persist.vendor.service.bdroid.soclog true

on property:persist.bluetooth.btsnoopenable=false
   setprop persist.vendor.service.bdroid.soclog false
