上传文件至 /
This commit is contained in:
19
README.md
Normal file
19
README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# **闲鱼ID:窗外听雨 代搭建20**
|
||||
## **x86_64青龙拉库命令**
|
||||
```bash
|
||||
ql repo https://git.xcovo.top/ccovo/miuiauto.git miuiauto.py x86_64|glibc main py|bin|apk
|
||||
```
|
||||
## **恶意下载刷流量封禁IP 若发现大量倒卖刷流量后续将开启白名单机制**
|
||||
### **使用说明**:
|
||||
扫码推荐用小米ai扫描、小米社区、小米浏览器
|
||||
|
||||
配置说明请参见 **[WiKi](https://git.xcovo.top/ccovo/miuiauto/wiki)**
|
||||
### **更新说明**:
|
||||
v1.4.2
|
||||
|
||||
统一常量,合并部分函数,去除废弃代码
|
||||
## **重要声明**:
|
||||
- 反馈问题带整段日志私信我
|
||||
- 项目保持闭源更新,更新完成会上传
|
||||
- 虽然理论上本脚本不会影响账户安全,但您需要自行承担使用本脚本的后果
|
||||
# **倒卖死全家 倒卖死全家 倒卖死全家**
|
||||
BIN
glibc-2.35-r1.apk
Normal file
BIN
glibc-2.35-r1.apk
Normal file
Binary file not shown.
55
glibc.py
Normal file
55
glibc.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Alpine glibc 纯离线自动安装工具
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def run_cmd(cmd):
|
||||
try:
|
||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=30)
|
||||
return result.returncode == 0
|
||||
except:
|
||||
return False
|
||||
|
||||
def main():
|
||||
# 检查权限
|
||||
if os.geteuid() != 0:
|
||||
print("[✗] 需要 root 权限")
|
||||
sys.exit(1)
|
||||
|
||||
# 检查是否已安装
|
||||
if os.path.exists("/usr/glibc-compat/lib/libc.so.6"):
|
||||
print("[✓] glibc 已安装")
|
||||
sys.exit(0)
|
||||
|
||||
# 检查本地文件
|
||||
apk_file = "./glibc-2.35-r1.apk"
|
||||
if not os.path.exists(apk_file):
|
||||
print(f"[✗] 找不到 {apk_file}")
|
||||
sys.exit(1)
|
||||
|
||||
print("[*] 开始离线安装...")
|
||||
|
||||
# 创建密钥目录
|
||||
os.makedirs("/etc/apk/keys", exist_ok=True)
|
||||
|
||||
# 纯离线安装命令(按优先级排序)
|
||||
commands = [
|
||||
f"apk add --allow-untrusted --no-network {apk_file}",
|
||||
f"apk add --allow-untrusted --force-non-repository {apk_file}",
|
||||
f"apk add --allow-untrusted {apk_file}"
|
||||
]
|
||||
|
||||
# 依次尝试安装
|
||||
for cmd in commands:
|
||||
if run_cmd(cmd):
|
||||
print("[✓] glibc 安装成功")
|
||||
sys.exit(0)
|
||||
|
||||
print("[✗] 安装失败")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
BIN
miuiauto-v1.4.2-linux-x86_64-alpine.bin
Normal file
BIN
miuiauto-v1.4.2-linux-x86_64-alpine.bin
Normal file
Binary file not shown.
132
miuiauto.py
Normal file
132
miuiauto.py
Normal file
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import glob
|
||||
|
||||
def log(level, msg):
|
||||
icons = {'INFO': '[*]', 'SUCCESS': '[✓]', 'ERROR': '[✗]', 'WARNING': '[!]'}
|
||||
print(f"{icons.get(level, '[*]')} {msg}")
|
||||
|
||||
def run_cmd(cmd):
|
||||
try:
|
||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
||||
return result.returncode == 0
|
||||
except:
|
||||
return False
|
||||
|
||||
def check_glibc():
|
||||
"""检测 glibc 是否已安装"""
|
||||
log('INFO', "检测 glibc...")
|
||||
|
||||
# 检查关键路径
|
||||
paths = ['/lib/libc.so.6', '/usr/glibc-compat/lib/libc.so.6']
|
||||
for path in paths:
|
||||
if os.path.exists(path):
|
||||
log('SUCCESS', f"glibc 已安装: {path}")
|
||||
return True
|
||||
|
||||
# 检查 apk 包
|
||||
if run_cmd("apk list --installed | grep -q glibc"):
|
||||
log('SUCCESS', "glibc 已通过 apk 安装")
|
||||
return True
|
||||
|
||||
log('WARNING', "未检测到 glibc")
|
||||
return False
|
||||
|
||||
def install_glibc():
|
||||
"""运行 glibc.py 安装脚本"""
|
||||
if not os.path.exists("glibc.py"):
|
||||
log('ERROR', "找不到 glibc.py 脚本")
|
||||
return False
|
||||
|
||||
log('INFO', "运行 glibc.py 安装...")
|
||||
return os.system("python3 glibc.py") == 0
|
||||
|
||||
def find_miuiauto_files():
|
||||
"""查找 miuiauto 相关二进制文件"""
|
||||
log('INFO', "搜索 miuiauto 二进制文件...")
|
||||
|
||||
files = []
|
||||
for pattern in ["*miuiauto*", "*MIUIAUTO*", "*MiuiAuto*"]:
|
||||
files.extend(glob.glob(pattern))
|
||||
|
||||
# 过滤二进制文件
|
||||
binaries = []
|
||||
for f in files:
|
||||
if os.path.isfile(f) and is_binary(f):
|
||||
binaries.append(f)
|
||||
log('INFO', f"找到: {f}")
|
||||
|
||||
return binaries
|
||||
|
||||
def is_binary(file_path):
|
||||
"""检查是否为二进制文件"""
|
||||
try:
|
||||
with open(file_path, 'rb') as f:
|
||||
chunk = f.read(512)
|
||||
return b'\x00' in chunk or chunk.startswith(b'\x7fELF')
|
||||
except:
|
||||
return False
|
||||
|
||||
def run_binary(binary_path):
|
||||
"""添加执行权限并运行二进制文件"""
|
||||
name = os.path.basename(binary_path)
|
||||
log('INFO', f"运行 {name}...")
|
||||
|
||||
# 添加执行权限
|
||||
os.system(f"chmod +x '{binary_path}'")
|
||||
|
||||
# 运行程序
|
||||
print("=" * 40)
|
||||
result = os.system(f"./{name}")
|
||||
print("=" * 40)
|
||||
|
||||
if result == 0:
|
||||
log('SUCCESS', f"{name} 运行完成")
|
||||
else:
|
||||
log('WARNING', f"{name} 退出码: {result}")
|
||||
|
||||
return result == 0
|
||||
|
||||
def main():
|
||||
print("=" * 40)
|
||||
print(" MiuiAuto 自动运行工具")
|
||||
print("=" * 40)
|
||||
|
||||
# 检查权限
|
||||
if os.geteuid() != 0:
|
||||
log('ERROR', "需要 root 权限")
|
||||
log('INFO', "使用: sudo python3 miuiauto.py")
|
||||
return False
|
||||
|
||||
# 1. 检测/安装 glibc
|
||||
if check_glibc():
|
||||
log('SUCCESS', "glibc 已安装,跳过")
|
||||
else:
|
||||
log('INFO', "安装 glibc...")
|
||||
if not install_glibc():
|
||||
log('ERROR', "glibc 安装失败")
|
||||
return False
|
||||
|
||||
# 2. 查找并运行 miuiauto 文件
|
||||
binaries = find_miuiauto_files()
|
||||
if not binaries:
|
||||
log('ERROR', "未找到 miuiauto 二进制文件")
|
||||
return False
|
||||
|
||||
# 3. 运行所有找到的文件
|
||||
for binary in binaries:
|
||||
run_binary(binary)
|
||||
|
||||
log('SUCCESS', "完成!")
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
success = main()
|
||||
sys.exit(0 if success else 1)
|
||||
except KeyboardInterrupt:
|
||||
print("\n")
|
||||
log('WARNING', "用户中断")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user