Android USB/SD Card Summary
Summary:
1. Set the default mode for connecting to USB and the device interface corresponding to the four modes
Charger: diag, serial_smd, rmnet_bam, adb
Ptp: ptp, adb
Mtp: mtp, adb
Mass storage: serial_smd, serial_tty, mass_storage
Diag indicates the diag port, serial_smd indicates the serial port, rmnet_bam indicates the network port, and adb indicates the adb port.
Set the default connection mode:
boot_cust_mode=`cat /sys/class/android_usb/android0/device_mode` usb_current_config=`getprop persist.sys.usb.config` case $boot_cust_mode in 0) # ynn modify for user modeif [ $usb_current_config != mtp ]&&[ $usb_current_config != mtp,adb ]; thenecho boot_cust_mode is 0setprop persist.sys.usb.config mtpfi
2 user mode and test mode Conversion
By # * 20110606 # turn on and off the test switch, first set restart_reason in the kernel/drivers/power/reset/msm-poweroff.c
#ifdef USER_TEST_MODE_SWITCHelse if (!strncmp(cmd, userswitch, 10)) {__raw_writel(0x77665506, restart_reason);}else if (!strncmp(cmd, testswitch, 10)) {__raw_writel(0x77665507, restart_reason);} #endif 0x77665506 and 0x77665507 are defined in bootable/bootloader/lk/app/release T. c.
#define USER_SWITCH_MODE 0x77665506 #define TEST_SWITCH_MODE 0x77665507
In restart T. c, set the restart mode:
#ifdef HY_MODE_SWITCH // ynnelse if(reboot_mode == USER_SWITCH_MODE) {device.charger_screen_enabled=1;device.magic_poweron = 0x44332211;write_device_info(&device);}else if(reboot_mode == TEST_SWITCH_MODE) { device.charger_screen_enabled=0; device.magic_poweron = 0; write_device_info(&device); } #endif
#ifdef HY_MODE_SWITCH if(0x44332211 == device.magic_poweron){ device.charger_screen_enabled=1;}else{ device.charger_screen_enabled=0;} #endifThe value of device. charger_screen_enabled is 1, indicating the user mode after restart.
#ifdef HY_MODE_SWITCHif(device.charger_screen_enabled)cmdline_len += strlen(user_mode); #endif #ifdef HY_MODE_SWITCH if(device.charger_screen_enabled) { src = user_mode; if (have_cmdline) --dst; have_cmdline = 1; while ((*dst++ = *src++)); } #endif