要获取不同版本的下载链接需要通过三次点击才能进入到有下载链接的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版本