diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index 5d4f3f55..1f583fab 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -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 方法的路径参数支持相对路径", diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java index ea9ff5cf..3941eb9c 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java @@ -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 PERMISSION_ALIAS = new HashMap<>() {{ + put("shizuku", "moe.shizuku.manager.permission.API_V23"); + put("termux", "com.termux.permission.RUN_COMMAND"); + }}; + private final Map 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); diff --git a/version.properties b/version.properties index 0f610966..dec680cc 100644 --- a/version.properties +++ b/version.properties @@ -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