自动化脚本之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
相关文章
|
2月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
61 3
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
59 15
Android 系统缓存扫描与清理方法分析
|
16天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
46 2
|
18天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
33 3
|
24天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
23天前
|
算法 JavaScript Android开发
|
25天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
26天前
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
68 2
|
29天前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
28 3
|
1月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
29 1