控制台下 bcdedit /set testsigning on 重启后计算机进入测试模式(用于烧录不了软件,设备驱动无法安装等情况)
可以通过全编后的out/target/product/xxx/obj/KERNEL_OBJ/所需要查询编译前源文件名的目录(得到源文件名)
在kernel里面,添加新的模块.c时,直接在Makefile中 obj -m += XX.c ,千万千万不要去Kconfig里面添加,\
去Kconfig里面添加,会引起编译kernel时,需要restart config时,十分麻烦
/****git 拉分支、切分支*******/
git branch 查看本地分支
git branch -va 查看所有分支
git fetch origin yudong-hanyang-R870:yudong-hanyang-R870 (从服务器拉分支下来本地)
git checkout yudong-hanyang-R870 切到这个分支
/****git 拉分支、切分支*******/
/*****回退本地还没提交的文件*****/
git status .
git diff 修改的文件
rm 修改的文件
再回退修改git checkout -- xx.file
/*****回退本地还没提交的文件*****/
git checkout -b ap分支 aosp/ap分支 //换分支
git branch -D 旧ap分支 //删除旧分支
从手机/sdcard/mtklog中取出log到windows
c:\users\administrator>adb pull /sdcard/mtklog
start .
adb shell
dmesg -v time | grep HXTP > E:\tp.txt
1、adb reboot bootloader 进入fastboot 模式
2、fastboot flashing unlock 解锁unlock状态
3、fastboot flashing lock 锁定状态
4、fastboot erase data 清空data数据
5、fastboot format data 格式化data分区数据
6、fastboot getvar devices-state 得到锁的状态
7、fastboot erase boot 擦除boot分区
8、fastboot flash boot **.img 烧些img
9、fastboot reboot 重启
push文件到手机
adb remount
adb push xxxx.ko /data
adb shell
chmod 644 /data/xxxx.ko
adb reboot
输入命令adb remount ,意思是将设备改为可读可写;
显示remount succeeded就代表命令执行成功;
c:\users\administrator>adb push C:\Users\pangjianwen\v0b.bin /data
msm8953_64:/sys/bus/i2c/devices/3-0038 # echo /data/v0b.bin > fts_upgrade_app
当机器死机,不能抓串口log,
cat /proc/kmsg或者dmesg也抓不出log时,mtk平台的这个路径/data/logcat_log_mtp下面
ls
capture.pcap0_2018-05-13_15-10-51 logcat_events_2018-05-13_15-10-51.log
kernel_2018-05-13_15-10-51.log
logcat_main_2018-05-13_15-10-51.log
设备管理器下面没有android phone的处理办法
点击计算机管理->操作->添加过时硬件->Android Device->更新驱动程序软件->浏览计算机上的驱动程序文件->添加对应驱动程序文件的路径
打开C:\windows\inf\setupapi.dev.log
这个文件包含了有关即插即用设备和驱动程序安装的信息,当然它也记录你Arduino驱动安装失败的原因
手机距离传感器原理
红外LED灯发射红外线,被近距离物体反射后,红外探测器通过接收到红外线的强度,
测定距离,一般有效距离在10cm内。距离传感器同时拥有发射和接受装置,一般体积较大。
用途:检测手机是否贴在耳朵上正在打电话,以便自动熄灭屏幕达到省电的目的。
也可用于皮套、口袋模式下自动实现解锁与锁屏动作。
手机距离感应器怎么关?
1、进入拨号页面
2、点击手机下方的第一个菜单键,出现菜单,点击“设置”。
3、出现设置菜单后,点击“通话设置”。
4、出现通话设置菜单,点击“来电时状态设置”。
5、来电时状态设置中,第三个,关闭距离感应器。
光线感应器一般位于手机屏幕右上方,副摄像头左边,它能根据手机目前所处的光线亮度,
自动调节手机屏幕亮度,来给人最佳视觉效果的功能。
例如在黑暗的环境下,手机屏幕背光灯就会自动变暗,否则很刺眼。
二、功能 它的功能是用来感应光线强弱的,然后反馈到手机,自动为你调节屏幕亮度,用以省电
/***********A33的学习笔记----------start ***************/
在kernel里面,添加新的模块.c时,直接在Makefile中 obj -m += XX.c ,千万千万不要去Kconfig里面添加,\
去Kconfig里面添加,会引起编译kernel时,需要restart config时,十分麻烦
/* A33/m86下 改产品ID等配置----start */
Z:\R847\android\device\softwinner\astar-m86\astar_m86.mk and \
Z:\R847\android\build\tools\buildinfo.sh改产品ID等配置
/* A33/m86下 改产品ID等配置----end */
/* A33/m86下 修改系统运行内存----start */
Z:\R847\android\device\softwinner\polaris-common\BoardConfigCommon.mk(以字节为单位2147483648/1024/1024=2048(字节)) and \
Z:\R847\lichee\tools\pack\chips\sun8iw5p1\configs\m86\sys_partition.fex (以扇区为单位,一个扇区512字节 4194304/1024/1024=4个扇区 4*512(字节)=2048(字节))\
在这两个文件中的system标签下设置系统运行内存的大小
/* A33/m86下 修改系统运行内存----end */
/* A33/m86下 u-boot ,kernel,android 的编译与清理命令----start */
available boards: A33/m86
/work/lichee/brandy/u-boot-2011.9$ make distclean && build.sh -p sun8iw5p1 (uboot的清理并编译)
/work/lichee/linux-3.4 $ make clean (kernel清理 防止.o,.ko没有在最新的修改上编译)
/work/lichee$ ./build.sh (kernel 编译)
/work/android $ make installclean && make -j8;pack -d (android 清理并编译打包 清理是为了修改全编前,\
先清掉旧out 目录下的文件,以及旧的.apk .so)
/* A33/m86下 u-boot ,kernel,android 的编译与清理命令----end */
/* A33/m86下 sysconfig.fex 的gpio选项的定义---------start */
; port configuration:
; port_name = port:GPIO<mux><pull up/down><driver level><default value>
; mux: GPIO function configuration, 0-input, 1-output, 2+: special funciton for modules
; pull up/down: 1-pull up, 2-pull down
; driver level: 0,1,2,3. 2 is recommended
; default value: default output value when this IO is configured as an output IO
/* A33/m86下 sysconfig.fex 的gpio选项的定义---------end */
/* A33/m86下 LCD调试需配置的相关路径 ---------end */
LCD
kernel
\\192.168.1.10\pangjw\lichee\tools\pack\chips\sun8iw5p1\configs\m86\sys_config.fex\(gpio,panel_para)
\\Z:\R847\lichee\tools\pack\chips\sun8iw5p1\configs\m86\bootlogo.bmp
\\192.168.1.10\pangjw\lichee\linux-3.4\drivers\video\sunxi\lcd\panels\m86.c(LCD_init)
\\192.168.1.10\pangjw\lichee\linux-3.4\drivers\video\sunxi\lcd\panels\panel.c
\\192.168.1.10\pangjw\lichee\linux-3.4\drivers\video\sunxi\lcd\Makefile
u-boot-2011
Z:\lichee\brandy\u-boot-2011.09\drivers\video_sunxi\sunxi_v2\de_bsp\lcd\panels\panel.c
Z:\lichee\brandy\u-boot-2011.09\drivers\video_sunxi\sunxi_v2\obj_video
Z:\lichee\brandy\u-boot-2011.09\drivers\video_sunxi\sunxi_v2\de_bsp\lcd\panels\R847.c
Z:\R847\android\device\softwinner\astar-m86\init.sun8i.rc //在modules下添加.ko,使开机自动加载LCD.ko
Z:\R847\android\device\softwinner\astar-m86\initlogo.rle //开机动画,LCD调试时可以不管
/* A33/m86下 LCD调试需配置的相关路径 ---------end */
/* A33/m86下 如果添加adb devices drive后,还连不上adb ---------start */
android adb 开关
Z:\R847\android\device\softwinner\astar-m86\astar-m86.mk
1
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mass_storage,adb \
2
#for gms
PRODUCT_PROPERTY_OVERRIDES += \
persist.service.adb.enable=1 \
3 串口中敲入
settings put global adb_enabled 1 或下面这个指令
setprop sys.usb.config mtp,adb
/* A33/m86下 如果添加adb devices drive后,还连不上adb ---------end */
/* A33/m86下 更新上层的apk ---------start */
下载好压软件,解压应用给的APK,得到包名和.so
Z:\R847\android\device\softwinner\polaris-common\prebuild\preinstallapk (apk的存放路径)
C:\Users\Administrator\Desktop 2\2019-04-19\daodan\lib\armeabi-v7a\1.so compareof Z:\R847\android\device\softwinner\polaris-common\prebuild\apklib\1.so
Z:\R847\android\device\softwinner\polaris-common\prebuild\tools\mypreinstall.sh (通过比对第三方APK包名得对应的apk名字)
先是把新的所有系统自带apk以及第三方apk,覆盖到prebuild\preinstallapk\下、如果是系统自带apk更新,则需把系统自带apk的so在该\prebuild\apklib\目录里覆盖,
把第三方apk对应得包名和.so添加到\tools\mypreinstall.sh脚本里
Z:\R847\android\device\softwinner\polaris-common\prebuild\apk\android.mk系统自带apk的.so需要在这里面有添加
Z:\R847\android\device\softwinner\polaris-common\prebuild\preinstallapk\android.mk系统自带和第三方apk都的有添加
Z:\R847\android\device\softwinner\polaris-common\polaris-common.mk 系统自带和第三方apk都的有添加(第三方的要带.apk后缀,系统的APK不需带后缀)
Z:\R847\android\device\softwinner\polaris-common\prebuild\apklib\android.mk系统自带apk的.so需要在这里面有添加
apk编了后,还要在Z:\R847\android\device\softwinner\polaris-common\prebuild\apklib下mm -B编译对应得so库,croot到android目录下,再make snod更新system.img(因为重新编了\prebuild\apklib\.so, .so编译后生成新的system.img),\
再get_uboot && make -j8 otapackage打包得到给客户的use版本
mm: 编译当前目录下的模块,它和mmm一样,不编译依赖模块;
make snod (次命令可以打包out/target/product/xxxx/system的内容并生成新的system.img文件)
find -name "*lib*"
进入cmd在此目录下输入aapt dump badging XX.apk查看包名
D:\sdk\sdk\build-tools\android-4.4W>aapt dump badging XX.apk
Z:\R847\android\out\target\product\astar-m86\system\preinstall apk安装后在此目录下会存在
/* A33/m86下 更新上层的apk ---------end */
/***********A33的学习笔记----------end ***************/
mtk
mtk android driver知识大全
https://www.cnblogs.com/biglucky/p/4413797.html
屏幕截图快捷方式 打开QQ ctrl + alt + A
MTK Android Driver :key https://www.cnblogs.com/cyqx/p/4870790.html
关于mtk GPIO口的定制 https://blog.csdn.net/mcgrady_tracy/article/details/40788873
MTK6573代码目录结构 https://www.cnblogs.com/lhwcoding/p/5102688.html
alps\vendor\mediatek\proprietary\bootable\bootloader\lk\platform\mt6739\mt_leds.c呼吸灯
alps\vendor\mediatek\proprietary\bootable\bootloader\lk\platform\mt6739\mtk_key.c按键
LCD
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/mt65xx_lcm_list.c
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/CPT_CLAA101FP01_DSI_VDO/CPT_CLAA101FP01_DSI_VDO.c
kernel-4.4/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
kernel-4.4/drivers/misc/mediatek/lcm/mt65xx_lcm_list.h
开机的时候第一个logo(linux启动) 和第二个logo(android启动那几个字)
Android:system\core\init 中的init.c 控制第二个logo
kernel:drivers\video\console fbcon.c 里面有两个控制光标的函数
KEY
alps\vendor\mediatek\proprietary\bootable\bootloader\preloader\platform\mt6739\src\drivers\keypad.c
MTK LCM驱动移植
https://blog.csdn.net/u010245383/article/details/50981877
详解MTK的编译过程
http://blog.sina.com.cn/s/blog_6b2328a20100nui0.html
boot用的哪个lcm和boot_logo.bmp
Y:\alps\vendor\mediatek\proprietary\bootable\bootloader\lk\project\k31v1_bsp_512.mk
MTK Android Driver:led https://blog.csdn.net/cbk861110/article/details/21287303
MTK 驱动(63)---MTK TP驱动移植 https://blog.csdn.net/zhangbijun1230/article/details/80781868
MTKLOGGER_SUPPORT
lichee/linux-3.4/sound/soc/sunxi/audiocodec/sun8iw5_sndcodec.c
/sys/class/timed_output/vibrator # echo 8000 > enable
/sys/class/timed_output/vibrator # echo 0> enable
get_camera_name
/sys/bus/platform/drivers/image_sensor/$cat get_camera_name
/sys/bus/platform/drivers/mtkfb/$cat get_lcm_name
LCM休眠唤醒闪白屏问题调试记录
https://blog.csdn.net/eliot_shao/article/details/57075101
MTK 驱动(59)---音频基础知识
https://blog.csdn.net/zhangbijun1230/article/details/80780670
Android手机显示的4G信号强度的格子数
https://blog.csdn.net/pan0755/article/details/78437249
MTK6735(Android6.0)-按键灯的实现
https://blog.csdn.net/xiaopangzi313/article/details/52335959
Android 8.0 基于MTK平台 客制化/增加一个物理按键
https://www.jianshu.com/p/d4988d632e82
MTK Android Camera运行流程
https://www.cnblogs.com/cyqx/p/4871033.html
常见camera问题的处理
https://blog.csdn.net/qq_33575901/article/details/80906969
MTK camera bring up
https://blog.csdn.net/liaokesen168/article/details/78908876
MTK camera AF bring up
https://blog.csdn.net/liaokesen168/article/details/78909099
MTK camera flashlight bring up
https://blog.csdn.net/liaokesen168/article/details/78909144
psensor-light sensor driver添加
http://blog.chinaunix.net/uid-29562546-id-4192221.html
MTK android audio
https://blog.csdn.net/zhufuronglovewenzhen/article/details/47136279
MTK Android Driver :Audio音频参数
https://www.cnblogs.com/cyqx/p/4870885.html
Android ALSA音频系统架构分析
https://blog.csdn.net/shell812/article/details/73467010
修改充电电流: kernel-4.4/arch/arm/boot/dts/mt6739.dtsi
- ac_charger_current = <700000>;
+ ac_charger_current = <500000>;
- non_std_ac_charger_current = <700000>;
+ non_std_ac_charger_current = <500000>;
userdebug版本或者user版本设置默认开启mtklog
device/mediatek/common/mtklog/mtklog-config-bsp-user.prop文件中对应字段值:
com.mediatek.log.mobile.enabled 设置成true
MTK平台编译userdebug版本开启串口log方法
Z:\kaios_31_temp\vendor\mediatek\proprietary\bootable\bootloader\lk\app\mt_boot\mt_boot.c
所有cmdline_append("printk.disable_uart=1"); //printk.disable_uart=0即可
开启MTK logger的命令
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start --ei cmd_target 1
关闭MTK logger的命令
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name stop --ei cmd_target 7
Android Low Memory Killer
https://www.cnblogs.com/angeldevil/archive/2013/05/21/3090872.html
make -j36 lk 2>&1 | tee lk.log
make -j36 bootimage 2>&1 | tee bootimage.log
Android系统源码学习-SIM卡
https://blog.csdn.net/YinYueRenZhangWenDa/article/details/50764494
MTK安卓sim卡相关源码分析
https://blog.csdn.net/qq_26990833/article/details/50039589
/** SIM card state: Locked: requires the user's SIM PIN to unlock */
public static final int SIM_STATE_PIN_REQUIRED = 2
MTK_MULTI_SIM_SUPPORT = dsds 双卡 ss单卡
临时解决30w不能拍照问题
b/vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6739/core/camshot/SingleShot/SingleShot.cpp
- property_get( "debug.sshot.sharememory", strValue, "1");
+ property_get( "debug.sshot.sharememory", strValue, "0");
先在windows,环境变量里path下添加 D:\sdk\build-tools\android-4.4;
进入cmd在此目录下输入aapt dump badging XX.apk查看包名
D:\sdk\build-tools\android-4.4>aapt dump badging XX.apk
dts入门
https://blog.csdn.net/u014717231/article/details/53139968
Android手机指纹驱动工作原理
https://blog.csdn.net/zoosenpin/article/details/73275554
git log vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/gc9306_dbi_3wire_3102/ //查看提交记录
git checkout ce250ebe681a428b1f754c7ff058809aceac6c1c(主管review id) vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/gc9306_dbi_3wire_3102/ //把这个提交回退
./3102A_512x256_240x320_nand_YF_M2431_A2_EU.sh zipimage
NTC关闭
MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION = yes
upmu_set_isink_ch0_en(0x1);// Turn on ISINK Channel 0
Q:\kaios_72_normal\kernel-3.4\drivers\misc\mediatek\leds\mt6572\led.c
#if defined (CONFIG_FISE_PROJECT_U7210) //pangjw 20190702
#if defined VERSION_01
OutputDebugString(_T("已定义--版本01\n"));
#elif defined VERSION_02
OutputDebugString(_T("已定义--版本02\n"));
#elif (!defined VERSION_03) || (!defined VERSION_04)
OutputDebugString(_T("未定义--版本03和版本04\n"));
#elif !defined VERSION_05
OutputDebugString(_T("未定义--版本05\n"));
#endif
GPIO_PIN led_en_pin=GPIO128;
mt_set_gpio_mode(led_en_pin, GPIO_MODE_00);
mt_set_gpio_dir(led_en_pin, GPIO_DIR_OUT);
mt_set_gpio_out(led_en_pin,GPIO_OUT_ZERO);
led充电指示灯调试
https://blog.csdn.net/u012728256/article/details/70231838
通过iadb shell进入cd /sys/class/leds/red
brightness
delay_off
delay_on
device
max_brightness
notify_led
power
subsystem
trigger
uevent
对以下节点进行操作控制led灯闪烁
echo 1 > notify_led 这时就会闪烁led
echo 0 > notify_led 停止闪烁
控制闪烁延迟亮灭时间
delay_off
delay_on