King 发表于 2022-7-14 20:25:17

SD5360-660-M1麦当劳

本帖最后由 King 于 2023-7-28 15:39 编辑

个人:锁定竖屏可能会导致 其他接口输出扁平化,局部触摸失效等



黑屏问题依然没有解决
app默认获取所有权限无需动态获取,暂时需动态获取(远程工具、麦当劳等少了无弹窗)
ro.serial无法设置,当时设置的是和家里一致的位置。
wm size 第一次需要设置1080*1920,之后 adb reboot不影响

静默安装对应安装含McDonald's 关键字的app 可以实现静默安装

07142242- 去掉远程弹窗。

660仍然存在的问题如下:
1、通知栏菜单,开关设置无效。(通知栏状态栏需同时打开,逻辑上无状态栏就无通知栏)
2、主屏旋转角度默认0度,修改无效。(7.16 可以支持旋转)
3、升级后(或恢复出厂设置),分辨率不正确,需要adb修改。
4.定时开关机,时间节点。(批量出货之后方可实现)





静默安装,上层调用方式,rom 实现
val intent = Intent("android.intent.action.SILENT_PACKAGE_INSTALL")
intent.component =ComponentName("com.android.packageinstaller",
"com.android.packageinstaller.SilentInstallerReceiver")
intent.putExtra("silent_install_file", file.absolutePath)
sendBroadcast(intent,null)


要求全量包升级
提供给上层调用的唯一识别码
获取设备唯一序列号,序列号和pc 外面贴的标签一致
如:上层调用方式:
Settings.Global.getString(context.getContentResolver(), "ro_serial")
1)系统设置增加以太网设置菜单,支持dhcp和静态IP设置;
2)静态 ip 配置
上层调用方式如下,rom实现
Intent intent = new Intent("android.net.action.ETHERNET_IP_CHANGED");
intent.putExtra("netMode", "static");
intent.putExtra("ipaddr",xx.xx.xx.xx);
//static 配置中子网掩码可能为空,接口里面拿到子网掩码进行配置
intent.putExtra("netMask", xxx.xxx.xxx.xx);
intent.putExtra("gateway",xxx.xxx.xx.xx);
intent.putExtra("dns1", xxx.xxx.xx.xx);
intent.putExtra("dns2", xxx.xxx.xx.xx);
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.ethernet. EthernetBroadcastReceiver"));
context.sendBroadcast(intent,null);
3)切为动态 dhcp 增加动态配置的方式,广播只传入配置方式 netMode 为 dhcp,其他内容为空。
Intent intent = new Intent("android.net.action.ETHERNET_IP_CHANGED");
intent.putExtra("netMode", "dhcp");
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.ethernet.EthernetBroadcastReceiver"));
context.sendBroadcast(intent,null);





King 发表于 2022-7-15 16:46:56

本帖最后由 King 于 2024-1-17 16:02 编辑

ro_serial 关联 ro.serial
或者将ro_serial 放在固定不可重置区域。

设置
adb shell am broadcast -a com.android.serial --es set CJAM1012345

adb shell "am broadcast -a com.android.serial --es set 12345678"


获取
Settings.Global.getString(context.getContentResolver(), "ro_serial")
settings get global ro_serial

adb shell settings get global ro_serial


adb shell "am broadcast -a com.android.serial --es set CJAM1010000000J23010037"

King 发表于 2022-7-18 11:00:31

本帖最后由 King 于 2023-8-18 18:23 编辑

远程使用时,副屏跟随旋转要关掉,远程才能正常全屏V1 签名JAVA_HOME:C:\Program Files\Java\jre1.8.0_333
JAVA_HOME:C:\Program Files\Java\jre1.8.0_333
D:\Tools\signapk
java -jar signapk.jar platform.x509.pem platform.pk8 MCD.apk MCD_signed.apk


JAVA_HOME:C:\Program Files\Java\jdk-20
v1 v2 v3签名
C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\33.0.0
$ apksigner sign --key platform.pk8 --cert platform.x509.pem --out MCD_signed.apk MCD.apk



centos环境
devops/apksign
使用java 配置 sudo update-alternatives --config java ,java-1.8.0

使用source profile 配置
#set java environment
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
export JRE_HOME=/usr/lib/jvm/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind'

export ANDROID_HOME=/var/lib/jenkins/android-sdk/tools/bin
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin


找到libconscrypt_openjdk_jni.so 库 修改可执行权限 执行 ldd libcon……即可解决 Failed to load any of the given libraries: [conscrypt_openjdk_jni-linux-x86_64,问题
java -jar -Djava.library.path=. signapk.jar platform.x509.pem platform.pk8 MCD.apk MCD_Signed.apk
java -jar -Djava.library.path=. signapk.jar platform.x509.pem platform.pk8 MCD.apk MCD_Signed.apk

查看前面SHA-1值
keytool-printcert -jarfile C:\Users\Administrator\Desktop\CashBoxService.apk




King 发表于 2022-7-20 14:25:30

竖屏固件调整横屏后恢复出厂,开机logo 不全屏
竖屏倒向 90度,刷机,logo正向竖屏,动画倒向。

King 发表于 2022-10-17 20:53:40

本帖最后由 King 于 2022-10-19 15:32 编辑

cat /sys/devices/virtual/thermal/thermal_zone5/temp
这个是核心模组里面的温度
adb shell cat /proc/meminfo
查看内存使用情况

cat /proc/stat或者 dumpsys cpuinfo
查看CPU占用情况











_________________________________________________________________________________________________________________
打开
1111111 -> 周一/.../周日
关闭
0000000 -> 周一/.../周日
adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es power_time 15:22 --es shut_time 15:18 --es week 1111111 --ez effective true"
——————————————————————————————————————————————————————————————————————
打开(不加--es week是星期全打开)
1111111 -> 周一/.../周日
关闭
0000000 -> 周一/.../周日
单独设置开机时间/星期
adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es power_time 15:22 --es week 1111111 --ez effective true"

单独设置关机时间/星期
adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es shut_time 15:18 --es week 1111111 --ez effective true"

同时设置时间/星期(星期在开机和关机上同时生效)
adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es power_time 15:22 --es shut_time 15:18 --es week 1111111 --ez effective true"


张健:
这个参数必须7个,同时设置。打开设置1,关闭设置0

少了参数,不加参数,默认星期全设置


————————————————————————————————————————————————————

打开(不加--es week是星期全打开)
1111111 -> 周一/.../周日
关闭
0000000 -> 周一/.../周日
单独设置开机时间/星期
scrcpy.adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es power_time 15:22 --es week 1111111 --ez effective true"

单独设置关机时间/星期
scrcpy.adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es shut_time 15:18 --es week 1111111 --ez effective true"

同时设置时间/星期(星期在开机和关机上同时生效)
scrcpy.adb shell "am broadcast -a com.ubiot.auto_power_shut -f 0x1000000 --es power_time 15:22 --es shut_time 15:18 --es week 1111111 --ez effective true"




King 发表于 2022-11-10 09:13:46

本帖最后由 King 于 2023-9-15 15:21 编辑

一个只刷Android,一个全文件刷,你们用的是Android部分的,在那个Android的xml里面。。除了Android还有3g/4g的代码,以及供电部分代码和其他部分的,我这边为了方便就一起刷的。


sadb shell am force-stop com.mcdonalds.sok.cn
关闭 麦当劳 进程

adb shell am start -n com.mcdonalds.sok.cn/.activity.LaunchActivity

拉起麦当劳app 到最顶层


setprop persist.sys.apk_install_auto_start true//开(默认)

setprop persist.sys.apk_install_auto_start false //关

660平台开发的功能,目的给用户APP自动升级用的,升级完拉起自己。

adb shell getprop persist.sys.apk_install_auto_start      应为false



King 发表于 2022-12-2 14:08:34

本帖最后由 King 于 2023-3-31 16:59 编辑

adb shell "am broadcast -n com.system.ota/com.system.ota.OtaUpdateReceiver -a zysj.remote.update.system"

《adb shell am broadcast -a zysj.remote.update.system》仅添加,上面是adb指令
将update.zip 放在storage/emulated/0 下面
sadb push H:\Downloads\update.zip /sdcard

sadb logcat | grep "ota" 查看进度
03-31 16:50:45.64033313344 D ota   : onStatusUpdatestatus: 3
03-31 16:50:45.64233313344 D ota   : update progress: 91
03-31 16:50:47.72733313344 D ota   : onStatusUpdatestatus: 3
03-31 16:50:47.72933313344 D ota   : update progress: 92
03-31 16:50:49.30933313344 D ota   : onStatusUpdatestatus: 3
03-31 16:50:49.31533313344 D ota   : update progress: 93
03-31 16:51:01.38433313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:01.38833313344 D ota   : update progress: 94
03-31 16:51:06.43233313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:06.43433313344 D ota   : update progress: 95
03-31 16:51:07.56433313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:07.56633313344 D ota   : update progress: 96
03-31 16:51:07.79233313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:07.79433313344 D ota   : update progress: 97
03-31 16:51:07.98733313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:07.99033313344 D ota   : update progress: 98
03-31 16:51:08.17533313344 D ota   : onStatusUpdatestatus: 3
03-31 16:51:08.17733313344 D ota   : update progress: 99
03-31 16:51:09.05833313344 D ota   : onStatusUpdatestatus: 5
03-31 16:51:23.92933313344 D ota   : onStatusUpdatestatus: 5
03-31 16:51:23.94933313344 D ota   : onStatusUpdatestatus: 6
03-31 16:51:23.94933313344 D ota   : onPayloadApplicationComplete errorCode=0
03-31 16:51:23.95333313344 D ota   : UPDATE SUCCESS!
03-31 16:51:23.96810371037 I update_engine: uploading 1 to histogram for metric ota_update_engine_attempt_number
03-31 16:51:23.96910371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_attempt_payload_type
03-31 16:51:23.96910371037 I update_engine: uploading 3 to histogram for metric ota_update_engine_attempt_duration_boottime_in_minutes
03-31 16:51:23.96910371037 I update_engine: uploading 3 to histogram for metric ota_update_engine_attempt_duration_monotonic_in_minutes
03-31 16:51:23.96910371037 I update_engine: uploading 605 to histogram for metric ota_update_engine_attempt_payload_size_mib
03-31 16:51:23.96910371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_attempt_result
03-31 16:51:23.96910371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_attempt_error_code
03-31 16:51:24.00210371037 I update_engine: uploading 634524960 to histogram for metric ota_update_engine_attempt_current_bytes_downloaded_mib
03-31 16:51:24.02410371037 I update_engine: uploading 1 to histogram for metric ota_update_engine_successful_update_attempt_count
03-31 16:51:24.02410371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_successful_update_payload_type
03-31 16:51:24.02410371037 I update_engine: uploading 605 to histogram for metric ota_update_engine_successful_update_payload_size_mib
03-31 16:51:24.02410371037 I update_engine: uploading 605 to histogram for metric ota_update_engine_successful_update_total_bytes_downloaded_mib
03-31 16:51:24.02410371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_successful_update_download_overhead_percentage
03-31 16:51:24.02410371037 I update_engine: uploading 3 to histogram for metric ota_update_engine_successful_update_total_duration_in_minutes
03-31 16:51:24.02410371037 I update_engine: uploading 0 to histogram for metric ota_update_engine_successful_update_reboot_count
03-31 16:51:25.49733313344 E ota   : rebootNow


升级完成后 直接重启,没有提示,检测版本号后面有-OTA 表示升级成功。
升级完成后,根目录 update.zip 删除


King 发表于 2022-12-6 09:34:31

本帖最后由 King 于 2022-12-13 17:13 编辑

$ sadb shell
sdm660_64:/ $ settings list global | grep ntp
ntp_server=ntp1.aliyun.com
ntp_server_2=persist.vendor.ntp.svr_2


$ adb shell settings put global ntp_server asia.pool.ntp.org

# test
$ adb shell settings get global ntp_server
> asia.pool.ntp.org
1、设置时间adb shell "date 07010101.00"
设置时间格式为MMDDHHM.00,不能设置年慧为:adb shell date 022520402021.59 setadb shell su -c date 022520402021.59 set加su 权限



2、读取时间adb shell "date"https://pic4.zhimg.com/80/v2-a01ac6a1aef206ee76daf4bc3305c9cb_720w.webp
3、设置时区adb shell "setprop persist.sys.timezone Pacific/Midway"Pacific/Midway为设置的时区4、读取时区adb shell "getprop persist.sys.timezone"

第一的, adb shell settings put global auto_time 1(打开自动日期和时间)第二,adb shell date '0739010002017.00'(设定你想要的时间)第三,adb shell settings put global auto_time 0(关闭自动日期和时间)

更改日期与系统相同adb shell date -s `date +%G%m%d.%H%M%S`将日期更改为明天:adb shell date -s `date --date='1 day' +%G%m%d.%H%M%S`将日期更改为明天凌晨 12 点adb shell date -s `date --date='1 day' +%G%m%d.000000`将日期更改为昨天 adb shell date -s `date --date='1 day ago' +%G%m%d.%H%M%S`将日期更改为一周前adb shell date -s `date --date='1 week ago' +%G%m%d.%H%M%S`

扩展 @uval 的答案,您可以使用以下内容根据 Windows 机器上的时间更新 Android 设备上的日期和时间:adb shell su -c date %dateMM%%dateDD%%timeHH%%timeMM%%dateYYYY%.%timeSS%
adb shell su -c am broadcast -a android.intent.action.TIME_SET




使用adb修改屏幕像素密度 (此命令针对全志开发板子)
adb shell am display-density 120

{以下命令针对高通的开发板子}
获取Android设备屏幕分辨率:
adb shell wm size
获取android设备屏幕密度:
adb shell wm density
修改屏幕像素密度
adb shell wm resize 1920*1080
adb shell wm size 540×960
重置屏幕尺寸大小
adb shell wm size reset
设置屏幕dpi (常用的dpi有160mdpi, 240hdpi, 320xhdpi, 480xxhdpi)
adb shell wm density 320
重置可用dpi如下命令
adb shell wm density reset



King 发表于 2023-1-5 17:17:51

本帖最后由 King 于 2024-1-24 13:44 编辑

先进入adb shell , dumpsys | grep "DUMP OF SERVICE"就可以看哪些service可以dump

dumpsys | grep "DUMP OF SERVICE"

adb shell service list

service list | grep "network_time_update_service"
要简单检查特定服务是否正在运行,请使用:adb shell service check <service>例如,adb shell service check media.player赋予Service media.player: found如果它的运行和Service media.player: not found其他.如果您需要更多细节,请尝试dumpsys <service>.例如,adb shell dumpsys media.player返回有关media.player客户端,打开文件等的信息.最后,如果您真的需要认真的调试细节,请尝试从adb shell dumpsys activity services哪个角度展示正在发生的事情ActivityManager.这包括有关意图,创建时间,上次活动时间,绑定等的信息等.如果要存储输出以供以后查看/搜索,可以重定向输出.它通常相当冗长.
查看设备运行时间
adb shell dumpsys | grep "uptime"

Current stats (from -28m0s673ms to now, +28m0s673ms uptime):
Runtime uptime (elapsed): +28m2s395ms
Runtime uptime (uptime): +28m2s395ms

King 发表于 2023-1-9 17:27:29

本帖最后由 King 于 2024-1-26 15:47 编辑

关闭 麦当劳
adb shell "ps|grep com.mcdonalds.sok.cn"

u0_a57      3092   903 445893686420 0                   0 S com.mcdonalds.sok.cn.dev:remote
system      3482   904 118438044500 0                   0 S com.qualcomm.qti.smcinvokepkgmgr
radio         3502   903 387135651532 0                   0 S com.qualcomm.simcontacts
u0_a57      3672   903 4793788 203704 0                   0 S com.mcdonalds.sok.cn.dev
adb root
adb shell " kill -9 3092"


adb shell " am force-stop com.mcdonalds.sok.cn.dev"


kill 用于终止进程kill
有十几种控制进程的方法,下面是一些常用的方法:
kill -STOP
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
kill -CONT
发送SIGCONT (19,18,25)重新开始一个停止的进程。
kill -KILL
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
kill -9 -1
终止你拥有的全部进程。
SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。
ps -ef | grep 包名、进程名
ps -ef | grep kafka
top -u 包名、进程名

cat /proc/meminfo
proc/meminfo 机器的内存使用信息/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。/proc/pid/statm 进程所占用的内存
查看机器可用内存/proc/28248/>free1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。
ps auxw | head -1;ps auxw | sort -rn -k4 | head -5 查看内存占用前5进程
ps auxw | head -1;ps auxw | sort -rn -k3 | head -3
查看CPU 占用前3 进程



快捷键 adb 指令发送

可以使用adb shell命令来发送返回桌面的指令。具体指令如下:adb shell input keyevent 3这个指令模拟按下home键的操作,可以将焦点切换到桌面。
[*]返回桌面(home)指令:

[*]adb shell input keyevent 3
[*]菜单指令:

[*]adb shell input keyevent 82
[*]返回指令:

[*]adb shell input keyevent 4


[*]打开通知面板:adb shell input keyevent 226
[*]打开快捷设置面板:adb shell input keyevent 239
[*]打开最近任务列表:adb shell input keyevent 19
[*]打开音量调整滑块:adb shell input keyevent 200
[*]减小音量:adb shell input keyevent 203
[*]增大音量:adb shell input keyevent 205
[*]静音/取消静音:adb shell input keyevent 164
[*]锁屏:adb shell input keyevent 264
[*]亮屏:adb shell input keyevent 224

安卓系统底部的三个按键依次是“返回键”、“主页键”、“多任务键”。其中,“返回键”通常位于左侧,“主页键”位于中间,“多任务键”通常位于右侧。使用adb发送指令到安卓设备时,可以通过输入相应的adb shell命令来模拟按下这些按键的操作。具体指令如下:
[*]模拟按下返回键:

[*]adb shell input keyevent KEYCODE_BACK
[*]模拟按下主页键:

[*]adb shell input keyevent KEYCODE_HOME
[*]模拟按下多任务键:

[*]adb shell input keyevent KEYCODE_ RecentApps



可以使用adb shell命令来发送切换任务的指令。具体指令如下:adb shell am start -n com.android.deskclock/.AlarmClock这个指令会启动一个名为AlarmClock的应用,并将焦点切换到该应用。你可以将com.android.deskclock和.AlarmClock替换为你想要切换到的应用包名和活动名。另外,如果你想要发送其他切换任务的指令,可以使用adb shell dumpsys activity命令来获取当前运行的应用和活动信息,然后根据需要编写相应的adb shell命令来模拟用户操作。


01-26 15:43:39.493   452   530 D WindowManager: interceptKeyTi keyCode=3 down=false repeatCount=0 keyguardOn=false mHomePressed=true canceled=false


[*]win=Window{37e28b1 u0 com.hezheng.pos/com.hezheng.hkpos.ui.activity.trade.goods.GoodsActivity}:指定了与事件相关的窗口,其中 com.hezheng.pos 是应用程序的包名,com.hezheng.hkpos.ui.activity.trade.goods.GoodsActivity 是活动的类名。
[*]action=1:指定按键事件的动作。在这里,1 表示按下动作。
[*]flags=40:标志位,以十进制表示。在这里,40 的二进制表示是 101000,表明事件可能具有一些特殊标志。
[*]keyCode=82:按键码,这里是 82,表示 Menu 键。
[*]scanCode=0:扫描码,这里是 0。
[*]metaState=0:元状态,这里是 0,表示没有按下任何修饰键(如 Shift、Ctrl、Alt 等)。
[*]repeatCount=0:重复次数,这里是 0,表示这是按键的第一次触发。
[*]policyFlags=1795162112:策略标志,以十进制表示。在这里,1795162112 的二进制表示是 1101010100000000100101000100000,这可能包含一些窗口管理器的策略信息。

[*]keyCode=3:按键码,这里是 3,通常对应于 Home 键。
[*]down=false:指示按键事件的动作,这里是 false,表示按键被释放(抬起)。
[*]repeatCount=0:重复次数,这里是 0,表示这是按键的第一次触发。
[*]keyguardOn=false:指示键盘锁是否打开,这里是 false,表示键盘锁未打开。
[*]mHomePressed=true:指示 Home 键是否被按下,这里是 true,表示 Home 键被按下。
[*]canceled=false:指示按键事件是否被取消,这里是 false,表示按键事件未被取消。
因此,这条日志的含义是窗口管理器拦截了一个 Home 键的释放事件,并且当前 Home 键处于按下状态,未被键盘锁锁定,且按键事件未被取消。这可能反映了系统处理 Home 键事件的一些状态和逻辑。





页: [1] 2 3
查看完整版本: SD5360-660-M1麦当劳