脚本-抽取配置文件

news2024/11/19 1:52:56

要获取不同版本的下载链接需要通过三次点击才能进入到有下载链接的Html页,想写爬虫的话需要使用selenium去实现点击功能,然后这个网站比较乱,所以根据Xpath也不太好写(可能得写好多异常处理),所以我选择手动获取下载链接。
姐,我现在手动收集了187个链接,这些包括了所有的大类。我先把这些文件的config收集好发给你。
这个图就是代表三个大类。每个类里面也包含了很多不同版本的ROM压缩包。
在这里插入图片描述

要获取不同版本的下载链接需要通过三次点击才能进入到有下载链接的Html页,想写爬虫的话需要使用selenium去实现点击功能,然后这个网站比较乱,所以根据Xpath也不太好写(可能得写好多异常处理),所以我选择手动获取下载链接。
在这里插入图片描述

学习

echo "定义一个字符串变量"
 
str="hello"
 
echo "等值比较"
 
if [ "${str}" = "hello" ]; then
    echo "字符串相等"
else
    echo "字符串不相等"
fi

关键字if与括弧之间、括弧与双引号之间、双引号和等号之间必须加空格;这个非常重要,当初排查问题的时候参考了一个站内大佬的笔记

Linux服务器间的数据交互

现在有两个IP不同的服务器节点,可以用scp命令交互。
在这里插入图片描述

对比仅UI不同的线刷包

在这里插入图片描述
在这里插入图片描述

脚本整理

download

# !/bin/sh
cat ~/project/xiaomi/link.txt | while read line
do
    echo "$line"
    wget -P ~/project/xiaomi/download/ ${line}
done


tar or unzip

# !/bin/sh
for file in $(ls ~/project/download/)
do
    # echo $file
    filename=${file}
    tarname=${filename:0-3}
    targzname=${filename:0-6}
    zipname=${filename:0-3}
    if [ "${tarname}" = "tgz" ]; then
        tar -zxvf ~/project/download/${file} -C ~/project/unzip/ 

    elif [ "${targzname}" = "tar.gz" ]; then
        tar -zxvf ~/project/download/${file} -C ~/project/unzip/

    elif [ "${zipname}" = "zip" ]; then
        unzip -d ~/project/unzip/${file} ~/project/download/${file}
    fi
    rm -r ~/project/download/${file}
done

extract boot.img

# !/bin/sh
boot_path='~/project/xiaomi/boot'

for file2 in $(ls ~/project/xiaomi/unzip/)
do
    cd ~/project/xiaomi/unzip/"${file2}"
    for boot in $(find ./ -name boot.img)
    do
        mkdir ~/project/xiaomi/boot/${file2}
        cp ${boot} ~/project/xiaomi/boot/${file2}/
    done
done

extract-ikconfig

# !/bin/sh
for file in $(ls ~/project/boot)
do
    ~/tool/imjtool.ELF64 ~/project/boot/${file}/boot.img extract
    if [ -e ./extracted/kernelimage.gz ]; then
        mv ./extracted/kernelimage.gz ./extracted/kernelimage
    fi
    ~/tool/extract-ikconfig ~/project/extracted/kernelimage > ~/project/config_file/${file}.txt
    rm -rf ~/project/extracted
done

rename txt to config

import os, sys


path = os.path.dirname(os.path.abspath(__file__))
def rename(path, num=0):
    # 对目录下的文件进行遍历
    num = 0
    for file in os.listdir(path):
        num = num+1
        # print(file)
        newName = file.replace(".txt", ".config")

        os.rename(os.path.join(path, file), os.path.join(path, newName))
    print(num)
rename(str(path)+'/config_file')

文件名的含义

plato_ru_global_images_V13.0.4.0.SLQRUXM_20220920.0000.00_12.0_global.txt
1.plato是手机型号的代号,小米12T
2.若_global_images代表全球版,若前面有字符
ru 代表俄罗斯版
tw代表台湾版本
若只出现images则代表国行版
3.V13.0.3.0.SLQTWXM代表MIUI版本
4.20221008.0000.00代表出版时间
5.12.0代表Android版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字化门店| 奶茶店智慧管理系统

奶茶如今已经成为年轻女性的常饮品,比如蜜雪冰城、奈雪的茶之类的品牌线下门店,门店量的庞大覆盖,使得每天都是人来人往,但碰上优惠活动日或节假日,很多人需要排很长的队才能买到,同时在店内坐的消费者如果…

[附源码]java毕业设计血库管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

网页期末作业 基于HTML+CSS中国传统节日【清明节】带论文8000字

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

关于python内置数据类型的小练习

文章目录练习-两数之和求不重复子串的长度练习-两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同…

Typescript 中根据某个字段判断其他字段是否必传

背景 我在使用 Typescript 的时候遇到过这样的一个问题。我有这样的一个组件 前面的两个搜索框是根据参数判断是否要隐藏的,Typescript 的类型定义就是这样的 type BasicItem {label: stringvalue: number } type BrandItem BasicItem & {}type Pruduction…

Linux19 --- 线程同步、用户级和内核级线程、互斥锁、信号量、读写锁、条件变量

一、线程同步 线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直到该线程完成操作,其他线程才能操作,也就是协同步调,让线程按预定的先后次序进行运行。 线程同步的方法有…

Windows OpenGL 图像透明度调节

目录 一.OpenGL 图像透明度 1.原始图片2.效果演示 二.OpenGL 图像透明度源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES …

Arduino开发实例-SR04T/SR04M 防水超声波传感器驱动

SR04T/SR04M 防水超声波传感器驱动 本文展示如何通过SR04T 防水超声波传感器获取距离数据。 本文还将讨论该模块的工作原理以及将数据处理。 1、SR04T/SR04M介绍 SR04T/SR04M超声波测距模块可提供21cm-600cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括收发一体的…

python 的cut与qcut

我想要实现多分类,样本不是均匀分布的 使用cut,可以实现自定义范围分类 使用qcut,可以实现每个 分类的个数大致相等 cut 与 qcut方法使用 参考 https://www.cnblogs.com/Motimer/p/16006313.html 1、cut方法 pandas.cut(x, bins, rightT…

x86和arm框架下的centOS

1 CPU架构分为 X86 , ARM ,MIPS , power , ia64 AMD64 X86_64 x64 ,是64位的CPU 架构,区分ARM64 1.x86 : 复制指令集cisc,高性能,速度快,完成量打(内存,硬盘&#xf…

NoSQLBooster4MongoDB - 用SQL查询MongoDB

最好的MongoDB的客户端工具–NoSQLBooster。NoSQLBooster立志做“The Smartest IDE for MongoDB”。 使用 mb.runSQLQuery()方法,能把SQL语句翻译成MongoDB的查询语句. 借助适用于 MongoDB 的 NoSQLBooster,您可以针对 MongoDB 运行 SQL SELECT 查询。 SQL 支持包…

离线安装PostgreSQL数据库(v13.4版本)

记录:328 场景:在CentOS 7.9操作系统上,离线安装PostgreSQL数据库,版本:v13.4。主要是PostgreSQL的编译、安装、启动、登录、设置远程可登录、创建数据库、创建数据库用户等。 版本: 操作系统&#xff1…

转铁蛋白修饰硬脂酸/棕榈酸 TF-PEG-C18 Stearic Acid/C16, palmitic acid

产品名称:转铁蛋白-聚乙二醇-硬脂酸 英文名称:TF-PEG-C18 Stearic Acid 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体,取决于分子量 PEG分子量可选:350、550、750、1k、2k…

G. Good Key, Bad Key(暴力)

Problem - 1703G - Codeforces 有n个箱子。第i个箱子里有ai个硬币。你需要按顺序打开所有n个箱子,从箱子1到箱子n。 你可以用两种类型的钥匙来打开箱子。 一把好钥匙,使用它需要花费k个硬币。 坏钥匙,不需要花费任何金币,但会将…

操作系统:进程的创建(fork函数)、进程的替换(exec函数)

文章目录1.进程的创建2.进程的替换3.进程的阻塞1.进程的创建 ①调用fork函数的进程为父进程,调用后生成一个子进程; ②创建子进程成功时,父进程中fork函数的返回值是子进程的进程号PID; ③创建子进程失败时,父进程中fo…

使用.NET简单实现一个Redis的高性能克隆版(一)

正文 我遇到了这个项目,它的目标是成为一个比Redis有着更好性能和更易用的克隆版。我发现它很有趣,因为它主要的卖点之一就是它是在多线程模式下运行(而不是像Redis那样是单线程)。他们使用memtier_benchmark(Redis项…

shell命令以及运行原理

shell命令以及运行原理shell命令以及运行原理shell命令以及运行原理 Linux严格意义上来说说的是操作系统,我们把操作系统称之为“内核”(kernel),但是我们用户是不会直接与kernel直接打交道的,我们是通过一个“外壳程…

D. Fixed Point Guessing(二分+交互式问题)

Problem - D - Codeforces 这是一个互动问题。 最初,有一个数组a[1,2,...,n],其中n是一个奇数正整数。陪审团选择了n-12对不相干的元素,然后对这些元素进行交换。例如,如果a[1,2,3,4,5],对1↔4和3↔5进行互换&#xf…

吐血经验,怎么把OAK相机的镜头模组拆下来?

消息快播:OpenCV众筹了一款ROS2机器人rae,开源、功能强、上手简单。来瞅瞅~ 编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查…

[AI] LRTA*(K) 搜索算法

LRTA*[k]搜索算法 一、理论二、实际应用步骤一、理论 LRTA*(K) 是LRTA* 算法的进阶版,关于LRTA*的回顾请点此处, LRTA*(K) 论文请点此处 该文作者把LRTA算法归为 无界传播(unbounded propagation, 中文用谷歌翻译的。。。囧),LRTA(K)归为有…