惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

博客园 - 翻滚的咸鱼

Ops权限行为记录源码解析 TaskView方案框架原理 视频解码器问题 常用命令 扫光动效 引导记录 性能优化 View共享动效 Launcher 卡片框架多模块集成 Launcher 桌面源码笔记二 Launcher 桌面源码笔记一 氛围灯动态屏保取色方案二 氛围灯动态屏保取色方案一 自定义最近任务管理器 anr问题 TV RecyclerView 焦点处理笔记 多类型适配器 多屏下字体自动取色 阻尼拉伸方案 图片区域点击处理 RecyclerView设置默认焦点跟多页面焦点抢占 TV RecyclerView 滑动后操作保持落焦在左侧第一个View Fragment翻盖动效 当个View下,使用Drawable入场退场动画
常用脚本文件
翻滚的咸鱼 · 2025-10-30 · via 博客园 - 翻滚的咸鱼

adb install

@echo off
mode con cols=108 lines=5

adb wait-for-device
adb install -r -t -g -d  %1

installApk.bat

同步系统时间

@echo off
mode con cols=108 lines=5

color f2


adb root
adb shell adbd1234
adb remount
adb disable-verity

adb shell date "%Date:~0,4%-%Date:~5,2%-%Date:~8,2%"
adb shell date "%time:~0,2%:%time:~3,2%"
adb remount

pause

setTime.bat

打开系统设置

adb root
adb shell adbd1234
adb shell FFFFFFFF
adb shell am start -W com.android.car.settings/.Settings_Launcher_Homepage
pause

startsettings.bat

将xls表格转换成json数据,json格式为{ "list": [{"id": 0,"r": 0,"g": 84,"b": 255},...]}

import pandas as pd
import json
import os
import sys
import subprocess
import importlib.util

def check_dependencies():
    """检查并安装必要的依赖库"""
    required_libs = ['pandas', 'openpyxl']
    missing_libs = []
    
    for lib in required_libs:
        if importlib.util.find_spec(lib) is None:
            missing_libs.append(lib)
    
    if missing_libs:
        print("正在安装必要的Python库...")
        try:
            # 安装缺失的库
            subprocess.check_call([sys.executable, "-m", "pip", "install"] + missing_libs)
            print("库安装完成!")
            return True
        except subprocess.CalledProcessError:
            print(f"安装失败,请手动运行: pip install {' '.join(missing_libs)}")
            return False
    return True

def excel_to_json(file_path):
    try:
        # 读取Excel文件
        df = pd.read_excel(file_path)
        
        # 转换为列表格式
        result_list = []
        for index, row in df.iterrows():
            # 根据您的需求映射列名
            item = {
                "id": int(row.iloc[0]) if pd.notna(row.iloc[0]) else 0,
                "r": int(row.iloc[1]) if pd.notna(row.iloc[1]) else 0,
                "g": int(row.iloc[2]) if pd.notna(row.iloc[2]) else 0,
                "b": int(row.iloc[3]) if pd.notna(row.iloc[3]) else 0
            }
            result_list.append(item)
        
        # 创建最终的JSON结构
        final_json = {
            "list": result_list
        }
        
        # 生成输出文件名
        base_name = os.path.splitext(file_path)[0]
        output_file = f"{base_name}.json"
        
        # 保存为JSON文件
        with open(output_file, 'w', encoding='utf-8') as f:
            json.dump(final_json, f, indent=2, ensure_ascii=False)
        
        print(f"转换成功!输出文件: {output_file}")
        return True
        
    except Exception as e:
        print(f"转换失败: {str(e)}")
        return False

def main():
    # 检查依赖
    if not check_dependencies():
        input("按回车键退出...")
        return
    
    if len(sys.argv) < 2:
        print("请拖拽Excel文件到此Python文件上")
        input("按回车键退出...")
        return
    
    file_path = sys.argv[1]
    
    if not os.path.isfile(file_path):
        print(f"错误:不是文件: {file_path}")
        input("按回车键退出...")
        return
    
    if not (file_path.lower().endswith('.xls') or file_path.lower().endswith('.xlsx')):
        print(f"错误:不是Excel文件: {os.path.basename(file_path)}")
        input("按回车键退出...")
        return
    
    print(f"正在处理文件: {os.path.basename(file_path)}")
    excel_to_json(file_path)
    input("\n按回车键退出...")

if __name__ == "__main__":
    main()

convert_xls_to_json.py

image

将表格中前四列转换成json格式,直接将表格文件拖到脚本文件即可

删除文件夹

adb wait-for-device
adb root
adb remount
adb shell setprop persist.log.tag V
adb shell settings put system pointer_location 1
adb shell settings put system show_touches 1
adb shell rm -rf /mnt/log/ANDROID
adb shell rm -rf /data/vendor/nfs/mount/qlog/qlog
adb shell rm -rf /data/vendor/nfs/mount/qlog/vip
adb shell rm -rf /data/vendor/nfs/mount/fota/dhu/log
adb shell rm -rf /data/vendor/nfs/mount/fota/fota/log
pause

清除日志.bat

Monkey脚本

@echo on

cd /d %~dp0
adb root
adb remount

adb shell setprop persist.logd.size 64M
adb shell setprop persist.log.tag V
adb shell setprop log.tag.stats_log V

::adb shell "monkey --pkg-blacklist-file /data/whitelist.txt --pct-syskeys 0 --pct-touch 30 --pct-rotation 0 --ignore-crashes --ignore-native-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --throttle 250 -s 2 -v -v -v 900000000 2>/sdcard/error.txt 1>/sdcard/info.txt &"

adb shell "monkey --pct-syskeys 0 --pct-touch 30 --pct-rotation 0 --ignore-crashes --ignore-native-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --throttle 250 -s 2 -v -v -v 900000000 2>/sdcard/error.txt 1>/sdcard/info.txt &"


pause

Monkey_Bench.bat

@echo off


echo rm /data/start.tag...
adb shell "rm /data/start.tag"

echo kill monkey...
adb shell "ps -ef | grep monkey | grep -v grep | awk '{print $2}' | xargs kill -9"
adb shell "ps -ef | grep monkey | grep -v grep"

echo kill dmesg...
adb shell "ps -ef | grep dmesg | grep -v grep | awk '{print $2}' | xargs kill -9"
adb shell "ps -ef | grep dmesg | grep -v grep

setlocal

REM 获取当前日期和时间的各个组成部分
for /F "tokens=1-6 delims=/:. " %%a in ("%date% %time%") do (
  set "year=%%c"
  set "month=%%a"
  set "day=%%b"
  set "hour=%%d"
  set "minute=%%e"
  set "second=%%f"
)

REM 格式化日期和时间
set time=%day%%year%%hour%%minute%%second%

REM 输出格式化后的时间
echo 当前时间是:%time%


md .\%time%
md .\%time%\mirror_files

set string=./%time%

echo 检查是否连接设备.....
adb wait-for-device

echo 设备连接成功,开始抓取.....
adb root

echo ----- 开始抓取日志和镜像文件 -----

adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
for /f "delims=" %%t in ('adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1 |awk '{print $2}' |awk -F '/' '{print $1}'"') do set str=%%t
echo 进程名:%str% 
for /f "delims=" %%i in ('adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1 |awk '{print $2}' |awk -F '/' '{print $1}' |xargs pidof"') do set pid=%%i
echo 进程号:%pid% 
echo 版本信息:
adb shell "pm dump %str% | grep version"

adb shell dumpsys meminfo > %string%/mirror_files/dumpmeminfo.txt
adb shell dumpsys meminfo %str% > %string%/mirror_files/dumpmeminfo_%str%.txt
adb shell showmap %pid% > %string%/mirror_files/showmap.txt
adb pull proc/%pid%/smaps  %string%/mirror_files
adb shell am dumpheap %str% /data/local/tmp/%str%.hprof
adb pull /data/local/tmp/%str%.hprof  %string%/mirror_files

echo ----- 日志和镜像文件抓取结束 -----
echo ----------------------------------

echo ----- 开始抓取Android日志 -----
adb pull /data/misc/logd %string%
adb pull /sdcard/error.txt %string%
adb pull /sdcard/info.txt %string%
adb pull /data/system/dropbox %string%
adb pull /data/tombstones %string%
adb pull /data/anr %string%
adb pull /data/pmem_state %string%
adb pull /data/dmesg.log %string%
adb pull /data/slog.log %string%
adb pull /data/pmem-state_qnx %string%
adb pull /data/systeminfo %string%
adb pull /data/monkeytest %string%
adb pull /data/screencap %string%

echo 日志保存路径: %string%

echo ----- 抓取结束! -----
exit

MonkeyStop_LogUpload.bat