知识库

标题: SD5360-660-M1麦当劳 [打印本页]

作者: King    时间: 2022-7-14 20:25
标题: 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
本帖最后由 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
本帖最后由 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.jarJAVA_HOME/lib/tools.jarJAVA_HOME/jre/lib/rt.jar
export PATH=$PATHJAVA_HOME/bin
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind'

export ANDROID_HOME=/var/lib/jenkins/android-sdk/tools/bin
export PATH=$PATHANDROID_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
竖屏固件调整横屏后恢复出厂,开机logo 不全屏
竖屏倒向 90度,刷机,logo正向竖屏,动画倒向。
作者: King    时间: 2022-10-17 20:53
本帖最后由 King 于 2022-10-19 15:32 编辑

cat /sys/devices/virtual/thermal/thermal_zone5/temp
这个是核心模组里面的温度
[backcolor=var(--im_chat_message_bg_color,#c9e7ff)]adb shell cat /proc/meminfo
[backcolor=var(--im_chat_message_bg_color,#c9e7ff)]查看内存使用情况

cat /proc/stat  或者 dumpsys cpuinfo
查看CPU占用情况
[color=var(--common_level2_base_color,rgba(23,26,29,0.6))]





[color=var(--common_level2_base_color,rgba(23,26,29,0.6))]




_________________________________________________________________________________________________________________
打开
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
本帖最后由 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
本帖最后由 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.640  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:50:45.642  3331  3344 D ota     : update progress: 91
03-31 16:50:47.727  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:50:47.729  3331  3344 D ota     : update progress: 92
03-31 16:50:49.309  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:50:49.315  3331  3344 D ota     : update progress: 93
03-31 16:51:01.384  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:01.388  3331  3344 D ota     : update progress: 94
03-31 16:51:06.432  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:06.434  3331  3344 D ota     : update progress: 95
03-31 16:51:07.564  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:07.566  3331  3344 D ota     : update progress: 96
03-31 16:51:07.792  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:07.794  3331  3344 D ota     : update progress: 97
03-31 16:51:07.987  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:07.990  3331  3344 D ota     : update progress: 98
03-31 16:51:08.175  3331  3344 D ota     : onStatusUpdate  status: 3
03-31 16:51:08.177  3331  3344 D ota     : update progress: 99
03-31 16:51:09.058  3331  3344 D ota     : onStatusUpdate  status: 5
03-31 16:51:23.929  3331  3344 D ota     : onStatusUpdate  status: 5
03-31 16:51:23.949  3331  3344 D ota     : onStatusUpdate  status: 6
03-31 16:51:23.949  3331  3344 D ota     : onPayloadApplicationComplete errorCode=0
03-31 16:51:23.953  3331  3344 D ota     : UPDATE SUCCESS!
03-31 16:51:23.968  1037  1037 I update_engine: [0331/165123.968887:INFO:metrics_reporter_android.cc(29)] uploading 1 to histogram for metric ota_update_engine_attempt_number
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969088:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_attempt_payload_type
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969166:INFO:metrics_reporter_android.cc(29)] uploading 3 to histogram for metric ota_update_engine_attempt_duration_boottime_in_minutes
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969232:INFO:metrics_reporter_android.cc(29)] uploading 3 to histogram for metric ota_update_engine_attempt_duration_monotonic_in_minutes
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969295:INFO:metrics_reporter_android.cc(29)] uploading 605 to histogram for metric ota_update_engine_attempt_payload_size_mib
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969357:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_attempt_result
03-31 16:51:23.969  1037  1037 I update_engine: [0331/165123.969718:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_attempt_error_code
03-31 16:51:24.002  1037  1037 I update_engine: [0331/165124.002054:INFO:metrics_reporter_android.cc(29)] uploading 634524960 to histogram for metric ota_update_engine_attempt_current_bytes_downloaded_mib
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024065:INFO:metrics_reporter_android.cc(29)] uploading 1 to histogram for metric ota_update_engine_successful_update_attempt_count
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024291:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_successful_update_payload_type
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024412:INFO:metrics_reporter_android.cc(29)] uploading 605 to histogram for metric ota_update_engine_successful_update_payload_size_mib
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024524:INFO:metrics_reporter_android.cc(29)] uploading 605 to histogram for metric ota_update_engine_successful_update_total_bytes_downloaded_mib
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024632:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_successful_update_download_overhead_percentage
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024741:INFO:metrics_reporter_android.cc(29)] uploading 3 to histogram for metric ota_update_engine_successful_update_total_duration_in_minutes
03-31 16:51:24.024  1037  1037 I update_engine: [0331/165124.024848:INFO:metrics_reporter_android.cc(29)] uploading 0 to histogram for metric ota_update_engine_successful_update_reboot_count
03-31 16:51:25.497  3331  3344 E ota     : rebootNow


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



作者: King    时间: 2022-12-6 09:34
本帖最后由 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 set
adb shell su -c date 022520402021.59 set  加su 权限



2、读取时间
adb shell "date"

3、设置时区
adb shell "setprop persist.sys.timezone Pacific/Midway"
Pacific/Midway为设置的时区
4、读取时区
adb shell "getprop persist.sys.timezone"


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

更改日期与系统相同
adb shell [color=var(--highlight-literal)]date -s `[color=var(--highlight-literal)]date +%G%m%d.%H%M%S`
将日期更改为明天:
adb shell [color=var(--highlight-literal)]date -s `[color=var(--highlight-literal)]date --[color=var(--highlight-literal)]date=[color=var(--highlight-variable)]'1 day' +%G%m%d.%H%M%S`
将日期更改为明天凌晨 12 点
adb shell [color=var(--highlight-literal)]date -s `[color=var(--highlight-literal)]date --[color=var(--highlight-literal)]date=[color=var(--highlight-variable)]'1 day' +%G%m%d.000000`
将日期更改为昨天
adb shell [color=var(--highlight-literal)]date -s `[color=var(--highlight-literal)]date --[color=var(--highlight-literal)]date=[color=var(--highlight-variable)]'1 day ago' +%G%m%d.%H%M%S`
将日期更改为一周前
adb shell [color=var(--highlight-literal)]date -s `[color=var(--highlight-literal)]date --[color=var(--highlight-literal)]date=[color=var(--highlight-variable)]'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
本帖最后由 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
本帖最后由 King 于 2024-1-26 15:47 编辑

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

u0_a57        3092   903 4458936  86420 0                   0 S com.mcdonalds.sok.cn.dev:remote
system        3482   904 1184380  44500 0                   0 S com.qualcomm.qti.smcinvokepkgmgr
radio         3502   903 3871356  51532 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 [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
kill -KILL [pid]
发送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/>free

1)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 进程
[attach]331[/attach]


快捷键 adb 指令发送

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

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


可以使用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

因此,这条日志的含义是窗口管理器拦截了一个 Home 键的释放事件,并且当前 Home 键处于按下状态,未被键盘锁锁定,且按键事件未被取消。这可能反映了系统处理 Home 键事件的一些状态和逻辑。







作者: King    时间: 2023-1-17 09:35
本帖最后由 King 于 2023-9-22 10:32 编辑

按行解析,以这种形式
white_list.txt
com.mcdonalds.sok.cn
com.mcdonalds.sok.cn.dev
com.mcdonalds.rom.test
再就是 我们内置那几个包名。
新增的话,远程添加,远程添加,你们是通过 远程app,接收白名单,发广播的形式么?
一个做到系统里面,一个做到data分区里面。action加到data里面去。
adb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd"
广播口令验证adb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg ""
sadb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg "ua.com.streamsoft.pingtools"
sadb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg "com.ayst.stresstest"
sadb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg "com.ccl.factoryapp"

adb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg "com.ccl.updater"
adb shell am broadcast -a cn.mcd.system_pkg.setting_action --es install_pwd "520*#06#Mcd" --es install_pkg "com.tananaev.logcat"
包名添加
/system/etc/white_list.txt

/data/custom/white_list.txt

麦当劳应用每1分钟自己拉向顶层一次,系统检测后台没有麦当劳进程也会拉起麦当劳进程
(1)、BOOT COMPLETED对应的action和uses-permission没有一起添加需要三方应用在AndroidManifest.xml 中写入2)、应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT COMPLETED广播的.(概率出现)(3)、对于android3.1以后版本,如果要应用接收开机广播有两种方法:a).将应用预置到/system/app/目录。
b).安装应用后先启动一次,适用于有Activity的应用
注释:
)OT COMPLETED这个广播比特殊,预置到system/app下面的aok才会通过android intent action.BOOT COMPLETED来开机自
而预置到data/app.vendor/app下面的三方apk,若安装从来没有启动过和被用户手动强制停止它就是处于“stopped state"此应用的信息保存在/datalsystem/users/0/package-restictions.xml中),它的接收器将会无法接收任何广播,无法开机之后自动启动。但是安装这个应用之后只要是有手动去点击下这个apk,下次开机就肯定是会自动启动起来的,也是接收这
个BOOT COMPLETED广播。
2、与此同时系统增加了2个Flag: FLAG INCLUDE STOPPED PACKAGES和FLAG EXCLUDE STOPPED PACKAGES,来标识人intent是否激活处于“stoppedstate”的应用
3、Google允许应用和和后台服务通过给广播intent设置
FLAG INCLUDE STOPPED PACKAGES来唤醒处于“stopped state"的程序,也就是用户自己写的广播inten可以控制这个机制,但是系统自带的广播intent默认都是FLAG EXCLUDE STOPPED PACKAGES,由于不能修改,所以就没法通过系统广播自启动了。
远程工具需要申请SU权限,su已改成ubiot
date 获取当前时间
设置时间
adb shell su 0 date -u 091512342023.56

[backcolor=rgba(0,0,0,var(--tw-bg-opacity))]adb shell su 0 date -u [MMDDhhmm[[CC]YY][.ss]]

其中,MM表示月份,DD表示日期,hh表示小时,mm表示分钟,CC表示世纪(通常为20),YY表示年份,.ss表示秒(可选)。
例如,要将时间设置为2023年9月15日12点34分56秒,你可以运行以下命令:
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][backcolor=rgba(52,53,65,var(--tw-bg-opacity))][size=0.75]bashCopy code
adb shell su 0 date -u 091512342023.56


[backcolor=rgba(0,0,0,var(--tw-bg-opacity))]adb shell am broadcast -a android.intent.action.TIME_SET

这个命令会发送一个广播,模拟用户手动设置时间,从而触发系统检查并同步时间。请注意,这只是一种模拟,它不会自动确定时区。系统仍然需要有网络连接来自动同步时间,而且这个命令的效果可能因设备和Android版本而异。



作者: King    时间: 2023-3-9 10:59
本帖最后由 King 于 2023-3-29 10:57 编辑

adb shell am broadcast -a com.operation.debug --es debug_key "520*#06#Mcd" --es debug_pwd "xxxx"
修改运营调试密码为:520*#06#Mcd
默认密码ccl123456
点击事件,只支持触摸。其他输入设备不支持

状态栏隐藏方式为限制高度为0,修改动态开关状态栏后,需重启生效。

作者: King    时间: 2023-3-9 13:24
本帖最后由 King 于 2023-3-15 17:00 编辑

20230309版本
0.更新内置麦当劳版本
1. 开机启动后,cclup/远程  没有自启动,只有McDonald自启动了,需要点击一次之后再自启。
2.系统运维界面没有恢复,只能重启恢复限制,本身进入调试模式后,再次连点会laucher崩溃。
3.误触或进入debug界面后,未知密码或密码错误后,要有个返回桌面按钮,调整为中文<运维或>者<DevOps>~
4.麦当劳应用 应为内置可卸载,或者更新可覆盖,目前不可覆盖。因此最好设置为可卸载。
5.白名单添加失败,无法安装应用,
6.app 静默安装失效(白名单原因)


su 权限 换成了 ubiot
dumpsys package p > /sdcard/xxx.log远程控制用了系统的UID,所以要一起改,和系统保持一致,所以要添加64位的库
不一致,UID容易混掉,32位/64位的不能互用,我需要试试看。

作者: King    时间: 2023-3-21 16:45
与麦当劳确认的问题:
1,进程已经拉起,但麦当劳应用并未将自己拉到最前端[attach]315[/attach]
2.麦当劳后期会用什么方式推送远程升级。
已内置远程升级广播指令

作者: King    时间: 2023-4-11 15:42
本帖最后由 King 于 2023-5-16 14:51 编辑

adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png D:\ShortCut



cclup 与 cclremote 需要签名且 高版本才能覆盖安装。0104 McDonald 在签名版下有可能有画

adb shell am broadcast -a cn.mcd.system_pkg.op_debug --es switch on/off

打开调试模式

作者: King    时间: 2023-11-20 13:38
本帖最后由 King 于 2023-11-20 13:40 编辑

adb shell getprop | grep -E "ro.product.model|ro.build.display.id|ro.build.version.release|ro.sf.lcd_density|ro.build.version.release|ro.build.type"
一句指令 通查
作者: King    时间: 2024-1-3 11:25
端口占用查找进程
Open command prompt as admin

C:\WINDOWS\system32>netstat -ano | findstr :7895
*** Repeat step 2 until there are no more child process

C:\WINDOWS\system32>wmic process where (ParentProcessId=1091 ) get Caption,ProcessId

Caption ProcessId

cmd.exe 1328

2.a. C:\WINDOWS\system32>wmic process where (ParentProcessId=1328) get Caption,ProcessId

  Caption  ProcessId

  conhost.exe  1128
2.b. repeat this until no further child processes found

-- Then kill all child processes

C:\WINDOWS\system32>taskkill /F /PID 1128 SUCCESS: The process with PID 9500 has been terminated.





netstat -ano | findstr "5037"
wmic process where (ParentProcessId=20816) get Caption,ProcessId

作者: King    时间: 2024-1-16 10:50
要通过ADB设置Android设备的静态IP,可以按照以下步骤进行操作:

确保你的电脑已经安装了ADB工具,并且设备已经开启了USB调试模式。

连接设备到电脑,并在命令行终端中输入以下命令来获取当前网络设置:

adb shell settings get global dhcp_eth0
如果返回值为“1”,表示设备当前使用动态IP地址。如果返回值为“0”,表示设备当前使用静态IP地址。
3. 如果设备当前使用动态IP地址,可以通过以下命令将其设置为静态IP地址:

arduino
adb shell settings put global dhcp_eth0 0
接下来,你需要手动配置静态IP地址。首先,通过以下命令查看物理网卡名称:

bash
adb shell ifconfig
通常,物理网卡名称是“eth0”。
5. 使用以下命令配置IP和子网掩码:

bash
adb shell ifconfig eth0 <IP地址>/<子网掩码位数> up
请将“<IP地址>/<子网掩码位数>”替换为你想要设置的静态IP地址和子网掩码。例如,如果你的静态IP地址为192.168.1.111,子网掩码为24位,则命令如下:

arduino
adb shell ifconfig eth0 192.168.1.111/24 up
配置网关:

bash
adb shell busybox route add default gw <默认网关>
将“<默认网关>”替换为你的默认网关地址。例如:

arduino
adb shell busybox route add default gw 192.168.1.1
如果需要配置DNS服务器,可以使用以下命令进行设置:

bash
adb shell busybox route add dns <DNS服务器地址>
将“<DNS服务器地址>”替换为你想要设置的DNS服务器地址。你可以根据需要添加多个DNS服务器地址,用空格分隔。例如:


作者: King    时间: 2024-1-18 14:04
[attach]350[/attach][attach]349[/attach][attach]348[/attach][attach]347[/attach][attach]346[/attach]

作者: King    时间: 2024-1-24 15:45
本帖最后由 King 于 2024-2-27 14:05 编辑

编译 可执行文件
pyinstaller -F -i D:\Tools\logo.png adbreboot.py
查看app 主activity
adb shell dumpsys activity recents | findstr "intent={"
查看内存
[backcolor=rgba(27, 31, 35, 0.05)]adb shell dumpsys meminfo
[backcolor=rgba(27, 31, 35, 0.05)]查看系统版本名
[backcolor=rgba(27, 31, 35, 0.05)]adb shell getprop ro.build.display.id
[backcolor=rgba(27, 31, 35, 0.05)]

[backcolor=rgba(27, 31, 35, 0.05)]查看 app 版本号
[color=rgba(0, 0, 0, 0.85)]adb shell dumpsys package <package_name> | grep versionName
[color=rgba(0, 0, 0, 0.85)]adb shell dumpsys package <package_name> | findstr versionName


getprop ro.build.date.utc
查询设备编译时间

python systrace.py -b 32768 -t 150 -o mytrace.html gfx input view webview wm am sm audio video camera hal app res dalvik rs bionic
power sched irq freq idle disk mmc load sync workq memreclaim regulators com.hezheng.pos

trace Android 性能




查询设备 mac地址


[color=rgba(0, 0, 0, 0.85)]adb shell cat /sys/class/net/eth0/address
[color=rgba(0, 0, 0, 0.85)]adb shell cat /sys/class/net/wlan0/address
[color=rgba(0, 0, 0, 0.85)]



作者: King    时间: 2024-3-12 14:57
本帖最后由 King 于 2024-3-12 16:05 编辑

//硬件序列号 public static final String SERIAL = getString("ro.serialno");
mac 地址:public static String getEthernetMac(){
    String ethernetMac = null;
    try {
        NetworkInterface NIC = NetworkInterface.getByName("eth0");
        byte[] buf = NIC.getHardwareAddress();
        ethernetMac = byteHexString(buf);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return ethernetMac;
}获取Android设备的IMEI(国际移动设备身份码)
public static String getIMEI(Context context) {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        String deviceId = tm.getDeviceId();
        if (deviceId == null) {
            return "UnKnown";
        } else {
            return deviceId;
       }


作者: King    时间: 2024-3-15 09:19
错误 INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113 通常出现在尝试在Android设备上安装APK文件时,尤其是当APK包含为特定应用二进制接口(ABI)编译的本地库(如.so文件)时。ABI定义了操作系统和应用软件之间的底层接口,它决定了应用如何与处理器交互。

这个错误表明,APK中包含的本地库与设备支持的ABI不兼容。换句话说,APK是为不同的处理器架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)编译的,而你的设备并不支持这些架构。

res=-113 是一个错误代码,通常用于指示一个通用的“不支持”或“不匹配”的情况。

要解决这个问题,你可以尝试以下步骤:

确认设备ABI:首先,你需要知道你的设备支持哪些ABI。这通常可以在设备的开发者选项或系统设置中查看,或者使用ADB工具(Android Debug Bridge)运行 adb shell getprop ro.product.cpu.abi 或 adb shell getprop ro.product.cpu.abilist 命令。

检查APK支持的ABI:确认APK是为哪些ABI编译的。这通常需要解压APK文件并检查lib目录下的内容。如果APK仅包含与你的设备不兼容的ABI的库,则无法安装。

获取正确的APK版本:如果可能,获取一个与你的设备ABI兼容的APK版本。这通常意味着从应用开发者或应用商店获取一个为不同架构编译的版本。

使用兼容的设备:如果你无法获取与你的设备ABI兼容的APK版本,你可能需要使用一个具有兼容ABI的不同设备来安装和运行该应用。

编译本地库:如果你有访问应用的源代码和编译工具,你可以尝试为你的设备ABI编译本地库,并重新打包APK。

请注意,处理这类问题时,了解Android的ABI和架构是非常重要的。如果你不熟悉这些概念,可能需要查阅更多关于Android开发、架构和ABI的文档和教程。
作者: King    时间: 2024-3-15 09:49
本帖最后由 King 于 2024-4-17 17:02 编辑

只有 调试版 固件才能打开串口调试
麦当劳固件 240301  日志控制大小与覆盖
以个数和总大小控制150个 ,每个 30M

机器内部断电,然后再上电,从外壳的缝隙看下红灯和蓝灯的状态;主板供电正常,红灯常亮;系统开机过程中蓝色会闪烁两次,系统开机后如果网络正常,蓝灯会一直闪烁。






欢迎光临 知识库 (http://jonpin.com/) Powered by Runo R&D