一、通用
	adb root	// user版本adb root之后就可以cat节点
	adb shell
	adb reboot									// 重启
	reboot
	reboot -p									// 关机
	adb remount
	adb pull /data/media/0/mtklog e:mtklog/
	adb push e:mtklog/ /data/media/0/mtklog		// push之前需要adb remount
	rm -r /data/media/0/mtklog
	adb install C:\Users\liuzhigou\Desktop\sensor测试APK\SensorList_v2.1.apk
	
	git add --all && git commit -m "before modify"	// 保存调试现场
	
	 adb stop	// 仅重启android,不重启kernel
	 adb start
		
二、调试
	1. 查看内核log
		cat /proc/kmsg | grep "tp|lcm"	// 容易断
		cat /dev/kmsg | grep "tp|lcm"	// row不会断
		
		导出:adb shell cat /proc/kmsg > e:kernel.log
		
	2. 查看上层log
		查看:
			logcat | grep "FingerprintHal"
		导出:
			logcat | grep "FingerprintHal" > log.txt
			adb logcat > d:\log.txt
	
	3.dmesg充当串口log -- 但是无preloader与lk的log
		增大内核缓冲区 - 修改kernel-3.18\kernel\printk\printk.c 
		-332	#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
		+332	#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT << 5)
	
		adb shell dmesg > log.log	//查看内核缓冲区log(包括开机log,同串口log)
	
	4. 查看input上报信息: tp,keypad,sensor
		getevent -i	
		getevent -t /dev/input/event5
		
	4.1	getevent -l /dev/input/event5	// 可以查看键值坐标,如:
		
		// =========虚拟按键按下所报键值===========
		EV_ABS       ABS_MT_TOUCH_MAJOR   00000014
		EV_ABS       ABS_MT_TRACKING_ID   00000000
		EV_KEY       BTN_TOUCH            DOWN
		EV_ABS       ABS_MT_POSITION_X    0000003c	// 换成十进制为(60,2100)
		EV_ABS       ABS_MT_POSITION_Y    00000640	// 换成十进制为(60,2100)
		EV_SYN       SYN_MT_REPORT        00000000
		EV_SYN       SYN_REPORT           00000000
		EV_KEY       BTN_TOUCH            UP
		EV_SYN       SYN_MT_REPORT        00000000
		EV_SYN       SYN_REPORT           00000000
				
	5. 查看pin脚模式- 特别注意:输入输出 dir:0-in 1-out
		cat /sys/class/misc/mtgpio/pin
		PIN:MODE,PULL_SEL,DIN,DOUT,PULL EN,DIR,IES,SMT
		0:	1	 1		  1	  0	   1	   0   1   0
		1:  0	 0		  0	  0	   1	   0   1   0
		
		写值
		echo \"-w=99:0 1 0 0 0 0 0 1\" > /sys/class/misc/mygpio/pin
	
	6. 查看中断
		1. 查看中断是否注册成功
			cat /proc/interrupts
					CPU0		CPU1
			29:			0			0	GIC	29	arch_timer
			...
			196			0			0	GIC	196	mtk-tpd
			...
			298:        376   		mt-eint  10  TOUCH_PANEL-eint
			
		2. 查看是否有中断计数是否增加
			Zun_M:/ # cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			298:        376   mt-eint  10  TOUCH_PANEL-eint							// 376
			Zun_M:/ # cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			298:        387        341        301   mt-eint  10  TOUCH_PANEL-eint	// 387
			Zun_M:/ # cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			298:        399        355        309   mt-eint  10  TOUCH_PANEL-eint	// 399
			Zun_M:/ # cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			cat /proc/interrupts | grep " TOUCH_PANEL-eint"
			298:        401        362        316   mt-eint  10  TOUCH_PANEL-eint	// 401
		
	7. 查看进程
		root@Z PLAY:/system/bin # ps | grep mem		// 查看进程
			system    256   1     1184   384   c0051864 b6fb1310 S /system/bin/memsicp
			
		root@Z PLAY:/system/bin # kill 256			// 杀死进程
		
		// eng版本才能手动启动进程
		1)	adb remount
		2)	adb push
		3)	xxx &
		root@Z PLAY:/system/bin # memsicp			// 手动启动进程,不会退出
		root@Z PLAY:/system/bin # memsicp &			// 后台运行
		
	8. 串口设置 - 板子上的TXD
		波特率	 	:	921600
		data bits	:	8
		stop bits	:	1
		parity		:	None
		flow control:	None
	
	
三、lcm		
	1. 查看机器中lcm型号:
		cat /proc/cmdline					// 包含lcm的型号(6.0有,7.0没有-需要可以自己加)
		
	1.1 自己加:
		alps/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
		-	//#define SERIAL_NUM_FROM_BARCODE
		+	#define SERIAL_NUM_FROM_BARCODE

			int boot_linux_from_storage(void)
		+		snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "lcm=%1d-%s", DISP_IsLcmFound(), mt_disp_get_lcm_id());
		+		cmdline_append(cmdline_tmpbuf);
		+		snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "fps=%1d", mt_disp_get_lcd_time());
		+		cmdline_append(cmdline_tmpbuf);
		+		snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "vram=%1d", DISP_GetVRamSize());
		+		cmdline_append(cmdline_tmpbuf);
		
	2. 查看系统分辨率	
		cat /system/build.prop | grep lcd_density // 得“240”
		
四、tp		
	1. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent
		inut keyevent 3						//home
		inut keyevent 4						//back
		inut keyevent 26					//power
		
	2 通过sys节点读取
		cat /sys/board_properties/virtualkeys.mtk-tpd	// 获取软件中虚拟按键坐标
		
五、camera		
	1 查看是否读到id
		cat /proc/driver/camera_info					// 查看已经读到ID的camera
		
	2 后副摄调试节点 - microhand公司自己实现
		cat /proc/driver/dualcam_brightness				// 1 -- 光线强 0 -- 光线弱	有变化说明驱动通了,但是没有虚化效果,是因为上层的宏没配 
		cat /sys/bus/platform/drivers/image_sensor/yuv_shutter	// 可以获得亮度值

六、sensor
	1.架构实现	- 两个路径的节点是一样的,cat出来也是相同的,hal层走class
		/sys/class/misc/m_acc_misc/***				
		/sys/devices/virtual/misc/m_acc_misc/***	有若干属性,可以读写操作
		
		cat /sys/.../accenablenodata	-- 不支持		echo 0/1	> 无作用
		cat /sys/.../accactive			-- 1(使能)	echo 0	> /sys/.../accactive -- disable
		cat /sys/.../accdelay(不常用)
		cat /sys/.../accbatch(不常用)
		cat /sys/.../accflush(不常用)
		cat /sys/.../accdevnum			-- 4(/dev/input/event4)

	2.驱动实现
		/sys/bus/platform/drivers/gsensor/*** 有若干属性,可以读写操作

	*	cat /sys/.../chipinfo		-- MC3XXX Chip					-- 直接打印MC3XXX Chip
	*	cat /sys/.../sensordata 	-- 1758 0695 1b88				-- 读地址0x00
		cat /sys/.../cali			-- 三组校准数据 				-- 第二组为校准系数,上层未下发就为0 
		cat /sys/.../selftest		-- 空(未设置)
		cat /sys/.../firlen 		-- 0							-- 滤波长度 - 从dts获得 - 全部为0
		cat /sys/.../trace			-- 0x0000						-- mc3xxx_i2c_probe()把它设置为0
		cat /sys/.../status 		-- CUST: 2 7 <-1 0> 			-- i2c_num direction <power_id power_vol> -  从dts获取
		cat /sys/.../power			-- 亮屏0x0041,灭屏0x0043		-- 读地址0x07
		cat /sys/.../version		-- 2.1.6							-- 打印驱动的宏
	*	cat /sys/.../chipid 		-- 7C-5F-5E-46					-- 读地址0x3C
		cat /sys/.../virtualz		-- 不支持
	*	cat /sys/.../regmap 		-- 打印所有寄存器的值
	*	cat /sys/.../orientation	-- 方向							-- 从dts获取 echo 7 > /sys/.../orientation
		cat /sys/.../accuracy		-- 2(精度 - 宏设置)
		cat /sys/.../selfcheck		-- 乱码
		cat /sys/.../validate		-- 0(验证成功)					-- 从0x3b读出pcode - 匹配mc3***系列芯片 - 验证成功返回0		
			
七、马达
	1.调试马达震动时间 1000毫秒=1秒:
		echo 1000 > /sys/class/timed_output/vibrator/enable (节点)