###将服务器文件复制到本地
scp -r xxxx.xxx@192.168.133.66:/homeI4/zhaobin.chen/GKM_Android9.0/out/target/product/GK6323V100C/Emmc /home/umlinux/Desktop
###恢复出厂的广播
am broadcast -a android.intent.action.MASTER_CLEAR
###抓取日志
logcat > /data/logcat.log
###日志过滤多个关键词
logcat -c;logcat -v time | grep -iE "ZB|FactoryMode:FactoryMainActivity"
###将日志复制到本地
###adb pull scr.route des.route
###执行menuconfig时,出现错误:Error opening terminal: xterm-256color.
执行命令:export TERM=xterm
###给系统读取权限
echo 1 > /sys/class/remount/need_remount //Amlogic
mount -o remount,rw /system //GKM获得system读写权限
###mount: ‘/system‘ not in /proc/mounts;remount不成功,system无写权限(原因:system权限为ro)
重启ctrl+c进入uboot;printenv bootargs查看权限;setenv bootargs 属性值(改ro为rw,复制到rootwait(含rootwait)即可);saveenv即可;reset重启内核
可先输入cat proc/cmdline查看参数信息
###系统降版本升级
busybox vi /system/build.prop,将软件版本改为xxx.xxx.001
###查看U盘路径: df -h
###将APK推到盒子system/app路径下:
pm install -d -r /U盘文件路径 /system/app
###拷机机器开机时间
cat /proc/uptime
###写入量
cat /proc/diskstats | grep -w mmcblk0 | busybox awk '{sum=$10/2048};END {print "Write= " sum " MB"}'
###老化合格时间
setprop persist.umfactory.compare_with_maxAT 0
###adb connect 显示cannot connect to 192.168.1.101:5555: 由于目标计算机积极拒绝,无法连接。
板子未开启adb功能,需要在串口下,输入:start adbd
###工厂模式新增数据,数据库没数据 //原因:之前有老数据库,没重新生成新的。要删除老数据库,重新生成
data/keydata/ 目录下factory.db factory.db-shm factory.db-wal
###修改之后,串口输入 sync 同步更新
###清除序列号
重启立即长按enter,进入uboot,输入指令:store erase key
查包:pm -l | grep xxx
执行包:monkey -p 包名 执行次数
执行APK:am start APK包名
am start -n com.yourpackage.name/com.yourpackage.name.MainActivity
am start -n com.um.test_emmc/com.um.test_emmc.MainActivity
am start -n com.unionman.factorymode/com.unionman.ui.FactoryMainActivity
am force-stop com.unionman.factorymode
###查看服务器的进程信息
ps -ef | grep 进程名称
####dumpsys####
dumpsys activity | grep mFocused
###查看正在运行的服务
dumpsys activity services
###列出当前窗口的相关信息,包括当前应用的包名和弹窗信息:
dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
###更详细的弹窗信息,可以使用以下命令:
dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp|mCurrentFocusApp'
###查看系统发送过的广播
dumpsys |grep BroadcastRecord
###当前正在发送和接收的广播信息
dumpsys activity broadcasts
###恢复出厂广播
am broadcast -a android.intent.action.MASTER_CLEAR
###服务器文件复制到本地
scp -r zhaobin.chen@192.168.133.66:/homeI4/zhaobin.chen/GKM_Android9.0/out/target/product/GK6323V100C/Emmc /home/umlinux/Desktop
###确认是不是相同的文件
md5sum FileName //每个文件有特定的md5值
busybox md5sum FileName //盒子查询需要加busybox
开关遥控器:
##仅针对红外生效
//amlogic
Android4.4
开遥控器 remotecfg.sh
关遥控器 remotecfg
android9.0
关闭遥控 echo 2 > /sys/class/remote/amremote/protocol
打开遥控 echo 1 > /sys/class/remote/amremote/protocol
//GK
GK9.0
(1)
关:echo 2 > /proc/inputblock/status 无法关闭待机
开:echo 0 > /proc/inputblock/status
(2)
关:stop vendor.ir_user
开:start vendor.ir_user
###内核打印节点,7:打印权限最低
echo 7 > /proc/sys/kernel/printk //串口下,重启后会重置
loglevel=7 //uboot修改
###boot之外镜像需特殊处理才能使用
simg2img system.img um_system_aml.img //原名 重命名
###find -name
find -name 文件名 2> dev/null //只显示搜寻得到的结果
find -name "*.dts" | xargs git grep "brightness"
find . -name "Android.*" -exec grep -l "iperf3" {} +
###搜寻/proc/meminfo第一行然后剔除字母,冒号,空格再输出
sed -n 1p /proc/meminfo tr -d "a-zA-Z: "
logcat -c;logcat -v time | grep WindowManager
###查看服务器编译信息
pstree -au
###遥控器键值配对修改步骤
开机打印查看板子运行的dts是哪一个,比如gxlx2_p295_4g_wlw.dts;在串口输入 cat /sys/devices/virtual/remote/amremote/customcode,按对应遥控器,此时会显示遥控器对应的customcode
然后在gxlx2_p295_4g_wlw.dts找到里面导入的遥控器dtsi,如 #include "mesongxlxp295.dtsi"
修改mesongxlxp295.dtsi文件里面通过customcode值找对对应遥控器键值表,修正键值表内容(物理键值,linux键值)
补充:(遥控器适配流程)
按下遥控器的一个按键后,系统中的处理逻辑为:物理键值——>Linux键值——>按键名称——>Android键值
海思:串口输入 android_ir_user -D ,按下某个具体键值,串口会输出
(amlogic可尝试输入dmesg | grep 查看,物理鍵值可以查看"/sys/devices/virtual/remote/amremote/customcode")
Received key: 0xb9461420,linux_keycode =0x67,103,1, UP, protocol: .
该内容的意义如下:
1>1420为遥控器头码
3>46为遥控器物理键值
4>b9为校验值
5>0x67转换为实际值就是103,代表该按键对应的Linux键值
物理键值:海思(key.xml),Amlogic(remote*.conf)
linux键值:linux_key.h或者linux.h
可通过:getevnet -l或者getevent -v查看例如/dev/input/event4进而接下来通过此确定是哪个kl文件
按键名称(对应Android键值):串口输入 "dumpsys input" ,找到遥控器对应的.kl文件,例如Vendor_0001_Product_0001.kl;.kl文件里面格式一般为如 key 103(linux键值) DPAD_UP(按键名称)
Android键值:适配上层Android键值,上层键值在framework代码实现,具体有这些文件frameworks/base/core/java/android/view/KeyEvent.java;frameworks/native/include/input/KeycodeLabels.h;frameworks/base/core/res/res/values/attrs.xml;frameworks/native/include/android/keycodes.h
####xml文件注释
第一种(单行):
<!-- 注释内容 -->
1
第二种(多行):
<!--
注释内容(无其他注释符)
-->
更新framework
1、更新base/core代码后,framework/base下mm编译,更新如下文件到单板对应路径:
system/framework/arm/boot-framework.oat
system/framework/arm/boot.oat
system/framework/arm/boot.art
system/framework/boot-framework.vdex
system/framework/boot.vdex
system/framework/framework.jar
2、更新service的代码后需在frameworks/base/services用mm编译并更新如下文件到单板对应路径:
system/framework/services.jar
system/framework/oat/arm/services.art
system/framework/oat/arm/services.odex
system/framework/oat/arm/services.vdex
3、有些so库运行时需要权限,增加权限方法如下:修改代码根目录下system/core/rootdir/etc/的public.libraries.txt(根据mk,找到自己的txt),然后把so库名称加如即可
###编译单独镜像
make kernel
make systemimage
###查看二进制文件内容:
xxd 文件路径
###查看二进制文件末尾最后32字节内容:
tail -c 32 文件路径 | xxd
###键入textview
input text CCCZZZBBB
###uboot下查看mmc分区
ext4ls mmc 1:2
###amlogic4.4开机抓log需打开属性
setprop persist.sys.openbootlog 1
###串口更新数据库内容
数据库表(secure,global,system)
settings get secure cec_tv_to_stb
settings get global(数据库表) hdmi_control_enabled
settings put global(数据库表) hdmi_control_enabled 0
"option60_on"
---content
content query --uri content://stbconfig/authentication/launcherPackageName
content insert --uri content://stbconfig/authentication/launcherPackageName --bind key:s:123 --bind value:s:example
content update --uri content://stbconfig/authentication/launcherPackageName --bind key:s:123 --bind value:s:new_example --where "key='123'"
content delete --uri content://stbconfig/authentication/launcherPackageName --where "key='123'"
###检查apk签名
keytool -list -printcert -jarfile D:\test.apk
###串口抓取网络包
tcpdump -s0 -w /data/network3.pcap &
###串口抓包
tcpdump -s0 -i eth0 -w /data/booteth01.pcap & logcat -v time > data/booteth01.log &
####Android Studio####
当编译出现app:compileDebugJavaWithJavac报错提示,报错详情为乱码,在TerMinal输入以下指令
./gradlew compileDebugJavaWithJavac --stacktrace -info
####串口查询apk 版本与签名信息####
dumpsys package com.iflytek.xiri |grep version
##·####当前Activity的包名#######
dumpsys window windows | grep mCurrentFocus
#####打开wifi######
svc wifi enable
#####在java端添加堆栈打印#####
Log.d(TAG,Log.getStackTraceString(new Throwable()));
#####禁止IP########
iptables -I INPUT -s 10.126.39.148 -j DROP
####蓝牙####
查看蓝牙状态:dumpsys bluetooth_manager
查看已连接设备:service call bluetooth_manager 5
查看蓝牙适配器信息:service call bluetooth_manager 6
####修改系统时间####
date -s "2023-12-14 10:30:00"
date -s 20151116.025900
date 031402592024.00 //月日时分年.秒
####查看网络端口使用情况####
netstat -tun1p
####amlogic9.0 hdmi电视支持分辨率节点####
cat /sys/class/amhdmitx/amhdmitx0/disp_cap
addr2line 000000(堆栈地址) -e 带符号的库
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line -e libbootanimation.so 0000b6b1
#####禁用V6和V4端口(以端口33200 为例)#####
ip6tables -I FORWARD -p tcp --dport 33200 -j DROP
iptables -I FORWARD -p tcp --dport 33200 -j DROP
#####串口抓取网络包#######
tcpdump -s0 -w /data/network3.pcap &
#####重编system到大包####
rm out/target/product/tyson/obj/JAVA_LIBRARIES/service* -rf
rm out/target/product/tyson/obj/JAVA_LIBRARIES/framework-* -rf
rm out/target/product/tyson/obj/PACKAGING/systemimage_intermediates/ -rf
rm out/target/product/tyson/system.img
rm out/target/product/tyson/aml_upgrade_package.img -rf
make otapackage -j128
#####国科&海思修改SN与mac#####
改MAC swdevinfo write mac
改SN swdevinfo write serialno
#####amlogic修改SN与mac#####
echo 1 > /sys/class/unifykeys/attach;
echo "usid" > /sys/class/unifykeys/name;
echo "************" > /sys/class/unifykeys/write;
######Android调试过程抓取带时间的logcat和kernel log打印######
logcat -v time -f /data/logcat.log | cat /proc/kmsg | tee /data/kernel_dmesg.log
######抓取W2模组蓝牙日志######
1 串口输入如下命令:
setprop persist.bluetooth.btsnoopenable true
setprop persist.bluetooth.btsnooplogmode full
setprop persist.bluetooth.btsnoopsize 0xffffffff
setprop persist.bluetooth.btsnooppath /data/misc/bluetooth/logs/btsnoop_hci.log
2 重启机器后测试,测试完成提供 /data/misc/bluetooth/logs/btsnoop_hci.log
######丢包模拟欠载######
iptables -A INPUT -m statistic --mode random --probability 0.5 -j DROP //0.5 代表50%
iptables -F //关闭
#########安卓4.4修改系统文件权限##########
system/core/include/private/android_filesystem_config.h
eg:
在fs_path_config android_files加上
{ 00755, AID_ROOT, AID_ROOT, 0, "system/app/STBIQ.apk" }
------安卓9.0------
system/core/libcutils/fs_config.cpp
static const struct fs_path_config android_dirs[]增加
########查看系统音量指令###############
dumpsys audio | grep -A 4 'STREAM_MUSIC'
########hisi最佳分辩率###########
cat proc/msp/hdmi0_sink (查询支持的分辨率和最优分辨率,支持分辨率代表: FormatCap,最优分辨率代表:VideoCap)
cat /proc/msp/disp1查询当前电视实际分辨率
########查询hisi芯片是否支持杜比#####
cat /proc/msp/sys
########查询hisi芯片igmp版本#######
cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
eg:如果是3代表v3,2代表v2
#########amlogic烧号#########
echo 1 > /sys/class/unifykeys/attach
echo "usid" > /sys/class/unifykeys/name;echo "*****" > /sys/class/unifykeys/write
echo "mac" > /sys/class/unifykeys/name;echo "***" > /sys/class/unifykeys/write
echo "mac" > /sys/class/unifykeys/name;echo "***" > /sys/class/unifykeys/write
echo "deviceid" > /sys/class/unifykeys/name;echo "***" > /sys/class/unifykeys/write
############### ls指令##################
ls -Z:输出每个文件的所有安全上下文信息
############netstat##############
netstat -tunlp 监听网络端口进程
###########查看wifi开关状态############
dumpsys wifi | grep "Wi-Fi is"
########### service #############
service list 展示已经注册过serviceManager的service

5508

被折叠的 条评论
为什么被折叠?



