6.6.3 - Alpha5 - 脚本项目配置 permissions 选项支持宽松匹配及别名兼容

This commit is contained in:
SuperMonster003
2025-05-26 00:47:30 +08:00
parent 68e19da35b
commit 8359429868
3 changed files with 29 additions and 7 deletions

View File

@@ -39,13 +39,14 @@
"improvement": [
"布局分析支持控件隐藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_",
"布局分析菜单添加渐变分隔线实现一定程度的功能分组",
"脚本项目配置文件 project.json 支持 permissions 选项 (by [wirsnow](https://github.com/wirsnow)) _[`pr #391`](http://pr.autojs6.com/391)_ _[`issue #362`](http://issues.autojs6.com/362)_",
"打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_",
"主题色扩充适配范围并支持更多控件类型",
"主页抽屉在横向屏幕或超宽屏幕的宽度适应性",
"关于应用与开发者页面增加水平布局及小屏布局适配",
"设置页面对话框相关设置支持 \"使用默认值\" 菜单选项",
"文件管理器浮动按钮展开后点击其他区域可自动隐藏",
"代码编辑器格式化代码支持 `??`, `?.`, `??=` 等运算符",
"打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_",
"意图相关操作 (编辑/查看/安装/发送/播放等) 增加操作异常提示",
"webview 元素的 url 属性支持相对路径",
"ImageWrapper#saveTo 方法的路径参数支持相对路径",

View File

@@ -72,7 +72,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
@@ -126,6 +128,11 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa
add(new Pair<>("V3", "Android 9.0+"));
}};
private final Map<String, String> PERMISSION_ALIAS = new HashMap<>() {{
put("shizuku", "moe.shizuku.manager.permission.API_V23");
put("termux", "com.termux.permission.RUN_COMMAND");
}};
private final Map<String, Integer> SUPPORTED_PERMISSIONS = new TreeMap<>() {{
put("android.permission.ACCESS_COARSE_LOCATION", R.string.text_permission_desc_access_coarse_location);
put("android.permission.ACCESS_FINE_LOCATION", R.string.text_permission_desc_access_fine_location);
@@ -193,8 +200,8 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa
put("com.android.launcher.permission.INSTALL_SHORTCUT", R.string.text_permission_desc_install_shortcut);
put("com.android.launcher.permission.UNINSTALL_SHORTCUT", R.string.text_permission_desc_uninstall_shortcut);
put("com.android.vending.BILLING", R.string.text_permission_desc_billing);
put("com.termux.permission.RUN_COMMAND", R.string.text_permission_desc_termux_run_command);
put("moe.shizuku.manager.permission.API_V23", R.string.text_permission_desc_shizuku);
put(PERMISSION_ALIAS.get("termux"), R.string.text_permission_desc_termux_run_command);
put(PERMISSION_ALIAS.get("shizuku"), R.string.text_permission_desc_shizuku);
}};
EditText mSourcePathView;
@@ -547,7 +554,21 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa
int marginInPixels = (int) (8 * getResources().getDisplayMetrics().density);
checkBox.setPadding(marginInPixels, 0, 0, 0);
if (mProjectConfig != null) {
boolean checked = mProjectConfig.getPermissions().stream().anyMatch(p -> ("android.permission." + p.toUpperCase()).equals(permission));
boolean checked = mProjectConfig.getPermissions().stream().anyMatch(p -> {
var lc = p.toLowerCase(Locale.ROOT);
var uc = p.toUpperCase(Locale.ROOT);
if (p.equalsIgnoreCase(permission)) {
return true;
}
if (permission.contains("android")) {
String refined = uc.substring(uc.lastIndexOf(".") + 1).replaceAll("\\W", "_");
return Objects.equals(refined, permission.substring(permission.lastIndexOf(".") + 1));
}
if (PERMISSION_ALIAS.containsKey(lc)) {
return Objects.equals(permission, PERMISSION_ALIAS.get(lc));
}
return false;
});
checkBox.setChecked(checked);
} else {
checkBox.setChecked(false);

View File

@@ -1,5 +1,5 @@
#Sun May 25 20:32:48 CST 2025
BUILD_TIME=1748176368036
#Sun May 25 23:31:03 CST 2025
BUILD_TIME=1748187063682
COMPILE_SDK_VERSION=35
IMAGE_QUANT_CMAKE_VERSION=3.22.1
IMAGE_QUANT_NDK_VERSION=26.1.10909125
@@ -19,6 +19,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
TARGET_SDK_VERSION=35
TARGET_SDK_VERSION_INRT=29
VERSION_BUILD=3254
VERSION_BUILD=3255
VERSION_NAME=6.6.3 Alpha5
VSCODE_EXT_REQUIRED_VERSION=1.0.8