-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpatch_p4a.py
More file actions
50 lines (40 loc) · 1.6 KB
/
Copy pathpatch_p4a.py
File metadata and controls
50 lines (40 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import re
# 1. 定位 Recipe 文件
# 根据之前的路径推断,p4a 应该在这里
project_root = os.path.expanduser("~/文档/bazi/bazi_python")
p4a_root = os.path.join(project_root, ".buildozer/android/platform/python-for-android")
# 寻找 openssl recipe
recipe_path = None
for root, dirs, files in os.walk(p4a_root):
if "openssl" in dirs:
potential_path = os.path.join(root, "openssl", "__init__.py")
if os.path.exists(potential_path):
recipe_path = potential_path
break
if not recipe_path:
print("❌ 找不到 OpenSSL Recipe 文件!请确认 python-for-android 是否安装正确。")
exit(1)
print(f"✅ 找到 Recipe: {recipe_path}")
# 2. 读取并修改内容
with open(recipe_path, "r", encoding="utf-8") as f:
content = f.read()
# 这一步是把网络 URL 替换成本地文件路径
# 这是 absolute path 到刚才用户截图里的文件
local_file_url = "file:///home/ian/文档/bazi/openssl-3.3.1.tar.gz"
# 替换 url = '...'
new_content = re.sub(
r"url\s*=\s*['\"].*?openssl.*['\"]",
f"url = '{local_file_url}'",
content
)
# 移除 checksum (让它不再挑剔指纹)
# 通常是 sha256 = '...' 或者类似
if "sha256 =" in new_content:
print("🔪 移除 checksum 校验...")
new_content = re.sub(r"\s+sha256\s*=\s*['\"].*?['\"]", "", new_content)
# 3. 写回文件
with open(recipe_path, "w", encoding="utf-8") as f:
f.write(new_content)
print(f"✅ 修改完成!已将源地址强制指向: {local_file_url}")
print("🚀 现在重新打包,它会以为自己在下载,实际是秒读本地文件!")