自动化脚本之Android系统修改推送

简介: 自动化脚本之Android系统修改推送

Android文件推送重启脚本

脚本功能介绍

这个脚本是用来推送一些文件到Android设备上,并重启设备的。它接受一个参数,就是要推送的文件的编号。它会显示所有可选的文件和对应的功能简介,并让用户选择一个文件。然后,它会列出所有连接的设备,并让用户选择一个设备。接着,它会将选中的文件推送到设备上,并同步数据。最后,它会询问用户是否同意重启设备。

# 注意 !!! 这是power shell脚本 
 
# 设置源码路径
$SOURCE = "V:\rockchip\rk3568_android11\out\target\product\rk3568_r\system\framework\"
# 设置文件和目标路径字典
$FILES_DESTS = @{
    "framework.jar" = "\system\framework\"
    "framework-res.apk" = "\system\framework\"
    "libandroid_servers.so" = "\system\lib\"
    "selinux_policy" = "\"
}
# 设置文件功能简介字典
$DESCRIPTION = @{
    "framework.jar" = "一个压缩文件,包含了Android系统框架层的Java类。"
    "framework-res.apk" = "一个压缩文件,包含了Android系统框架层的资源文件。"
    "libandroid_servers.so" = "一个动态链接库文件,包含了Android系统框架层服务层的native代码。"
    "selinux_policy" = "一个文件,包含了Android系统的安全增强型Linux(SELinux)策略。"
}
# 文件名称数组
$FILES = @("framework.jar", "framework-res.apk", "libandroid_servers.so", "selinux_policy")
# 获取设备的root权限和可写权限
Start-Process -NoNewWindow -FilePath adb -ArgumentList "root"
Start-Process -NoNewWindow -FilePath adb -ArgumentList "connect 192.168.1.64"
Start-Process -NoNewWindow -FilePath adb -ArgumentList "remount"
Start-Process -NoNewWindow -FilePath adb -ArgumentList "connect 192.168.1.64"
# 定义一个函数,用于推送文件到设备上,并显示结果
function push_file {
    param (
        [string]$device,
        [string]$file,
        [string]$dest
    )
    # 推送文件到设备上,并显示结果
    $result = Start-Process -NoNewWindow -FilePath adb -ArgumentList "-s $device push '$SOURCE$file' $dest" -PassThru
    if ($result.ExitCode -eq 0) {
        Write-Host "成功推送了$file 到 $dest"
    } else {
        Write-Host "推送$file 到 $dest 失败"
    }
}
# 打印所有选项和对应的文件功能简介
for ($i=0; $i -lt $FILES.Count; $i++) {
    Write-Host "$($i+1). $($FILES[$i]) ($($DESCRIPTION[$FILES[$i]]))"
}
# 提示用户输入一个选项
$answer = Read-Host -Prompt "请输入你想推送的文件的编号"
$answer = $FILES[$answer-1]
# 列出所有连接的设备
$devices = adb devices | Where-Object {$_ -match "device$"} | ForEach-Object {$_.Split('\t')[0]}
if ($devices -eq $null) {
    Write-Host "没有找到连接的设备。"
    exit 1
}
# 如果只有一个设备,则直接选择该设备
$device = $devices[0]
# 如果有多个设备,让用户选择一个设备
if ($devices.Count -gt 1) {
    Write-Host "找到以下设备:"
    for ($i=0; $i -lt $devices.Count; $i++) {
        Write-Host "$($i+1): $($devices[$i])"
    }
    $index = Read-Host -Prompt "请选择一个设备的编号"
    $device = $devices[$index-1]
}
# 如果该选项存在,则推送对应的文件
if ($FILES_DESTS.ContainsKey($answer)) {
    push_file $device $answer $FILES_DESTS[$answer]
} else {
    Write-Host "输入的编号不正确。"
}
# 同步数据并重启设备
Start-Process -NoNewWindow -FilePath adb -ArgumentList "-s $device shell sync"
$confirm = Read-Host -Prompt "你是否同意重启设备?(Y/N)"
if ($confirm -eq "Y") {
    Start-Process -NoNewWindow -FilePath adb -ArgumentList "-s $device reboot"
}

使用示例

要运行这个脚本,需要在终端中输入:

push_file.sh

然后就可以看到类似下面的输出:

1. framework.jar (一个压缩文件,包含了Android系统框架层的Java类。)
2. framework-res.apk (一个压缩文件,包含了Android系统框架层的资源文件。)
3. libandroid_servers.so (一个动态链接库文件,包含了Android系统框架层服务层的native代码。)
4. selinux_policy (一个文件,包含了Android系统的安全增强型Linux(SELinux)策略。)
请输入你想推送的文件的编号: 2
找到以下设备:
1: 192.168.1.64:5555
2: emulator-5554
请选择一个设备的编号: 1
成功推送了framework-res.apk 到 \system\framework\
你是否同意重启设备?(Y/N): Y
相关文章
|
6天前
|
Android开发
Android 如何将定制的Launcher成为系统中唯一的Launcher
Android 如何将定制的Launcher成为系统中唯一的Launcher
19 2
|
1天前
|
运维 监控 持续交付
构建高效自动化运维系统:策略与实践
【5月更文挑战第20天】 随着信息技术的飞速发展,传统的IT运维模式已难以满足快速变化的业务需求。本文聚焦于如何构建一个高效的自动化运维系统,旨在探讨自动化运维的最佳实践、工具选择和实施策略。文中不仅阐述了自动化运维的必要性和优势,还提供了详细的架构设计和关键技术点分析,以期帮助企业实现运维效率的最大化。
|
2天前
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维系统:DevOps与AI的融合
【5月更文挑战第19天】 在数字化转型的浪潮中,企业IT运维面临着日益复杂的挑战。传统的手动运维方式已经无法满足快速迭代和高可靠性的需求。本文探讨了如何通过结合DevOps理念和人工智能(AI)技术,构建一个高效的自动化运维系统。文章首先回顾了DevOps的核心原则及其在自动化运维中的应用,接着分析了AI如何增强故障预测、智能决策和自动化流程的能力。最后,提出了一个综合DevOps与AI技术的自动化运维框架,并讨论了其在实际部署中的优势和潜在挑战。
|
3天前
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维系统的五大关键步骤
【5月更文挑战第18天】在数字化转型的浪潮中,高效的自动化运维系统成为企业保障IT服务管理效率和稳定性的核心。本文将探讨构建自动化运维系统的五个关键步骤,包括需求分析、设计蓝图、选择合适的工具、实施与集成以及持续优化。通过这些步骤的实施,企业能够实现故障快速响应、资源优化配置和成本有效控制,从而提升整体的IT服务质量和用户满意度。
|
4天前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
|
5天前
|
算法 Java API
Groovy脚本基础全攻略,android面试算法题
Groovy脚本基础全攻略,android面试算法题
|
5天前
|
Android开发
Android获取当前系统日期和时间的三种方法
Android获取当前系统日期和时间的三种方法
16 4
|
6天前
|
存储 缓存 Android开发
Android系统分区与升级
Android系统分区与升级
22 4
|
6天前
|
安全 搜索推荐 物联网
构建未来:基于Android的智能物联网家居系统
【5月更文挑战第15天】 在快速发展的数字化时代,智能物联网(IoT)技术与移动操作系统的结合正在塑造未来家居的生活方式。特别是Android平台,以其开放性、灵活性和广泛的用户基础,成为智能家居创新的理想选择。本文将探讨如何利用Android系统构建一个高效、安全且易于扩展的智能家居控制系统,涵盖系统设计、关键技术实现以及可能面临的挑战。通过分析具体案例,我们旨在为开发者和企业提供一套可行的解决方案蓝图,以促进智能家居领域的进一步发展。
|
6天前
|
运维 监控 安全
构建高效自动化运维系统:基于容器技术的持续集成与持续部署(CI/CD)实践
【5月更文挑战第14天】 随着DevOps文化的深入人心,持续集成与持续部署(CI/CD)已成为现代软件工程不可或缺的组成部分。本文将探讨如何利用容器技术,尤其是Docker和Kubernetes,构建一个高效、可扩展的自动化运维系统。通过深入分析CI/CD流程的关键组件,我们将讨论如何整合这些组件以实现代码从提交到生产环境的快速、无缝过渡。文章还将涉及监控、日志管理以及安全性策略等运维考量,为读者提供一个全面的自动化运维解决方案蓝图。

热门文章

最新文章