Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
A
appzxhy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
appzxhy
Commits
6e4f52f4
Commit
6e4f52f4
authored
Jun 27, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[打包]打包发现的问题
parent
ef7b6034
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
102 deletions
+52
-102
GetInfo.py
app/GetInfo.py
+48
-101
BaseActivity.kt
app/src/main/java/com/dumpster/cleaner/base/BaseActivity.kt
+1
-0
JunkCleanActivity.kt
...n/java/com/dumpster/cleaner/ui/clean/JunkCleanActivity.kt
+3
-1
No files found.
app/GetInfo.py
View file @
6e4f52f4
...
@@ -4,6 +4,30 @@ import os
...
@@ -4,6 +4,30 @@ import os
import
re
import
re
def
load_mapping
():
"""Load the obfuscation mapping from mapping.json"""
try
:
with
open
(
"mapping.json"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
mapping
=
json
.
load
(
f
)
return
mapping
.
get
(
"class"
,
{})
except
(
FileNotFoundError
,
json
.
JSONDecodeError
)
as
e
:
print
(
f
"Warning: Could not load mapping.json - {e}"
)
return
{}
def
find_obfuscated_file
(
directory
,
original_name
,
mapping
):
"""Find the obfuscated file name in the given directory"""
obfuscated_name
=
mapping
.
get
(
original_name
,
original_name
)
for
root
,
dirs
,
files
in
os
.
walk
(
directory
):
for
file
in
files
:
if
file
==
f
"{obfuscated_name}.kt"
or
file
==
f
"{original_name}.kt"
:
file_path
=
os
.
path
.
join
(
root
,
file
)
print
(
f
"Found config file: {file_path}"
)
return
file_path
print
(
f
"Could not find {obfuscated_name}.kt or {original_name}.kt in {directory}"
)
return
None
def
fetch_app_info
(
pkg
):
def
fetch_app_info
(
pkg
):
"""向指定 URL 发送请求并获取内容"""
"""向指定 URL 发送请求并获取内容"""
base_url
=
"http://data-api.zhangxinhulian.com/anonymous/getappinfoAndroid"
base_url
=
"http://data-api.zhangxinhulian.com/anonymous/getappinfoAndroid"
...
@@ -28,7 +52,6 @@ def fetch_app_info(pkg):
...
@@ -28,7 +52,6 @@ def fetch_app_info(pkg):
"idMaxOpen"
:
"ID_MAX_OPEN"
,
"idMaxOpen"
:
"ID_MAX_OPEN"
,
"idMaxBanner"
:
"ID_MAX_BANNER"
,
"idMaxBanner"
:
"ID_MAX_BANNER"
,
"idMaxReward"
:
"ID_MAX_REWARD"
,
"idMaxReward"
:
"ID_MAX_REWARD"
,
# "idMaxReward": "ID_ADMOB_APPLICATION"
}
}
try
:
try
:
...
@@ -37,28 +60,20 @@ def fetch_app_info(pkg):
...
@@ -37,28 +60,20 @@ def fetch_app_info(pkg):
data
=
response
.
json
()
data
=
response
.
json
()
if
data
.
get
(
"status"
)
==
200
and
data
.
get
(
"result"
)
and
data
[
"result"
]
.
get
(
"data"
):
if
data
.
get
(
"status"
)
==
200
and
data
.
get
(
"result"
)
and
data
[
"result"
]
.
get
(
"data"
):
app_data
=
data
[
"result"
][
"data"
]
app_data
=
data
[
"result"
][
"data"
]
# 设置 packageName 为用户输入的 pkg
app_data
[
"packageName"
]
=
pkg
app_data
[
"packageName"
]
=
pkg
# 将 null 转换为 ""
app_data
=
{
key
:
(
value
if
value
is
not
None
else
""
)
for
key
,
value
in
app_data
.
items
()}
app_data
=
{
key
:
(
value
if
value
is
not
None
else
""
)
for
key
,
value
in
app_data
.
items
()}
# 打印从服务器获取到的数据字段
print
(
"从服务器获取到的数据字段值:"
)
print
(
"从服务器获取到的数据字段值:"
)
for
key
,
value
in
app_data
.
items
():
for
key
,
value
in
app_data
.
items
():
print
(
f
"{key}: {value}"
)
print
(
f
"{key}: {value}"
)
# 替换 key
transformed_data
=
{
key_mapping
.
get
(
key
,
key
):
value
for
key
,
value
in
app_data
.
items
()}
transformed_data
=
{
key_mapping
.
get
(
key
,
key
):
value
for
key
,
value
in
app_data
.
items
()}
# 写入 JSON 文件
with
open
(
"applicationid.json"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
"applicationid.json"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
json
.
dump
(
transformed_data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
json
.
dump
(
transformed_data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
with
open
(
"applicationid.json"
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
"applicationid.json"
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
json_data
=
json
.
load
(
file
)
json_data
=
json
.
load
(
file
)
# 打印 applicationid.json 文件中的数据
print
(
"
\n
applicationid.json 中的数据:"
)
print
(
"
\n
applicationid.json 中的数据:"
)
print
(
json_data
)
print
(
json_data
)
print
(
"数据已成功以 JSON 格式写入 applicationid.json 文件。"
)
print
(
"数据已成功以 JSON 格式写入 applicationid.json 文件。"
)
...
@@ -70,57 +85,40 @@ def fetch_app_info(pkg):
...
@@ -70,57 +85,40 @@ def fetch_app_info(pkg):
print
(
f
"请求发生错误: {e}"
)
print
(
f
"请求发生错误: {e}"
)
def
find_global_config
(
directory
):
"""遍历目录查找 GlobalConfig.kt 文件"""
for
root
,
dirs
,
files
in
os
.
walk
(
directory
):
if
'GlobalConfig.kt'
in
files
:
file_path
=
os
.
path
.
join
(
root
,
'GlobalConfig.kt'
)
print
(
f
"找到 GlobalConfig.kt 文件: {file_path}"
)
return
file_path
print
(
"未找到 GlobalConfig.kt 文件"
)
return
None
def
update_global_config
(
file_path
,
json_data
):
def
update_global_config
(
file_path
,
json_data
):
"""更新 GlobalConfig.kt 文件中的变量值"""
"""更新 GlobalConfig.kt 文件中的变量值"""
try
:
try
:
with
open
(
file_path
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
with
open
(
file_path
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
content
=
file
.
read
()
content
=
file
.
read
()
# 获取 json_data 中的 adsApplicationId
ads_application_id
=
json_data
.
get
(
"adsApplicationId"
)
ads_application_id
=
json_data
.
get
(
"adsApplicationId"
)
if
ads_application_id
:
if
ads_application_id
:
# 使用正则表达式查找并替换 ID_ADMOB_APPLICATION 的值
pattern
=
r'\binline\s+val\s+ID_ADMOB_APPLICATION\s+get\(\)\s*=\s*.*'
pattern
=
r'\binline\s+val\s+ID_ADMOB_APPLICATION\s+get\(\)\s*=\s*.*'
replacement
=
f
'inline val ID_ADMOB_APPLICATION get() = "{ads_application_id}"'
replacement
=
f
'inline val ID_ADMOB_APPLICATION get() = "{ads_application_id}"'
content
=
re
.
sub
(
pattern
,
replacement
,
content
)
content
=
re
.
sub
(
pattern
,
replacement
,
content
)
facebook_app_id
=
json_data
.
get
(
"facebookAppId"
)
facebook_app_id
=
json_data
.
get
(
"facebookAppId"
)
if
facebook_app_id
:
if
facebook_app_id
:
# 使用正则表达式查找并替换 ID_ADMOB_APPLICATION 的值
pattern
=
r'\binline\s+val\s+ID_FACEBOOK\s+get\(\)\s*=\s*.*'
pattern
=
r'\binline\s+val\s+ID_FACEBOOK\s+get\(\)\s*=\s*.*'
replacement
=
f
'inline val ID_FACEBOOK get() = "{facebook_app_id}"'
replacement
=
f
'inline val ID_FACEBOOK get() = "{facebook_app_id}"'
content
=
re
.
sub
(
pattern
,
replacement
,
content
)
content
=
re
.
sub
(
pattern
,
replacement
,
content
)
# 遍历 JSON 数据中的每个变量名,并在 GlobalConfig.kt 中更新对应的值
for
var_name
,
var_value
in
json_data
.
items
():
for
var_name
,
var_value
in
json_data
.
items
():
# 替换 const val 的值
pattern_const
=
rf
'
\b
const
\
s+val
\
s+{re.escape(var_name)}
\
s*=
\
s*.*'
pattern_const
=
rf
'
\b
const
\
s+val
\
s+{re.escape(var_name)}
\
s*=
\
s*.*'
replacement_const
=
f
'const val {var_name} = "{var_value}"'
replacement_const
=
f
'const val {var_name} = "{var_value}"'
content
=
re
.
sub
(
pattern_const
,
replacement_const
,
content
)
content
=
re
.
sub
(
pattern_const
,
replacement_const
,
content
)
pattern_inline
=
rf
'
\b
inline
\
s+val
\
s+{re.escape(var_name)}
\
s+get
\
(
\
)
\
s*=
\
s*.*'
pattern_inline
=
rf
'
\b
inline
\
s+val
\
s+{re.escape(var_name)}
\
s+get
\
(
\
)
\
s*=
\
s*.*'
replacement_inline
=
f
'inline val {var_name} get() = "{var_value}"'
replacement_inline
=
f
'inline val {var_name} get() = "{var_value}"'
content
=
re
.
sub
(
pattern_inline
,
replacement_inline
,
content
)
content
=
re
.
sub
(
pattern_inline
,
replacement_inline
,
content
)
# 将修改后的内容写回到 GlobalConfig.kt 文件
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
content
)
file
.
write
(
content
)
print
(
"
\n
GlobalConfig.kt
文件已成功更新。"
)
print
(
"
\n
配置
文件已成功更新。"
)
except
Exception
as
e
:
except
Exception
as
e
:
print
(
f
"更新文件时发生错误: {e}"
)
print
(
f
"更新文件时发生错误: {e}"
)
def
update_google_services
(
json_data
):
def
update_google_services
(
json_data
):
"""更新 google-services.json 文件内容"""
"""更新 google-services.json 文件内容"""
try
:
try
:
...
@@ -133,21 +131,17 @@ def update_google_services(json_data):
...
@@ -133,21 +131,17 @@ def update_google_services(json_data):
if
google_services_raw
:
if
google_services_raw
:
try
:
try
:
# 如果是 URL,就去下载内容
if
google_services_raw
.
startswith
((
"https://"
,
"http://"
)):
if
google_services_raw
.
startswith
(
"https://"
)
or
google_services_raw
.
startswith
(
"http://"
):
print
(
f
"检测到 URL,开始下载: {google_services_raw}"
)
print
(
f
"检测到 URL,开始下载: {google_services_raw}"
)
response
=
requests
.
get
(
google_services_raw
,
verify
=
False
)
response
=
requests
.
get
(
google_services_raw
,
verify
=
False
)
response
.
raise_for_status
()
response
.
raise_for_status
()
google_services_raw
=
response
.
text
google_services_raw
=
response
.
text
# 反序列化
google_services_data
=
json
.
loads
(
google_services_raw
)
google_services_data
=
json
.
loads
(
google_services_raw
)
# 写入文件
with
open
(
google_services_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
google_services_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
json
.
dump
(
google_services_data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
json
.
dump
(
google_services_data
,
file
,
ensure_ascii
=
False
,
indent
=
4
)
# 打印写入内容
with
open
(
google_services_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
google_services_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
written_data
=
file
.
read
()
written_data
=
file
.
read
()
print
(
"
\n
google-services.json 文件已更新,写入的内容如下:"
)
print
(
"
\n
google-services.json 文件已更新,写入的内容如下:"
)
...
@@ -183,7 +177,6 @@ def update_google_services(json_data):
...
@@ -183,7 +177,6 @@ def update_google_services(json_data):
def
update_build_gradle
(
json_data
):
def
update_build_gradle
(
json_data
):
"""更新 build.gradle 或 build.gradle.kts 文件中的 applicationId 值"""
"""更新 build.gradle 或 build.gradle.kts 文件中的 applicationId 值"""
try
:
try
:
# 查找 build.gradle.kts 文件
build_gradle_kts_path
=
os
.
path
.
join
(
os
.
getcwd
(),
"build.gradle.kts"
)
build_gradle_kts_path
=
os
.
path
.
join
(
os
.
getcwd
(),
"build.gradle.kts"
)
build_gradle_path
=
os
.
path
.
join
(
os
.
getcwd
(),
"build.gradle"
)
build_gradle_path
=
os
.
path
.
join
(
os
.
getcwd
(),
"build.gradle"
)
build_file_path
=
None
build_file_path
=
None
...
@@ -197,31 +190,26 @@ def update_build_gradle(json_data):
...
@@ -197,31 +190,26 @@ def update_build_gradle(json_data):
print
(
"未找到 build.gradle 或 build.gradle.kts 文件。"
)
print
(
"未找到 build.gradle 或 build.gradle.kts 文件。"
)
return
return
# 从 applicationid.json 中获取 PACKAGE_NAME 的值
package_name
=
json_data
.
get
(
"PACKAGE_NAME"
)
package_name
=
json_data
.
get
(
"PACKAGE_NAME"
)
if
package_name
:
if
package_name
:
with
open
(
build_file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
build_file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
content
=
file
.
read
()
content
=
file
.
read
()
# 根据文件名选择不同的正则表达式
if
build_file_path
.
endswith
(
".kts"
):
if
build_file_path
.
endswith
(
".kts"
):
# 匹配 applicationId 的值,无论其格式如何(字符串或变量引用)
pattern
=
r'applicationId\s*=\s*[^\s]+'
pattern
=
r'applicationId\s*=\s*[^\s]+'
replacement
=
f
'applicationId = "{package_name}"'
replacement
=
f
'applicationId = "{package_name}"'
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
else
:
else
:
# build.gradle
pattern
=
r'applicationId\s*\'[^\']+\''
pattern
=
r'applicationId\s*\'[^\']+\''
# 匹配单引号字符串
replacement
=
f
'applicationId
\'
{package_name}
\'
'
replacement
=
f
'applicationId
\'
{package_name}
\'
'
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
if
pattern
not
in
content
:
if
new_content
==
content
:
# 如果单引号没有匹配到则匹配双引号字符串
pattern
=
r'applicationId\s*"[^"]+"'
pattern
=
r'applicationId\s*"[^"]+"'
replacement
=
f
'applicationId "{package_name}"'
replacement
=
f
'applicationId "{package_name}"'
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
# 写入更新后的内容
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
with
open
(
build_file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
build_file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
new_content
)
file
.
write
(
new_content
)
# 打印更新后的内容
print
(
f
"
\n
{os.path.basename(build_file_path)} 文件已更新,更新后的内容如下:"
)
print
(
f
"
\n
{os.path.basename(build_file_path)} 文件已更新,更新后的内容如下:"
)
print
(
new_content
)
print
(
new_content
)
else
:
else
:
...
@@ -234,23 +222,19 @@ def update_build_gradle(json_data):
...
@@ -234,23 +222,19 @@ def update_build_gradle(json_data):
def
update_android_manifest
(
pkg
):
def
update_android_manifest
(
pkg
):
'''更新 AndroidManifest.xml 文件中的 Facebook App ID'''
'''更新 AndroidManifest.xml 文件中的 Facebook App ID'''
try
:
try
:
# 查找 AndroidManifest.xml 文件
file_path
=
os
.
path
.
join
(
'.'
,
'src'
,
'main'
,
'AndroidManifest.xml'
)
file_path
=
os
.
path
.
join
(
'.'
,
'src'
,
'main'
,
'AndroidManifest.xml'
)
if
os
.
path
.
exists
(
file_path
):
if
os
.
path
.
exists
(
file_path
):
print
(
f
"找到 AndroidManifest.xml 文件: {file_path}"
)
print
(
f
"找到 AndroidManifest.xml 文件: {file_path}"
)
# 从 applicationid.json 中获取 facebookAppId 的值
facebookAppId
=
json_data
.
get
(
"facebookAppId"
)
facebookAppId
=
json_data
.
get
(
"facebookAppId"
)
if
facebookAppId
:
if
facebookAppId
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
content
=
file
.
read
()
content
=
file
.
read
()
# 替换 facebookAppId 的值,无论其格式如何(字符串或变量引用)
pattern
=
r'<meta-data\s*android:name="com\.facebook\.sdk\.ApplicationId"\s*android:value\s*=\s*[^\s]+'
pattern
=
r'<meta-data\s*android:name="com\.facebook\.sdk\.ApplicationId"\s*android:value\s*=\s*[^\s]+'
replacement
=
f
'<meta-data android:name="com.facebook.sdk.ApplicationId"
\n
android:value = "{facebookAppId}"'
replacement
=
f
'<meta-data android:name="com.facebook.sdk.ApplicationId"
\n
android:value = "{facebookAppId}"'
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
# 写入更新后的内容
with
open
(
file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
new_content
)
file
.
write
(
new_content
)
...
@@ -259,7 +243,6 @@ def update_android_manifest(pkg):
...
@@ -259,7 +243,6 @@ def update_android_manifest(pkg):
else
:
else
:
print
(
"applicationid.json 中未找到 facebookAppId 的值。"
)
print
(
"applicationid.json 中未找到 facebookAppId 的值。"
)
# 从 applicationid.json 中获取 adsApplicationId 的值
adsApplicationId
=
json_data
.
get
(
"adsApplicationId"
)
adsApplicationId
=
json_data
.
get
(
"adsApplicationId"
)
if
adsApplicationId
:
if
adsApplicationId
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
...
@@ -269,7 +252,6 @@ def update_android_manifest(pkg):
...
@@ -269,7 +252,6 @@ def update_android_manifest(pkg):
replacement
=
f
'<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
\n
android:value = "{adsApplicationId}"'
replacement
=
f
'<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
\n
android:value = "{adsApplicationId}"'
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
)
# 写入更新后的内容
with
open
(
file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
new_content
)
file
.
write
(
new_content
)
...
@@ -278,18 +260,17 @@ def update_android_manifest(pkg):
...
@@ -278,18 +260,17 @@ def update_android_manifest(pkg):
else
:
else
:
print
(
"applicationid.json 中未找到 adsApplicationId 的值。"
)
print
(
"applicationid.json 中未找到 adsApplicationId 的值。"
)
# 从 applicationid.json 中获取 PACKAGE_NAME 的值
PACKAGE_NAME
=
json_data
.
get
(
"PACKAGE_NAME"
)
PACKAGE_NAME
=
json_data
.
get
(
"PACKAGE_NAME"
)
if
PACKAGE_NAME
:
if
PACKAGE_NAME
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
file_path
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
content
=
file
.
read
()
content
=
file
.
read
()
# 更宽松的正则表达式模式
pattern
=
r"""
pattern
=
r"""
android:permission="com\.google\.android\.c2dm\.permission\.SEND"\s*>
android:permission="com\.google\.android\.c2dm\.permission\.SEND"\s*>
\s*<intent-filter>\s*
\s*<intent-filter>\s*
\s*<action\s+android:name="com\.google\.firebase\.MESSAGING_EVENT"\s*/>\s*
\s*<action\s+android:name="com\.google\.firebase\.MESSAGING_EVENT"\s*/>\s*
\s*<action\s+android:name="com\.google\.android\.c2dm\.intent\.RECEIVE"\s*/>\s*
\s*<action\s+android:name="com\.google\.android\.c2dm\.intent\.RECEIVE"\s*/>\s*
\s*<category\s+android:name="([^"]+)"\s*/>\s*
# 捕获 category 值
\s*<category\s+android:name="([^"]+)"\s*/>\s*
\s*</intent-filter>
\s*</intent-filter>
"""
"""
replacement
=
f
"""
replacement
=
f
"""
...
@@ -301,47 +282,17 @@ def update_android_manifest(pkg):
...
@@ -301,47 +282,17 @@ def update_android_manifest(pkg):
</intent-filter>
</intent-filter>
"""
"""
# 执行替换操作,使用 re.VERBOSE 忽略空白和注释,使用 re.DOTALL 匹配换行
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
,
flags
=
re
.
VERBOSE
|
re
.
DOTALL
)
new_content
=
re
.
sub
(
pattern
,
replacement
,
content
,
flags
=
re
.
VERBOSE
|
re
.
DOTALL
)
# 判断是否匹配到并进行了替换
if
new_content
!=
content
:
if
new_content
!=
content
:
print
(
"替换成功,内容已更新。"
)
print
(
"替换成功,内容已更新。"
)
# 将修改后的内容写回文件
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
with
open
(
file_path
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
new_content
)
file
.
write
(
new_content
)
else
:
else
:
print
(
"没有找到匹配的内容,文件未更改。"
)
print
(
"没有找到匹配的内容,文件未更改。"
)
# pattern = r"""
print
(
"
\n
AndroidManifest.xml 文件已更新,c2dm.permission.SEND 更新后的内容如下:"
)
# android:permission="com.google.android.c2dm.permission.SEND">
print
(
new_content
)
# <intent-filter>(.*?)<category android:name="\s*([^"]+)"
# """
#
# replacement = f"""
# android:permission="com.google.android.c2dm.permission.SEND">
# <intent-filter>\1
# <category android:name="{PACKAGE_NAME}"
# """
#
# #pattern = r'android:permission="com.google.android.c2dm.permission.SEND">'
# #r'<intent-filter>'
# #r'<action android:name="com.google.firebase.MESSAGING_EVENT" />'
# #r'<action android:name="com.google.android.c2dm.intent.RECEIVE" />'
#
# #r'<category android:name\s*=\s*[^\s]+'
# #replacement = f' android:permission="com.google.android.c2dm.permission.SEND">'
# #f'<intent-filter>'
# #f'<action android:name="com.google.firebase.MESSAGING_EVENT" />'
# #f'<action android:name="com.google.android.c2dm.intent.RECEIVE" /> android:name = "{PACKAGE_NAME}"'
# new_content = re.sub(pattern, replacement, content)
# 写入更新后的内容
with
open
(
file_path
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
new_content
)
print
(
"
\n
AndroidManifest.xml 文件已更新,c2dm.permission.SEND 更新后的内容如下:"
)
print
(
new_content
)
else
:
else
:
print
(
"applicationid.json 中未找到 PACKAGE_NAME 的值。"
)
print
(
"applicationid.json 中未找到 PACKAGE_NAME 的值。"
)
...
@@ -352,30 +303,26 @@ def update_android_manifest(pkg):
...
@@ -352,30 +303,26 @@ def update_android_manifest(pkg):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
# Load obfuscation mapping
mapping
=
load_mapping
()
pkg_input
=
input
(
"请输入 pkg 的值:"
)
pkg_input
=
input
(
"请输入 pkg 的值:"
)
if
pkg_input
.
strip
():
if
pkg_input
.
strip
():
fetch_app_info
(
pkg_input
.
strip
())
fetch_app_info
(
pkg_input
.
strip
())
#
查找 GlobalConfig.kt 文件
#
Find the config file (either original or obfuscated name)
java_src_dir
=
os
.
path
.
join
(
os
.
getcwd
(),
"src"
,
"main"
,
"java"
)
java_src_dir
=
os
.
path
.
join
(
os
.
getcwd
(),
"src"
,
"main"
,
"java"
)
global_config_path
=
find_global_config
(
java_src_dir
)
config_file_path
=
find_obfuscated_file
(
java_src_dir
,
"GlobalConfig"
,
mapping
)
#
读取 applicationid.json 文件并获取数据
#
Read applicationid.json and update files
if
global_config
_path
and
os
.
path
.
exists
(
"applicationid.json"
):
if
config_file
_path
and
os
.
path
.
exists
(
"applicationid.json"
):
with
open
(
"applicationid.json"
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
with
open
(
"applicationid.json"
,
"r"
,
encoding
=
"utf-8"
)
as
file
:
json_data
=
json
.
load
(
file
)
json_data
=
json
.
load
(
file
)
# 更新 GlobalConfig.kt 文件
update_global_config
(
config_file_path
,
json_data
)
update_global_config
(
global_config_path
,
json_data
)
# 更新 google-services.json 文件
update_google_services
(
json_data
)
update_google_services
(
json_data
)
# 更新 build.gradle.kts 文件
update_build_gradle
(
json_data
)
update_build_gradle
(
json_data
)
# 更新 AndroidManifest.xml
update_android_manifest
(
json_data
[
"PACKAGE_NAME"
])
update_android_manifest
(
json_data
[
"PACKAGE_NAME"
])
else
:
else
:
print
(
"pkg 不能为空!"
)
print
(
"pkg 不能为空!"
)
\ No newline at end of file
app/src/main/java/com/dumpster/cleaner/base/BaseActivity.kt
View file @
6e4f52f4
...
@@ -160,6 +160,7 @@ abstract class BaseActivity<VB : ViewBinding>(
...
@@ -160,6 +160,7 @@ abstract class BaseActivity<VB : ViewBinding>(
// intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
// intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
or
Intent
.
FLAG_ACTIVITY_SINGLE_TOP
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
or
Intent
.
FLAG_ACTIVITY_SINGLE_TOP
)
startActivity
(
intent
)
startActivity
(
intent
)
finish
()
}
}
var
dialog
:
Dialog
?
=
null
var
dialog
:
Dialog
?
=
null
...
...
app/src/main/java/com/dumpster/cleaner/ui/clean/JunkCleanActivity.kt
View file @
6e4f52f4
...
@@ -136,7 +136,9 @@ class JunkCleanActivity : BaseActivity<ActivityJunkCleanBinding>(ActivityJunkCle
...
@@ -136,7 +136,9 @@ class JunkCleanActivity : BaseActivity<ActivityJunkCleanBinding>(ActivityJunkCle
setClean
()
setClean
()
AdsMgr
.
showInsert
(
this
,
true
,
showCallBack
=
object
:
AdsShowCallBack
()
{
AdsMgr
.
showInsert
(
this
,
true
,
showCallBack
=
object
:
AdsShowCallBack
()
{
override
fun
next
()
{
override
fun
next
()
{
binding
.
idShouzhi
.
visibility
=
View
.
VISIBLE
if
(
total
>
0L
)
{
binding
.
idShouzhi
.
visibility
=
View
.
VISIBLE
}
}
}
})
})
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment