1.解压
tar -xjvf sox-14.4.2.tar.bz2
先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包
2.压缩
tar -cjf all.tar.bz2 *.jpg
tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar
3.subcore log生成地址
subcore/build/tcc8050-sub/tmp/log
4.三方工具是在source_mirror 目录
checksum是在.bb文件下 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb
5.加入编译项
meta-telechips/meta-subcore/template/tcc805x/local.conf.sample 修改该文件,local.conf 就会有install选项
./meta-telechips/meta-subcore/template/tcc803x/local.conf.sample
6.kernel dts status = "disabled";
status:okay表示设备正常运行;disabled设备不可操作,但是后面可能恢复工做;fail发生了严重错误;fail-sss发生了严重错误,sss表示错误信息
7. 查看当前系统的声卡
cat /proc/asound/cards
/proc/asound/Card # cat pcm0p/sub0/status 可以查看每个音轨的状态
8.数字音量增益 Gains.cpp
DbToAmpl():db转换成振幅
stream Volume流音量
整个流程即是数字音量增益调节的流程,纯数字实现,与底层音频codec无关
DbToAmpl 的值最终设置到
AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTracks_l(){
mAudioMixer->setParameter(name, param, AudioMixer::VOLUME1, (void *)vr);
}
VolumeCurve::volIndexToDb
-->
audioMixer章节里面,
我们介绍过在audioMixer的实际操作函数是track__16BitsStereo这种函数,
对track__16BitsStereo的分析中,我们可以看到根据音量对PCM data进行实际的缩放
不再继续赘述了。
9.killall AVM
10.git push origin HEAD:refs/for/FX12_TDM
git push origin HEAD:refs/for/FX12_HiCar_Cert
11.编译仪表中间件
make distclean
source ../../toolchain/environment-setup-aarch64-telechips-linux
sh -x ./build.sh 2
12.subcore 缺少libff.so
libffi.so.7()(64bit)加到如下配置
RPROVIDES_${PN} +="libglib-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libffi.so.7()(64bit)
13. mid_ware 打log
char sinfo[128];
sprintf(sinfo, "--wucai option=%d, level=%d \n", option, level);
printf(sinfo);
MID_WARE_ERR(AUDIO_RESOLUTION, sinfo);
日志在/tmp/mi**.log
14. 关掉腾讯语音识别
adb shell am force-stop com.tencent.supercar
15. gcc test.c -lm -o test
16.carlife 设备节点 iphone
/dev/bus/usb/006/001
echo 0 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
echo 1 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
cat /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
17.循环播放
for i in `seq 3`;do aplay 05_Safety_Belt_W_1HZ.wav;done
18. usb native_bulk_request
./base/core/jni/android_hardware_UsbDeviceConnection.cpp
echo 1 > /sys/module/usbcore/parameters/usbfs_snoop 开启日志
echo 0 > /sys/module/usbcore/parameters/usbfs_snoop
echo test_j > testmode
echo test_k > testmode
echo test_se0_nak > testmode
echo test_packet > testmode
echo test_force_enable > testmode
echo 0 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
echo test_packet > /sys/kernel/debug/usb/ehci/ehci-mux.0/testmode
USB20H_PCFG1 = 0xE31C2433
cat dwc_host_mux_pcfg1 <
U20DH_HST_PCFG1 = 0xE31C2432
/sys/devices/platform/11980000.dwc_otg
echo 0xE31C2433 > dwc_host_mux_pcfg1
19.线下设置
am start -n com.igentai.autoengineeringmode/.ui.MainActivity
把外置功放设置成关
再回到系统设置
input keyevent 4
20. ps -ef
ps -T -p <process_id>
查看指定进程中已经起的线程
-T 查看线程
-p 指定进程ID
示例:ps -T -p 85371
######## kernel log level
echo 8 > /proc/sys/kernel/printk
echo "file drivers/usb/core/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/gadget/function/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/gadget/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/dwc2/*.c +p" > /sys/kernel/debug/dynamic_debug/control
########
把IGN线给断开,就是D2
把ACC和IGN线断开,就是D3
#######
李远芳 11-9 14:06:26
01是麦克风
李远芳 11-9 14:06:35
345是参考信号
李远芳 11-9 14:07:17
播放媒体和报警通道参考通道 34 有信号,播放导航是345都有信号
fm_fm1388
#######
/sys/class/gpio/export
echo 214 > /sys/class/gpio/export
cd gpio214
echo out > direction
echo 0 > value
####### 解析xlog
sudo apt-get install python-pip
pip install zstandard
####### 将dma interrupt换到其它cpu
echo 2 > /proc/irq/134/smp_affinity
#######
adb logcat -v threadtime > D:\logcat.txt
################
if [ $? -ne 0 ]
then
echo "---------make kernel error!---------"
exit 1
fi
cd ..
rm -rf $ANDROID_PRODUCT_OUT/system
make -j32
if [ $? -ne 0 ]
then
echo "---------make system error!---------"
exit 1
fi
######有线 dhcp超时
D nearby : UsbNcmChannel:NcmLoadedState-CMD_DHCP_TIMEOUT
####投屏成功
[HiCarApp] HiCarBaseActivity$1: (HiCarBaseActivity.java:88) onDeviceServiceChange onDeviceChange display1 event:207
#####代码路径
frameworks/opt/net/wifi/service/java/com/android/server/wifi
#####蓝牙状态
CallbackDoCallbackBluetooth 300=off 301=turn_on 302=on 303=turn_off
logcat -G 256M
logcat -v threadtime > /data/logcat.txt&
setprop persist.vendor.hicarsdk.debug 1 //打开hicar调试日志
#########
pm list package
adb shell dumpsys package XXX 查看某个包的具体信息(前提是需要知道包名是什么) appActivity
##########
ip route show
###### cpu id
cat /sys/devices/platform/14200290.cpu-id/chip_id
####### monkey 压测
monkey --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes -s 10 --throttle 500 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 20 --pct-syskeys 0 --pct-appswitch 0 --pct-anyevent 5 --ignore-crashes -v -v -v 2000000
adb shell monkey -p com.semisky.autolauncher -p com.igentai.autoairconditioner -p com.igentai.autoengineeringmode -p com.cowin.autoenergy -p com.igentai.autonewenergy -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
adb shell monkey -p com.android.launcher3 -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
adb shell monkey -p com.semisky.autolauncher -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
####### 循环点击某位置
for i in `seq 100`;do input tap 1086 344;sleep 3s;done
for i in `seq 100`;do sleep 2s;ifconfig wlan0 down;sleep 2s;ifconfig wlan0 up;done
for i in `seq 1000`;do input tap 295 235;sleep 0.3s;done
for i in `seq 5000`;do input tap 1101 245;sleep 5s;done
for i in `seq 100`;do echo 0 > pwrtest;sleep 3s;echo 1 > pwrtest;done
for i in `seq 1000`;do echo $i;input tap 15 1051;sleep 3s;input tap 1503 547;sleep 5s;done
for i in `seq 1000`;do echo $i;input tap 15 1051;sleep 3s;input tap 1503 547;sleep 6s;input tap 1045 1035;sleep 3s;done
for i in `seq 100`;do date;sleep 2s;done
for i in `seq 100`;do logcat -g;done
i=1;
while [ $(($i)) -le 10 ];
do i=$(($i + 1));
echo $i;
echo 0 > pwrtest;
sleep 5;
echo 1 > pwrtest;
done;
i=15;
while [ $(($i)) -le 255 ];
do i=$(($i + 1));
echo $i > brightness;
sleep 0.2;
done;
i=0;
while [ $(($i)) -le 1000 ];
do i=$(($i + 1));
rm -rf /mnt/media_rw/udisk0/tmp;
mkdir /mnt/media_rw/udisk0/tmp;
cp -r /system/app/kwplay.apk /mnt/media_rw/udisk0/tmp;
echo "~~$i" > /mnt/media_rw/udisk0/tmp/test.txt;
cat /mnt/media_rw/udisk0/tmp/test.txt;
sleep 0.1;
done;
i=0;
while [ $(($i)) -le 100 ];
do i=$(($i + 1));
rmmod himax_mmi;
insmod /system/lib/modules/himax_mmi.ko
sleep 3;
done;
i=0;
while [ $(($i)) -le 100 ];
do i=$(($i + 1));
input tap 324 196;
echo "$i exit hicar"
sleep 2;
input tap 234 227;
echo "$i enter hicar"
sleep 5;
done;
cat /proc/net/rtl8821cs/wlan0/btcoex >> /data/bwcotex.log;
while true; do
echo ">>>>>>>>>>>>>>>>>>>>>"
filename=`date +"%Y-%m-%d-%H-%M-%S"`;
echo $filename;
logcat -G 1M;
logcat -D -f $filename.log
logcat -c;
date +"%Y-%m-%d-%H-%M-%S";
echo "<<<<<<<<<<<<<<<<<<<<<"
done;
###########发送文本内容,不能发送中文
adb shell input text test123456
while true; do
echo "--"
logcat -c;
sleep 1s;
done;
i=1;
while [ $(($i)) -le 1000000 ];
do j=$(($i * 3));
echo $j;
i=$i+1;
echo 0 >> /sdcard/pwrtest;
cat /sys/class/thermal/thermal_zone0/temp
done;
#######发送文本内容,不能发送中文
adb shell input keyevent KEYCODE_HOME
########发送按键事件,KeyEvent.java
--模拟按下 Home 键 ,源码里面有定义:
--public static final int KEYCODE_HOME = 3;
######## 滑动
adb shell input swipe 900 500 100 500
######## am start com.android.settings/.Settings
am start -n com.android.settings/com.android.settings.SubSettings -e :android:show_fragment com.android.settings.DevelopmentSettings
######## 禅道问题 id 44559
fsck.exfat block住了,出问题时,check ok和check failed都没打印出来
status_t Check(const std::string& source) {
std::vector<std::string> cmd;
cmd.push_back(kFsckPath);
cmd.push_back(source);
int rc = ForkExecvp(cmd, nullptr, sFsckUntrustedContext);
if (rc == 0) {
LOG(INFO) << "Check OK";
return 0;
} else {
LOG(ERROR) << "Check failed (code " << rc << ")";
errno = EIO;
return -1;
}
}
fsck.exfat的代码目录
external/exfatprogs/fsck
device/telechips/common/ufsd/arm64/utils/v4_14 只有ntfs相关
######## hicar pin码问题
12月31的版本,蓝牙服务没有间隔13s,应该会有时拿到mac,有时拿不到
1月4日 0563的版本 蓝牙服务没有间隔13s,应该会有时拿到mac,有时拿不到,第一次拿到了mac地址,但是也需要输入pin码,可能是蓝牙没有配对造成的
0564 拿到mac也是正常的
######## 打印log
logcat -v threadtime > /data/`date +"%Y-%m-%d-%H-%M-%S-%3N"`.log & \r\n
####### 设置时间
date 021118052023.22 set
#######对比两个分支某文件的差异
git diff Android_h12_v21p_f_240x320_T5 Android_h12_v21p_f_240x320_T5_new device/
#####flash 读写速度
dd if=/storage/emulated/0/ddDog/testspeed of=/dev/null bs=209715200 //read
dd if=/dev/zero of=/storage/emulated/0/ddDog/testspeed bs=209715200 count=1 //write
busybox dd if=/data/testspeed of=/dev/null bs=209715200
busybox dd if=/dev/zero of=/data/testspeed bs=209715200 count=1
#####autolinux -c configure 3 5 6 7
###### autosetting 编译不过
C:\Program Files\Java\jdk1.8.0_311
######
am force-stop com.huawei.dmsdpdevice
####### hicar 华为社区
https://uniportal.huawei.com/uniportal/?redirect=https://workplace.cbgcpm.huawei.com/#/group/smart-selection/Issue_Collaboration_Issue_Details?problemNo=CPM20221206023757
账号 fumeitao.jintu.hicar 密码 1234.semisky
################
U38
IP:192.168.1.38
平台:i.max6 android4.4.2
Linux账号及samba账号统一为:
用户:shanaibing
密码:1234.igentai
################ notepd 与的搜索方式
AA 55 .* 02 01 .*|AA 55 .* 08 01 .*
########## nxp官网
https://www.nxp.com
zhanghui@igentai.com
1234@SEMISKY
####### hh11
1.方控键vol- mode 语音同时按
2.上电
3.串口输入download_mode
4.烧录工具 把编译生成的img放到工具所在目录 Profiles\MX6DL Linux Update\OS Firmware\files\android
5.start
####### gpio debug
CONFIG_GPIO_SYSFS=y 打开这个宏可以看到/sys/class/gpio/
CONFIG_DEBUG_FS=y sys/kernel/debug/gpio gpio_request 的申请可以看到
####### 串口写数据
echo -e "AT+BTEN=1\r\n" > /dev/bw_serial
######## hh11 切换adb
echo 1 > /proc/driver/usbroleswitch/0/mode
setprop sys.usb.config adb
######## H11 飞易通 bw121eb
1脚是2.4wifi
position 2 是2.4G BT + 5G wifi
----------------
| O position 2 |
| |
| o 1脚 |
| |
| |
| |
----------------
######### PADS
z6 7 看第6层和第7层
po 去掉或者铺上地线
工具->覆铜管理器->灌注 铺上铜皮
######## uart dce mode dte mode
IMX6ULL UART DCE模式,主要TX用于发送,RX用于接收
IMX6ULL UART DCE模式,主要TX用于接收,RX用于发送
####### 120 服务器
xieyonghui
1234.semisky
#######
192.168.1.102
账号 zhoupeng 密码 a123456
frameworks/base/core/carlife_proto_2.6
#######
./camera_app_960 --videoinput=6 --preview_method=0 --foreground_ovp=16 --background_ovp=28 --switch=0 --recovery=0 --preview_width=1280 --preview_height=720
###### A53 uboot 抓日志的ram地址
ctrl + y 进uboot
grep __log_buf work/tcc8050_sub-telechips-linux/linux-telechips/4.14.232-r0/linux-telechips-4.14.232/System.map
7F C800 0000 // 差值
md 0x40c74750 ffffff8008c74750
ffffff8008b4c750 md 0x40b4c750
ffffff8008c4d750 b __log_buf md 0x40c4d750
A53的起始地址是40000000
######## A72 uboot 抓日志的ram地址
7F E800 0000 // 差值 ffffff8009521c74 b __log_buf
md 0x21521c74
A72 kernel起始地址是2000000
###### 飞易通 bw105 编译
make clean && make CLANG_TRIPLE=aarch64-linux-gnu- CC=/home/shanaibing/work/tdm/Telechips_TCC8050_v3.0/maincore/prebuilts/clang/host/linux-x86/clang-r353983c/bin/clang -j16 2>&1 |tee build.log
###### tcc8050 gpio 值
tcc8050_53-pinctrl.dtsi
gpio0 = &gpa;
gpio32 = &gpb;
gpio61 = &gpc;
gpio91 = &gpe;
gpio111 = &gpg;
gpio122 = &gph;
gpio134 = &gpk;
gpio153 = &gpma;
gpio183 = &gpmb;
gpio215 = &gpmc;
gpio245 = &gpmd;
gpio263 = &gpsd0;
gpio278 = &gpsd1;
gpio289 = &gpsd2;
####### lspci 命令 设备为空
&pcie {
wl_en-gpio = <&gpmd 10 0>;
ep_pwr-gpio = <&gpmd 11 0>;
reset-gpio = <&gpa 11 0>; //查看reset是否配置正确
//status = "okay";
status = "okay";
};
######## mount a53
mount -o rw,remount /
free -h -s 1 一秒打印一次
####### A53 mount
mount /dev/mmcblk0p11 /mnt
###a72 mount
mount -o remount,rw /system
##### 每10s打印一次
free -m -s 10
#######
killall -9 DMS
######## show 某进程的线程 资源占用情况
top -H -p 478
########
i2cdetect -l
i2cdetect -y -r 6
i2ctransfer -f -y 2 w2@0x47 0x00 0x00 r32
i2cdump -f -y 2 0x47
########cat /proc/clocks
####### open /dev/videox 的调用流程
dump_backtrace+0x0/0x1a0
show_stack+0x14/0x20
dump_stack+0xa0/0xc0
tccvin_fop_open+0x2c/0xc8
v4l2_open+0xe4/0x178
chrdev_open+0xa4/0x198
do_dentry_open.isra.0+0x118/0x328
vfs_open+0x44/0x78
path_openat+0x350/0x10d8
do_filp_open+0x78/0xf8
do_sys_open+0x168/0x260
SyS_openat+0x10/0x18
el0_svc_naked+0x34/0x38
##### chatgpt
https://chat.wuguokai.cn/s/chatgpt#/chat/1688526792152
##### 工厂模式密码
4S店:Cowin--2022
工厂:Intreteck--2022
开发:Igentai.123RD
########
执行dlsym()函数出现: undefined symbol
当这个问题出现的时候,可以检查产生so文件的cpp文件,看看是否已经用 extern C{ /* code here */} 把C++的函数包裹起来。
######## nm -Do system/lib/libdabplug.so 查看符号表
####### fx11 升级
这个里面包含了img 烧录包和U盘升级包,解压后得到update.zip升级包
U盘升级操作步骤:
1. 在u盘根目录下创建一个update目录,把升级包update.zip放入
2. 然后创建一个update_note.txt文件,里面设置android版本(ANDROID_VERSION=00.01.33),只要和设备上的版本不同就可以
3. 把u盘插入到设备,会弹出升级提示,点击升级
####### system/init/core/ 下的代码log打印在kernellog中,打印之前要设置log level
klog_set_level(6);
am start -n com.sw.radioclient/.MainActivity
tinycap /sdcard/dab.wav -D 4 -d 0 -c 2 -r 48000
###### alogv 打印log
#undef LOG_TAG
#define LOG_TAG "AutoServiceNative"
#define LOG_NDEBUG 0
###### kernel 比较 过滤生成的文件
*.o
*.cmd
*.old
image
uimage
zimage
*.lzo
*.s
*.builtin
*.gz
####### dmesg 打印时间
dmesg -T 如果不打印时间,有两种方法可以实现
1.echo Y >/sys/module/printk/parameters/time
2.CONFIG_PRINTK_TIME=y
###### addr2line
./prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-addr2line -f -e kernel_imx/vmlinux c0040028
###### bootchart
tar -czf bootchart.tgz *
scp bootchart.tgz zhangbaixiang@192.168.1.60:/home/zhangbaixiang/projects/tmp/
########## bootanim 结束的流程 property_set("service.bootanim.exit", "1");
Launcher启动,注册一个Idler空闲处理器到ActivityThread中;
Launcher主线程空闲的时候就会调用Idler。queueIdle()方法;
Idler.queueIdle() 通过Binder通信调用了ActivityManagerService.activityIdle()方法
调用ActivityStackSupervisor.activityIdleInternalLocked()方法;
调用ActivityManagerService.enableScreenAfterBoot()方法;
调用WindowManagerService.enableScreenAfterBoot()方法;
调用WindowManagerService.performEnableScreen()方法;
performEnableScreen 通过Binder通信发送 BOOT_FINISHED 消息给 ISurfaceComposer
调用ISurfaceComposer 收到 BOOT_FINISHED 消息后调用SurfaceFlinger::bootFinished 函数设置动画结束标志。
am start -n com.semisky.test/.MainActivity
am start -n com.autoai.m01cbu.dab/com.autoai.m01cbu.dab.DABActivity
logcat -v time |busybox tee /sdcard/nopull.log |grep -Ei "perip|SPI|DABAPP"
#######查看cpu负载
cat /proc/loadavg
5.19 5.14 4.51 1/462 1547
前三个数分别是 1分钟、5分钟、15分钟的平均进程数。第四个的分子是正在运行的进程数,分母是进程总数;最后一个是最近运行的进程ID号。
busybox uptime
命令查看平均负载
08:24:29 //当前时间
up 19:34 //运行时间
0 users //当前的用户数量
load average: 6.00, 6.00, 6.00 //分别是 1分钟、5分钟、15分钟的平均进程数
17:45:38 up 1:46, 0 users, load average: 5.15, 5.12, 4.55
####### 打开触摸报点
adb shell settings put system show_touches 1 触摸
adb shell settings put system pointer_location 1 xy轴
####### 模拟导航工具
1、手机端打开开发者模式-》打开USB调试-》手机与电脑通过数据线连接上选择传输文件
2、adb install D:\Desktop\模拟导航工具\NaviTracker-8.0.apk 下载apk到手机
3、adb push "D:\Desktop\模拟导航工具\NaviTracker" "/storage/emulated/0/NaviTracker" push txt文件到手机目录
4、push完成后关掉手机usb调试开关
#########
FX11系统
系统版本——》系统软件版本号——》连续点击5次——》输入密码
输入密码
1. 1234.cowin —— 原生系统设置
2. dev.cowin —— 开发者选项设置
3. tool.cowin —— 日志工具 这个给他们改成1111
4. usb.cowin —— USB模式切换
5. test.cowin —— 工厂测试工具
5. auto.cowin —— 工厂自动化测试工具
######## AT+PROFILE=1160
AT+PROFILE=1184 //关闭HFP
AT+PROFILE=1160 //关闭A2DP
AT+PROFILE=1132 //AVRCP
AT+HFPCONN
AT+A2DPCONN
echo -e "AT+PROFILE=1160\r\n" > /dev/bw_serial
echo -e "AT+A2DPCONN\r\n" > /dev/bw_serial
DC0D30328FFB
######### carlife 手机日志 的关键字
MSG_CMD_HU_INFO
MSG_CMD_VIDEO_ENCODER_INIT_DONE 连接成功
send video data 投屏
CarlifeActivity DISCONNECT 断开
label: 用户单次联机使用时长
duration: 81429 ms
######### notepad 替换
^.*time= time=字符之前的全部替换
########### hh11电源模式
1 工作状态
2 10分钟
3 待机
4 休眠
########### 虚拟机重启
AndroidRuntime: Shutting down VM
######### 发送mode、vr按键消息
dumpsys KeyService mode
dumpsys KeyService vr
######## 蓝牙电话没声音
other input already started
######## vpu 打印日志
echo 10497 > /sys/module/vpu/parameters/debug_mask 日志级别
echo 1 > /sys/module/vpu/parameters/use_prtk 日志打开/关闭
####### patch -p0 < omx.patch
########isMonotonic
CLOCK_MONOTONIC是monotonic time,而CLOCK_REALTIME是wall time。
monotonic time字面意思是单调时间,实际上它指的是系统启动以后流逝的时间,这是由变量jiffies来记录的。系统每次启动时jiffies初始化为0,每来一个timer interrupt,jiffies加1,也就是说它代表系统启动后流逝的tick数。jiffies一定是单调递增的,因为时间不够逆嘛!
wall time字面意思是挂钟时间,实际上就是指的是现实的时间,这是由变量xtime来记录的。系统每次启动时将CMOS上的RTC时间读入xtime,这个值是"自1970-01-01起经历的秒数、本秒中经历的纳秒数",每来一个timer interrupt,也需要去更新xtime。
######## echo c > /proc/sysrq-trigger 手动panic
######## fx12 fastboot flash 方法
1.断电;(必须是断电开机,否则识别不到usb)
2.开机;
3.reboot bootloader
4.插usb线
5.fastboot devices看下是否有设备
6.fastboot flash boot ??\boot.img && fastboot flash dtb ??\dtb.img && fastboot flash dtbo ??\dtbo.img && fastboot flash vbmeta ??\vbmeta.img
####### last_kmsg
/sys/fs/pstore
##### drm & fb
a72 用drm,drm更复杂
a53 用fb
两个互斥
###### uuid
cat /resources/produceMode.json
UUID:7913012P23000086
序列号:QGYZV5SPVTM5FR7EW9QHJJDA
激活码:YR9X5QN6WRVE3MHSSG2D5WSW
####### 隐藏pki证书下载失败的悬浮框
adb uninstall --user 0 com.cowin.messagecenter
####### 日志上传
https://uat-inc-center.kayyi.com/app-tsp/log/fx12PhevLog
test
123456Ab*
###### uboot 下列出分区名
mmc part
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000022 0x00001021 "bl3_ca72_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: c200bac1-c64a-0649-aa2d-c45db1c63ed1
2 0x00001022 0x00002021 "bl3_ca72_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 80826341-8b26-4843-8ef5-40fa6b589fa5
3 0x00002022 0x00003021 "bl3_ca53_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: c7973fe0-3833-3d41-9e6f-8401aaa4940c
4 0x00003022 0x00004021 "bl3_ca53_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: e3b6ecb0-1181-0144-9f77-bd7627e0da4f
5 0x00004022 0x00013021 "secure"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: e2ec4597-6914-144d-b29b-f5c4fef9c328
6 0x00013022 0x00025021 "boot_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 20cb5e8c-287a-8742-b42a-1c30a690d1bc
7 0x00025022 0x00037021 "boot_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 1e055df3-79e6-f043-b8f4-fb6fc91eeb91
8 0x00037022 0x0123b021 "super"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 65fb95b2-d875-894a-a9c1-403710088bae
9 0x0123b022 0x0123f021 "dtbo_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 4bb937ce-9dfb-ef48-beea-377d4c77b345
10 0x0123f022 0x01243021 "dtbo_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 1d150900-9789-ce4c-a5f0-af30097ea27e
11 0x01243022 0x0128e021 "cache"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: ae3a0d28-19fa-934c-bb76-61a2890c3d60
12 0x0128e022 0x0128f021 "dtb_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: d438ae39-3b61-8542-b4fd-e3d634f4a228
13 0x0128f022 0x01290021 "dtb_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 1db4f0c3-df25-9043-8cc4-2fb0ecbc24a8
14 0x01290022 0x01290821 "env"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 68868384-b811-a840-9271-3d86b6486785
15 0x01290822 0x01293021 "splash"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: a0f5ed9f-b0e0-9642-9e2e-47caaa0a8a4d
16 0x01293022 0x01293821 "misc"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: c6c170ef-d4cd-4f4d-97b7-d9c2e242f89b
17 0x01293822 0x01294021 "subcore_misc"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: efd10b93-290a-e844-941d-081fa75d28f8
18 0x01294022 0x01294821 "tcc"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 7719b843-162b-e74b-8128-cf819193ed48
19 0x01294822 0x01298821 "sest"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: d42968a7-2e16-2d4b-a78b-a276bffd22d1
20 0x01298822 0x012ac821 "subcore_boot_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 5045d773-ab07-0348-a0c1-9965b89e8370
21 0x012ac822 0x012c0821 "subcore_boot_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 1de6dda6-faee-b546-b330-19d784a13af4
22 0x012c0822 0x014b4821 "subcore_root_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: d7a06778-f9b3-6747-b50c-f5df6563dd13
23 0x014b4822 0x016a8821 "subcore_root_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: d5f7a61e-aab6-e54b-bf29-d20976e4c3f0
24 0x016a8822 0x016a9021 "subcore_dtb_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: f0c8bcd7-c9c6-1b42-9285-71ac8929ef40
25 0x016a9022 0x016a9821 "subcore_dtb_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 73614c94-79cf-364d-9d0d-ad595615a408
26 0x016a9822 0x016aa021 "vbmeta_a"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 0a6f2d14-2528-9e40-8cee-f99cc276b626
27 0x016aa022 0x016aa821 "vbmeta_b"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: f44c535e-56a5-e446-96ab-2aa2e0f1ac19
28 0x016aa822 0x016ae821 "tamper_evidence"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 0c0bba5a-c3c1-7346-ac0c-2a764bf396e6
29 0x016ae822 0x016b6821 "metadata"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 14dcd2af-c3f5-104c-a86e-400c8df0dfd4
30 0x016b6822 0x016b7021 "subcore_env"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: f8213fab-9355-8e4f-8449-0625bc97fc03
31 0x016b7022 0x016cb021 "subcore_splash"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 1f9f834d-a2a6-e34f-b51d-ae4d6000bc8c
32 0x016cb022 0x01ecb021 "resources"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 36cd81a6-61c0-2b4c-9e42-188b5f7e38d5
33 0x01ecb022 0x01f61021 "a53_resources"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 058e4881-939f-e94a-923c-c576c05ac3de
34 0x01f61022 0x02561021 "logdata"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 98a90bb2-61d9-084a-87d1-fc4f7318070a
35 0x02561022 0x026bf021 "a53_logdata"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 906ec4bc-61de-d84a-8217-d63d74280adf
36 0x026bf022 0x07733fde "userdata"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
guid: 25bfeba8-bd17-6646-a9f8-230a54c9ee26
######## dtb 反编译为dts
kernel/scripts/dtc$ ./dtc -I dtb -O dts ../../../kernel/arch/arm64/boot/dts/tcc/tcc8050-android-lpd4x322_sv1.0.dtb -o 1.dts
######## cat /proc/pmap 查看pmap reserve
######## cat /proc/iomem 查看所有内存的分配区域
########CMA是什么
CMA 全称是 Contiguous Memory Allocator(连续内存分配器)。顾名思义它是一种内存分配器,提供了分配、释放物理连续内存的功能。
CMA通过reserve一块大块连续内存,当设备驱动不用时,内存管理系统将该区域用于分配和管理可移动类型页面;当设备驱动使用时,此时已经分配的页面需要进行迁移,又用于连续内存分配;
######## 统计pss
grep Pss /proc/[1-9]*/smaps | awk '{total+=$2}; END {print total}'
pss 是把共享的内存按权重分配到各进程所占用的内存
rss 是单个进程跑起来实际用的内存,包括共享库占用的内存
所以rss 要大于pss
######## pidof
1|console:/ # pidof com.igentai.usercenter
4677
######## 抓 bugreport
adb方式 adb bugreport
console方式 bugreportz -p
######## bugreport 解析
java -jar chkbugreport.jar bugreport-h-MPU.02.01.08-2024-01-09-03-55-18.txt
########## meminfo 解释
Meminfo里面列出来很多项,只需要关注如下几条:
MemTotal: 总内存大小
MemFree: 可以直接使用的空闲的内存大小
MemAvailable: 可以使用的内存,包括MemFree和Cached/Buffers/Slab中可以回收的部分。
Buffers: 直接读写的块设备和文件系统元数据(如super block)所使用的内存。
Cached: 从磁盘读取的文件内容的缓存大小,另外也包含了Shmem内存页
Active(anon):匿名页内存,主要是用户模式下的堆、栈,以及shmem,最近访问过
Inactive(anon):匿名页内存,主要是用户模式下的堆、栈,以及shmem,最近没有访问过
Active(file):基于文件的内存页,包含cache和buffer,但是不包含Shmem内存页,最近访问过
Inactive(file): 基于文件的内存页,包含cache和buffer,但是不包含Shmem内存页,最近没有访问过
AnonPages:匿名页内存,但是不包括Shmem 。所以AnonPages大约等于Active(anon) + Inactive(anon) - Shmem
Mapped: 设备和文件等映射的大小,共享内存、可执行程序的文件、动态库、mmap的文件等都统计在这里
Slab: slab 分配器分配的内存,主要是内核中使用
SReclaimable:slab中可回收的内存。
SUnreclaim:slab中不可回收的内存。
如果机器在运行的过程中MemAvailable持续减小,就可以怀疑系统中存在内存泄漏。但是并不是MemAvailable减小就一定存在内存泄漏,还要进一步分析减少的内存被什么占用了。如果Active(anon)+Inactive(anon)所占用的内存增加,说明用户进程占用的内存增加。如果SUnreclaim所占用的内存增加,说明kernel占用的内存增加。知道了减少的内存是被用户进程还是kernel占用之后,要分析是哪个用户进程或内核哪部分占用了内存。
########## 编译userdebug版本
choosevariant 1 user 2 userdebug 3 eng
######### gpu 占用率
cat /sys/kernel/debug/pvr/status
######### gpu debug
cat /sys/kernel/debug/pvr/debug_dump
cat /sys/kernel/debug/pvr/firmware_trace
######### 释放缓存
echo 1 > /proc/sys/vm/drop_caches
######### 内存压力测试
./QMESA_64st -startSize 8MB –endSize 8MB -totalSize 16MB -errorCheck T -secs 300 -numThreads 4 -M 512M -W >&1 > /data/local/tmp/qmlog1.txt
./stressapptest -M 512m -s 60 -W
#######ddms
C:\Users\shanaibing\AppData\Local\Android\Sdk\tools
####### adb remount
$ adb root
$ adb disable-verity
$ adb reboot
$ adb wait-for-device
$ adb root
$ adb remount
####### dram 修改方法
修改后,执行下面脚本,生成新的bin文件
speed=3200 #主频改成1600
dram_param.py
生成目录 maincore/bootable/bootloader/u-boot/boot-firmware/prebuilt/dram_params.bin
####### hprof
"am dumpheap 1123 /data/local/tmp/myleakcanaryheapdump.hprof