Skip to main content

工作总结整理

硬件相关

A64

交互式程序 10s 自动退出

由于守护脚本 normal_restart.sh 里不停的启动多媒体程序,导致多媒体程序盖上了交互式程序

无故重启

  1. 供电问题,日志无异常(内蒙古民族大学)

A64 播放 Rtsp 没有声音

音频编码设置成 AAC 编码格式

A64 手柄出发 HOME 键

修改 /system/usr/keylayout/sunxi-keyboard.kl 文件

串口无数据

使用以下方式排查 /dev/ttyS3 串口问题:

# 查看/dev/ttyS3串口数据
cat /dev/ttyS3
# 保存/dev/ttyS3串口数据,查看数据是否正常
cat /dev/ttyS3 > /sdcard/test
# 查看程序是否开启的该串口
ls -l /proc/PID/fd | grep /dev/ttyS3

移除lighttpd

mv /system/xbin/lighttpd-static /system/xbin/lighttpd-static-bak

801

藏文叫号

录制的语音文件为 MP3 格式,48k 采样率,单声道。添加时确保这些格式是对的。

屏参无故被修改

  1. 执行 mount -o remount,rw /tvservice 给予权限
  2. 查看 /tvservice/config/model/Customer_1.ini 文件中 panel 节点的 m_ppanelname 属性,确认屏参文件
  3. 修改所有屏参文件内容为正在使用的屏参文件

朗国 3288

3288L串口配置

3288L 板默认 ttyS1 是 TTL,ttyS3 是 232

开关屏无效

屏幕背光接线错误,没有接到主板上。可以通过使用遥控器关机验证该问题,如果关机后有背光,说明接线错误

gpio 引脚编号

  1. IO1 --234
  2. IO2 --233
  3. IO3 --231
  4. IO4 --222

gpio编号

隐藏显示导航栏

修改 persist.sys.setting.ui.hidenav 属性,1- 隐藏 0- 显示

设置默认 launcher

Android5: persist.sys.default.activity=shine.shineplayer.HomeActivity

Android7: persist.sys.default.package=shine.shineplayer

固定 MAC 地址

执行 rk_vendor_rw -m "40:33:44:FF:ED:5E" 后重启生效

问题

  • 3288 全系列主板磁条刷卡器不好用,自带输入法会拦截键值,需要更换默认输入法

开启系统自带日志记录功能

设置 persist.sys.saveSystemLog 属性为 1 后,重启系统

shell 设置音量

参考链接 1 参考链接 2

# 设置音量 service call audio 3 i32 2 i32 2 i32 0
service call audio 3 i32 [type] i32 [volume] i32 0

# 查看音量
service call audio 8 i32 [type]

# 352、905、810 设置最大音量
media volume --show --stream 3 --set 100

OTA 升级

  1. 推送升级包到  /sdcard下面
  2. 推送成功之后,依次执行如下adb命令进行升级:
echo --update_package=/data/media/0/update.zip  > /cache/recovery/command
echo --locale=zh_CN >> /cache/recovery/command
reboot recovery
  1. 等待升级完成

朗国 352

页面播放跑马灯动画导致屏幕偶发闪烁

修改 /vendor/build.prop 中的 debug.hwui.renderer 系统属性为 opengl

设置静态 IP

am broadcast -a com.xbh.action.SET_ETHERNET_MODE --es mode "static" --es ip "10.5.207.11" --es gateway "10.5.207.1" --es netMask "255.255.255.0" --es dns1 "172.16.201.251" --es dns2 "172.16.201.251"

应用内显示图片没有系统自带应用显示的清楚

需要使用海思特有的接口显示图片:链接: https://pan.baidu.com/s/1Cex-ZXh9oH__J9Rdk_A4hw?pwd=x1yt 提取码: x1yt

解码使用 HiPlayer

添加包名到 hiplayer_package_whitelist.xml 文件中,并放到 /vendor/etc/ 目录中

朗国 352 通过修改 hiplayer_package_whitelist.xml 默认文件,凯佳达 352 是在固件代码里写死

郎国 905

程序出现黑边

必须设置 targetSdkVersion 版本为 29 以上,不然会出现黑边

Web 管理软件不能修改默认密码

文件权限问题,需要在开机脚本中添加:

if [ ! -f /data/config.ini ]; then
cp /system/usr/www/servers/config.ini /data/config.ini
fi
rm -rf /system/usr/www/servers/config.ini
ln -s /data/config.ini /system/usr/www/servers/config.ini

默认密码不能包含特殊符号 {}|&~![()"

郎国 358

写死 Mac 地址

  1. 在 U 盘的根目录下新建一个以 MAC 命名的文件夹
  2. 在文件夹里面添加一个 mac.bin 文件,bin 文件可以参考模板复制
  3. bin 文件已记事本的方式打开,并填入 MAC 地址 如:9C:F8:DD:B0:86:49
  4. 填写好了之后点击保存,并把 U 盘插到主板上的 USB 接口
  5. 使用遥控器进入工厂菜单里面:首先按遥控器 SOURCE 键,进入任意通道,然后按 MENU 1 1 4 7 进入工厂菜单
  6. 点击 SYS UPGRADE-Burn MAC- 点击确认
  7. 系统自动识别 U 盘里面的 mac.bin 的 MAC 码值并写入系统
  8. 点击确认之后系统会提示“Burn MAC success”
  9. 在工厂菜单里面的 MAC ADDRESS 可以直接看到修改的 MAC 码值

注:U 盘的格式为 FAT32 的

切换 HDMI 输出


public class EnumSourceIndex {

// mstar

public final static String MSTAR_ACTION_START_TV_PLAYER = "com.mstar.android.intent.action.START_TV_PLAYER";



public final static int MSTAR_SOURCE_HDMI1 = 23;

}




jumpChannel(EnumSourceIndex.MSTAR_SOURCE_HDMI1);



public static void jumpChannel(Context context, int channelId) {

if (context != null) {

Intent intent = new Intent(EnumSourceIndex.MSTAR_ACTION_START_TV_PLAYER);

intent.putExtra("inputSrc", channelId);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

SystemUtil.setProperty("persist.memory.tvsource", String.valueOf(channelId));

}

}

郎国 3566

fake settings 使用

设置内存属性 ro.customize.ddrsize,单位是 G

设置存储属性 ro.customize.emmcsize,单位是 G

亿晟 3566

USB 设备频繁自动断开

run_shine.sh 开机不执行

亿晟 3566 v4.0 编译日期在 20230625 之前的固件开机不执行 run_shine.sh,安装该 apk 后,启动一次即可,启动命令为 am start -n com.example.myreplace/.activity.MainActivity

无法使用读卡器,找不到串口2

进入设置 -> 其他设置后,找到 打开串口2 开关,打开即可

禁用 launcher

pm disable com.softwinner.launcher

配置 HDMI 4K UI 显示

在设置里把主屏设置为 HDMI后,在 HDMI 设置中开启 4K UI 显示

亿晟 3568

配置 4K UI 显示

参考配置

setprop persist.vendor.framebuffer.main 3840x2160
# 开关HDMI输出
echo off > /sys/class/drm/card0-HDMI-A-1/status && echo on > /sys/class/drm/card0-HDMI-A-1/status
# 查看配置是否生效
cat /d/dri/0/summary

如果 srcdst 显示一致,都为 3840x2160,说明就是 4K 的 UI 了

郎国 810

查看 RTC 时钟

查看RTC时钟工具

# push 到主板上
adb root
adb remount
adb push rtc_read /vendor/bin
# 获取 rtc 时间
adb shell rtc_read time
# 获取 rtc 定时开机状态
adb shell rtc_read alarm
# 获取 rtc 定时开机时间
adb shell rtc_read alarm_time**
# 设置安卓系统时间会同步设置 rtc 时间
am broadcast -a com.android.lango.setsystemtime --el time 1622476800000
rtc 时间不对的机器,可以用 date 命令先看下系统时间对不对
最好先不要联网,这样就不会自动同步安卓时间
1. 出问题的机器,是不是 rtc 时间都有问题(用 rtc_read 命令)
2. 不要联网,用 date 命令看下系统时间是否正确
3. 设置一下系统时间,看下 rtc 时间有没有更新,命令:
am broadcast -a com.android.lango.setsystemtime --el time 1622476800000
4. 还有问题的话,强制写 rtc 时间,命令:
i2c_write 4 0xa3 0x02 0x01 0x07 0x00 0x00 0x00 0x01 0x05 0x01 0x51

810 开关屏状态不对

V2.0.6 Hi3751V811_DMO-eng 8.0.0 OPR6.170623.013 eng.liangy.20210525.170811 release-keys 版本内核开始,

进入工厂模式

先进 HDMI

然后遥控按 上下左右1337

定时开机不生效

使用命令 getprop ro.product.version 查看版本属性,如果版本低于 V2.2.0,需要联系朗国升级系统

OAT 升级方式

# 将升级包放到/sdcard/目录下,发送下面广播
am broadcast -a com.xbh.action.UPDATE_SYSTEM -n com.android.settings/com.android.settings.webservice.WebServiceReceiver

px30

小板将在串口 /dev/ttyS5,波特率是 9600

fake settings 使用

2022.12.29 添加配置:

设置内存属性 ro.product.customer.memory,单位是 G

设置存储属性 ro.product.customer.storage,单位是 G

AH10 切换 OTG 和 U 盘

切换 OTG:echo otg > /sys/devices/platform/ff2c0000.syscon/ff2c0000.syscon:usb2-phy@100/otg_mode

切换 HOST:echo host > /sys/devices/platform/ff2c0000.syscon/ff2c0000.syscon:usb2-phy@100/otg_mode

AH10 切换 4G 模块网卡和有线网卡

# 有线网卡
setprop ro.product.customer.interface eth0
# 4G 模块
setprop ro.product.customer.interface eth1

规格书

十寸屏规格书

新七寸屏规格书

爱特沃

爱特沃接口使用说明-T39

D3+读卡模块

海思 3719C

禁用 dlna

pm disable com.hisilicon.dlna.dmr
pm disable com.hisilicon.dlna.dms
pm disable com.hisilicon.multiscreen.serve

黑色十寸话机

版本号

v210:1.0.107

v200:1.0.48

管理页面

用户名:superadmin

密码:psw.phone

开启/system 权限

  1. adb root
  2. adb disable-verity
  3. adb reboot 重启设备
  4. adb root
  5. adb remount

R16

使用reboot重启设备会导致设备无声音,需要重新上电才能恢复正常

解决开机后偶发无网络问题

/extdata/work/show/run_shine.sh脚本中添加以下内容解决:

busybox ifconfig eth0 down
sleep 2
busybox ifconfig eth0 up

朗国 810

OTA 升级

update.zip放到/sdcard目录下,执行下面命令:

am broadcast -a com.xbh.action.UPDATE_SYSTEM -n com.android.settings/com.android.settings.webservice.WebServiceReceiver

朗国 V100

播放H265编码视频花屏

# 设置系统属性
setprop persist.sys.media.np.output ""

FAQ

定时开关机程序

配置文件放在了 data/data/com.shine.timerboot/files/time.json 文件中

文件作用说明

managerinfo.xml:定时开关机、开关屏、音量等设置

Showclient 内存泄漏导致设备离线

缺少 showclient 使用的目录

mkdir /home
mkdir /data/work/work
ln -s /data/work/work /home/work

人脸识别

授权丢失排查方法

旷视授权和网卡信息关联比较大,设备恢复出厂设置后,重新授权时必须保证和首次授权当时网络状态一致,例如首次授权是插着有线网络的同时开着 WiFi,重新授权的时候也需要是这样的状态

测试的时候首先保证 pw 文件授权点数已经消耗完了,防止设备重复授权消耗多个授权点书

使用 facepass_tool_v7 工具 获取设备信息,观察设备重启或者恢复出厂后获取到的设备信息是否一致

adb push facepass_tool_v7 /data/local/tmp
& adb shell chmod 777 /data/local/tmp/facepass_tool_v7
& adb shell /data/local/tmp/facepass_tool_v7 show

人脸识别授权接口

3.7 以前:https://api-cn.faceplusplus.com

新版 3.8:https://srp.megvii.com

授权相关

调试相关

开启 debug:setprop debug.facepass.log.level 666

串口扫描枪

  • A64:串口 /dev/ttyS4,波特率 9600

TMZ 读卡器

无法读身份证

使用 SK1_02_V1.19 版本的软件升级

SK1_02_V1.19 版本升级包:链接: https://pan.baidu.com/s/1iT4dun3ztp8dfabc5Us58g?pwd=282t 提取码: 282t

升级工具:链接: https://pan.baidu.com/s/13uCdfpFTeHJWzTWf1bj7PA?pwd=c7hz 提取码: c7hz

判断是否三代 PSAM 卡

  1. 打开 TMZ 提供的测试程序。
  2. 连接设备。
  3. 选择 CPU 卡测试。
  4. 选择插有 PSAM 卡的卡座。
  5. 在发送数据输入框中输入 00A404000F7378332E73682EC9E7BBE1B1A3D5CF
  6. 单击“发送 APDU 命令”。
  7. 如果提示发送成功,并且返回信息结尾为 9000,则代表使用的是三代 PSAM 卡。
00A404000F7378332E73682EC9E7BBE1B1A3D5CF:三代卡算法
00A404000F7378322E73682EC9E7BBE1B1A3D5CF:二代卡算法

致善读卡器

测试指令

// 寻卡
02 00 00 04 46 52 9c 03

// 防冲撞
02 00 00 04 47 04 4f 03

// 选卡
02 00 00 07 48 FD 84 99 31 9a 03

// 密钥
02 00 00 0b 4a 60 00 ff ff ff ff ff ff af 03

// 读0块
02 00 00 04 4b 00 4f 03

// 读1块
02 00 00 04 4b 01 50 03

远距离读卡器

波特率 57600

相关文档

串口打印机

串口打印机文档和动态库源码

键值文件

遥控器红外码

30K 遥控器红外码

41K 遥控器红外码

H6

H6 适配遥控器文件 替换 /system/usr/keylayout/customer_ir_ff00.kl

810

810 适配遥控器文件 替换 /atv/etc/key.xml 并给 777 权限

A64

A64 适配 29K 键值文件 替换 /system/usr/keylayout/Generic.kl

长治二院屏蔽 30K 上、下、左、右、OK、HOME、MENU

905D3

905 键值文件 放到 /vendor/usr/keylayout/

执行 getevent 获取物理键值

遥控器适配

Android TV 遥控器适配

设备断电后文件损坏

由于文件系统的断电保护机制导致文件损坏,F2FS 比 EXT4 文件更容易出现断电后文件损坏的情况

Talk 有延时

修改 system/build.prop 文件,添加 ro.audio.flinger_standbytime_ms=50

关闭 lighttpd 服务

# A64
pkill lighttpd

终端 nt 长时间连接后离线

也是无法写 scDb 导致的泄露问题,开机执行

mkdir /home
mkdir /data/work/work
ln -s /data/work/work /home/work

logcat 导致存储空间不足

问题描述:程序中使用 shell 命令 logcat 记录日志,如果删除日志文件的同时不停止 logcat 进程,日志文件句柄依然会存在。会导致该进程会持续往被删除的文件中写入数据,导致存储空间不足。

排查方法:使用 lsof | grep \.txt | grep deleted 查看被删除 txt 格式文件句柄(不同平台不同 Android 版本该命令可能不一致),多次执行该命令,如果文件大小在增长,说明该进程还在往该文件中写入数据。

解决方案:由于 logcat 的进程是通过程序内调用 shell 命令启动的,所以不能停止该进程。只能通过 echo "" > /data/logcat.txt 清空日志文件。该问题解决。

朗国 352、凯佳达 352 配置解码使用 HiPlayer

添加包名到 hiplayer_package_whitelist.xml 文件中,并放到 /vendor/etc/ 目录中

朗国 352 通过修改 hiplayer_package_whitelist.xml 默认文件,凯佳达 352 是在固件代码里写死

电子医保凭证

配置

需要在设备的 /sdcard/shine/electronic.json 文件中配置解密电子医保凭证相关数据,例如:

{
"businessType": "01101",
"deviceType": "SelfService",
"officeId": "9015",
"officeName": "门诊收费室",
"operatorId": "LRY002",
"operatorName": "自助机2",
"orgId": "H43018100218",
"tradingUrl": "http://xxxxxx/localcfc/api/hsecfc/localQrCodeQuery",
"transType": "ec.query"
}
  • businessType:用码业务类型
  • deviceType:设备类型
  • officeId:科室 ID
  • officeName:科室名称
  • operatorId:操作员 ID
  • operatorName:操作员名称
  • orgId:机构 ID
  • tradingUrl:交易地址
  • transType:交易类型

其中 orgIdtradingUrl 两个字段是必须修改的,其他字段可以默认不变

调用流程

  1. 扫描以后会调用页面 getReadCardInfo 接口把电子医保卡号传递给页面
  2. 页面收到以后,调用 Android 的 nationEcTrans 接口传递电子医保卡号
  3. Android 端通过 /sdcard/Shine/electronic.json 文件里的配置信息解密电子医保卡
  4. Android 解密成功以后再次通过 onRawInput 接口把结果传递给页面

修改 Web 管理页面密码

  • 905、358、810 文件位置:/system/usr/www/servers/config.ini

run_shine.sh 执行一会后自动停止

# 脚本结尾添加以下代码
while true; do
sleep 5
done

信发 9.0 FAQ

快速替换页面程序

# 删除现有页面程序
adb shell rm -rf /sdcard/shine/www/web

# push 页面程序压缩包到 /sdcard/shine/webapp/web.zip
adb push [本机页面程序压缩包文件路径] /sdcard/shine/webapp/web.zip

# 重启设备
adb reboot

如何配置加载指定页面地址

可以通过修改 /sdcard/shine/load_url_config.txt 文件来配置加载指定页面地址,文件内容为需要加载的 url:

https://www.baidu.com