mirror of
https://github.com/HighCapable/YukiHookAPI-ProjectBuilder.git
synced 2025-09-07 19:14:09 +08:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
c99d886e70
|
|||
2c0fb88f7d
|
|||
ff71fad415
|
|||
4299a1d04c
|
|||
f95c89f9e4
|
|||
2291639b52
|
|||
fbe50ef494
|
|||
37e550aade
|
|||
55a0390a0f
|
|||
c7e160c2fc
|
|||
023b432c0b
|
|||
33daeaf9e5
|
@@ -1,7 +1,7 @@
|
||||
# YukiHookAPI Project Builder
|
||||
|
||||

|
||||

|
||||

|
||||
[](https://t.me/YukiHookAPI)
|
||||
<br/><br/>
|
||||
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png?raw=true" width = "100" height = "100"/>
|
||||
@@ -79,7 +79,7 @@ npm run package
|
||||
- [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html)
|
||||
|
||||
```
|
||||
Copyright (C) 2019-2022 HighCapable
|
||||
Copyright (C) 2019-2023 HighCapable
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
@@ -95,4 +95,4 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
```
|
||||
|
||||
版权所有 © 2019-2022 HighCapable
|
||||
版权所有 © 2019-2023 HighCapable
|
@@ -1,7 +1,7 @@
|
||||
# YukiHookAPI Project Builder
|
||||
|
||||

|
||||

|
||||

|
||||
[](https://t.me/YukiHookAPI)
|
||||
<br/><br/>
|
||||
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png?raw=true" width = "100" height = "100"/>
|
||||
@@ -80,7 +80,7 @@ npm run package
|
||||
- [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html)
|
||||
|
||||
```
|
||||
Copyright (C) 2019-2022 HighCapable
|
||||
Copyright (C) 2019-2023 HighCapable
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
@@ -96,4 +96,4 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
```
|
||||
|
||||
Copyright © 2019-2022 HighCapable
|
||||
Copyright © 2019-2023 HighCapable
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "yukihookapi-projectbuilder",
|
||||
"productName": "YukiHookAPI Project Builder",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.4",
|
||||
"description": "A Xposed Project Builder by YukiHookAPI",
|
||||
"main": "src/app.js",
|
||||
"scripts": {
|
||||
|
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<!--
|
||||
YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
Copyright (C) 2019-2022 HighCapable
|
||||
Copyright (C) 2019-2023 HighCapable
|
||||
https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
|
||||
This software is non-free but opensource software: you can redistribute it
|
||||
@@ -28,9 +28,9 @@
|
||||
<meta content="no-siteapp">
|
||||
<meta content="light dark" name="color-scheme">
|
||||
<title> </title>
|
||||
<link href="css/mdui.min.css" rel="stylesheet">
|
||||
<link href="render.css" rel="stylesheet">
|
||||
<script src="js/mdui.min.js"></script>
|
||||
<link href="./css/mdui.min.css" rel="stylesheet">
|
||||
<link href="./render.css" rel="stylesheet">
|
||||
<script src="./js/mdui.min.js"></script>
|
||||
</head>
|
||||
<body class="mdui-container-fluid mdui-theme-primary-orange mdui-theme-accent-orange mdui-theme-layout-auto">
|
||||
<div id="root_div" style="font-size:12pt;line-height:150%;padding-top:5pt;padding-left:10pt;padding-right:10pt;display:none">
|
||||
@@ -99,7 +99,7 @@
|
||||
</div>
|
||||
<div class="mdui-textfield" id="new_xshare_prefs_div">
|
||||
<i class="mdui-icon material-icons">style</i>
|
||||
<label class="mdui-textfield-label i18n">{{declarationNewXSharePrefs}}</label>
|
||||
<label class="mdui-textfield-label i18n">{{useNewXSharedPreferences}}</label>
|
||||
<select class="mdui-select" id="new_xshare_prefs_select">
|
||||
<option class="i18n" value="0">{{notConfigure}}</option>
|
||||
<option class="i18n" value="1">{{yesOfConfigure}}</option>
|
||||
@@ -117,7 +117,7 @@
|
||||
onclick="moduleScope.showAddDialog()"
|
||||
style="margin-left: 40px;width: 92%">
|
||||
<i class="mdui-icon material-icons" style="margin-bottom: 4px;margin-right: 4px">add</i>
|
||||
<span class="i18n" style="text-transform: none">{{addApps}}</span>
|
||||
<span class="i18n" style="text-transform: none">{{addNewApp}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div style="margin-top: 15px"></div>
|
||||
@@ -162,15 +162,6 @@
|
||||
<option class="i18n" value="2">{{noOfConfigure}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mdui-textfield">
|
||||
<i class="mdui-icon material-icons">storage</i>
|
||||
<label class="mdui-textfield-label i18n">{{enableYukiHookPrefsBridgeCache}}</label>
|
||||
<select class="mdui-select" id="enable_yprefs_cache_select">
|
||||
<option class="i18n" value="0">{{notConfigureDefYes}}</option>
|
||||
<option class="i18n" value="1">{{yesOfConfigure}}</option>
|
||||
<option class="i18n" value="2">{{noOfConfigure}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mdui-textfield">
|
||||
<i class="mdui-icon material-icons">satellite</i>
|
||||
<label class="mdui-textfield-label i18n">{{enableModuleResourcesCache}}</label>
|
||||
@@ -198,15 +189,6 @@
|
||||
<option class="i18n" value="2">{{noOfConfigure}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mdui-textfield">
|
||||
<i class="mdui-icon material-icons">texture</i>
|
||||
<label class="mdui-textfield-label i18n">{{enableMemberCache}}</label>
|
||||
<select class="mdui-select" id="enable_member_cache_select">
|
||||
<option class="i18n" value="0">{{notConfigureDefYes}}</option>
|
||||
<option class="i18n" value="1">{{yesOfConfigure}}</option>
|
||||
<option class="i18n" value="2">{{noOfConfigure}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="margin-top: 15px"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -216,7 +198,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="mdui-dialog" id="module_scope_dialog" style="max-width: 500px">
|
||||
<div class="mdui-dialog-title i18n">{{addApps}}</div>
|
||||
<div class="mdui-dialog-title i18n">{{addNewApp}}</div>
|
||||
<div>
|
||||
<span class="i18n" style="margin-left: 24px">{{selectScopeAppsOrEnterOnceTip}}</span>
|
||||
<select class="mdui-select" id="module_scope_select" style="margin-left: 26px;margin-top: 10px">
|
||||
@@ -318,5 +300,5 @@
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script src="render.js"></script>
|
||||
<script src="./render.js"></script>
|
||||
</html>
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
@@ -71,11 +71,9 @@ const projectConfigs = {
|
||||
supportResourcesHook: 0,
|
||||
enableDebug: 0,
|
||||
enableDebugLog: 0,
|
||||
enableYPrefsCache: 0,
|
||||
enableResourcesCache: 0,
|
||||
enableModuleStatus: 0,
|
||||
enableYChannel: 0,
|
||||
enableMemberCache: 0
|
||||
},
|
||||
projectDependencies: {
|
||||
gradlePaper: '',
|
||||
@@ -308,11 +306,9 @@ const configForm = {
|
||||
supportResourcesHookSelect: () => valUtils.integerOf($('#support_resources_hook_select option:selected').val()),
|
||||
enableDebugSelect: () => valUtils.integerOf($('#enable_debug_select option:selected').val()),
|
||||
enableDebugLogSelect: () => valUtils.integerOf($('#enable_debug_log_select option:selected').val()),
|
||||
enableYPrefsCacheSelect: () => valUtils.integerOf($('#enable_yprefs_cache_select option:selected').val()),
|
||||
enableResourcesCacheSelect: () => valUtils.integerOf($('#enable_resources_cache_select option:selected').val()),
|
||||
enableModuleStatusSelect: () => valUtils.integerOf($('#enable_module_status_select option:selected').val()),
|
||||
enableYChannelSelect: () => valUtils.integerOf($('#enable_ychannel_select option:selected').val()),
|
||||
enableMemberCacheSelect: () => valUtils.integerOf($('#enable_member_cache_select option:selected').val())
|
||||
enableYChannelSelect: () => valUtils.integerOf($('#enable_ychannel_select option:selected').val())
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -347,11 +343,9 @@ const build = {
|
||||
projectConfigs.yukiHookApiConfig.supportResourcesHook = configForm.supportResourcesHookSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableDebug = configForm.enableDebugSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableDebugLog = configForm.enableDebugLogSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableYPrefsCache = configForm.enableYPrefsCacheSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableResourcesCache = configForm.enableResourcesCacheSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableModuleStatus = configForm.enableModuleStatusSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableYChannel = configForm.enableYChannelSelect();
|
||||
projectConfigs.yukiHookApiConfig.enableMemberCache = configForm.enableMemberCacheSelect();
|
||||
projectConfigs.projectDependencies = {
|
||||
gradlePaper: '',
|
||||
androidGradlePluginVersion: '',
|
||||
@@ -413,13 +407,23 @@ const build = {
|
||||
*/
|
||||
complete: (msg) => {
|
||||
dialogs.packagingProgress.close();
|
||||
|
||||
/** 显示保存为模版对话框 */
|
||||
function showSaveToTemplate() {
|
||||
mdui.confirm(locale.i18n.doYouWantSaveConfigTemplateTip, locale.i18n.notice, () => {
|
||||
build.unlockStatus();
|
||||
configTemplate.createNew();
|
||||
}, () => {
|
||||
build.unlockStatus();
|
||||
page.reload();
|
||||
}, {confirmText: locale.i18n.ok, cancelText: locale.i18n.cancel, modal: true, closeOnEsc: false});
|
||||
}
|
||||
|
||||
mdui.confirm(msg, locale.i18n.buildComplete, () => {
|
||||
ipcRenderer.send('open-complete-project');
|
||||
build.unlockStatus();
|
||||
page.reload();
|
||||
showSaveToTemplate();
|
||||
}, () => {
|
||||
build.unlockStatus();
|
||||
page.reload();
|
||||
showSaveToTemplate();
|
||||
}, {confirmText: locale.i18n.openProject, cancelText: locale.i18n.done, modal: true, closeOnEsc: false});
|
||||
},
|
||||
/**
|
||||
@@ -454,10 +458,10 @@ const projectDepends = {
|
||||
/** 依赖 API 获取地址 */
|
||||
urls: {
|
||||
gradlePaper: 'https://services.gradle.org/distributions',
|
||||
androidGradlePlugin: 'https://developer.android.google.cn/studio/releases/gradle-plugin.html',
|
||||
androidGradlePlugin: 'https://dl.google.com/dl/android/maven2/com/android/application/com.android.application.gradle.plugin/maven-metadata.xml',
|
||||
kotlin: 'https://api.github.com/repos/JetBrains/kotlin/releases',
|
||||
kotlinKsp: 'https://api.github.com/repos/google/ksp/releases',
|
||||
yukiHookApi: 'https://s01.oss.sonatype.org/content/repositories/releases/com/highcapable/yukihookapi/api'
|
||||
yukiHookApi: 'https://api.github.com/repos/fankes/YukiHookAPI/releases'
|
||||
},
|
||||
/** 搜索项目依赖 */
|
||||
search() {
|
||||
@@ -521,21 +525,13 @@ const projectDepends = {
|
||||
findAgpVersion: () => {
|
||||
httpClient.requestDepends('Android Gradle Plugin', projectDepends.urls.androidGradlePlugin, (body) => {
|
||||
dependenciesConfigs.androidGradlePluginVersions = [];
|
||||
$(body).find('h2').each((_, element) => {
|
||||
if (valUtils.startsWithNumber(element.innerText))
|
||||
if (element.innerText.indexOf('(') > 0)
|
||||
dependenciesConfigs.androidGradlePluginVersions.push(element.innerText.split('(')[0].trim());
|
||||
else dependenciesConfigs.androidGradlePluginVersions.push(element.innerText.split('(')[0].trim());
|
||||
});
|
||||
$(body).find('.android-updates-box b').each((_, element) => {
|
||||
if (valUtils.startsWithNumber(element.innerText))
|
||||
if (element.innerText.indexOf('(') > 0)
|
||||
dependenciesConfigs.androidGradlePluginVersions.push(element.innerText.split('(')[0].trim());
|
||||
else dependenciesConfigs.androidGradlePluginVersions.push(element.innerText.split('(')[0].trim());
|
||||
});
|
||||
dependenciesConfigs.androidGradlePluginVersions.sort((a, b) => {
|
||||
return b.localeCompare(a);
|
||||
});
|
||||
const versionsNode = body.getElementsByTagName('version');
|
||||
let versions = [];
|
||||
for (let i = versionsNode.length - 1; i >= 0; i--) {
|
||||
const version = versionsNode[i].innerHTML;
|
||||
if (version.indexOf('-alpha') < 0 && version.indexOf('-beta') < 0 && version.indexOf('-rc') < 0) versions.push(version);
|
||||
}
|
||||
dependenciesConfigs.androidGradlePluginVersions = versions;
|
||||
if (dependenciesConfigs.androidGradlePluginVersions.length > 0)
|
||||
projectDepends.findKotlinVersion();
|
||||
else projectDepends.failure('Android Gradle Plugin', false);
|
||||
@@ -577,16 +573,8 @@ const projectDepends = {
|
||||
findYukiHookApiVersion: () => {
|
||||
httpClient.requestDepends('YukiHookAPI', projectDepends.urls.yukiHookApi, (body) => {
|
||||
dependenciesConfigs.yukiHookApiVersions = [];
|
||||
$(body).find('td').each((_, element) => {
|
||||
if (element.innerText.endsWith('/') && element.innerText.indexOf('fix') < 0)
|
||||
dependenciesConfigs.yukiHookApiVersions.push(element.innerText.replace('/', '').trim());
|
||||
});
|
||||
if (dependenciesConfigs.yukiHookApiVersions.length > 0) {
|
||||
dependenciesConfigs.yukiHookApiVersions.sort((a, b) => {
|
||||
return b.localeCompare(a);
|
||||
});
|
||||
const latestVersion = dependenciesConfigs.yukiHookApiVersions[0];
|
||||
dependenciesConfigs.yukiHookApiVersions = [];
|
||||
const latestVersion = body.length > 0 ? body[0]['tag_name'] : '';
|
||||
if (latestVersion !== '') {
|
||||
dependenciesConfigs.yukiHookApiVersions.push(latestVersion);
|
||||
projectDepends.loaded();
|
||||
} else projectDepends.failure('YukiHookAPI', false);
|
||||
@@ -622,11 +610,9 @@ const configTemplate = {
|
||||
$('#support_resources_hook_select').val(data.yukiHookApiConfig.supportResourcesHook);
|
||||
$('#enable_debug_select').val(data.yukiHookApiConfig.enableDebug);
|
||||
$('#enable_debug_log_select').val(data.yukiHookApiConfig.enableDebugLog);
|
||||
$('#enable_yprefs_cache_select').val(data.yukiHookApiConfig.enableYPrefsCache);
|
||||
$('#enable_resources_cache_select').val(data.yukiHookApiConfig.enableResourcesCache);
|
||||
$('#enable_module_status_select').val(data.yukiHookApiConfig.enableModuleStatus);
|
||||
$('#enable_ychannel_select').val(data.yukiHookApiConfig.enableYChannel);
|
||||
$('#enable_member_cache_select').val(data.yukiHookApiConfig.enableMemberCache);
|
||||
monitor.refresh();
|
||||
moduleScope.refresh(data.basicConfig.moduleScopes);
|
||||
page.snack(locale.format(locale.i18n.configTemplateLoaded, parse.name));
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
@@ -107,28 +107,26 @@ const locale = {
|
||||
"agpVersion": "Android Gradle Plugin Version",
|
||||
"kotlinVersion": "Kotlin Version",
|
||||
"yukiHookApiVersion": "YukiHookAPI Version",
|
||||
"createDefaultActivity": "Create default Activity (with active state)",
|
||||
"createBlankActivity": "Create a blank Activity",
|
||||
"withoutUiComponents": "No UI components required",
|
||||
"createDefaultActivity": "Create Default Activity (with active state)",
|
||||
"createBlankActivity": "Create Blank Activity",
|
||||
"withoutUiComponents": "No UI Components",
|
||||
"appMinApiVersion": "App Min API Version",
|
||||
"appTargetApiVersion": "App Target API Version",
|
||||
"xposedMinApiVersion": "Xposed Min API Version",
|
||||
"targetXposedPlatform": "Target Xposed Platform",
|
||||
"universal": "Universal",
|
||||
"nativeXposed": "Native Xposed",
|
||||
"declarationNewXSharePrefs": "Declaration New XShare Prefs (Xposed Min API ≥ 93 was optional)",
|
||||
"useNewXSharedPreferences": "Use New XSharedPreferences (Xposed Min API ≥ 93 was optional)",
|
||||
"moduleScope": "Module Scope",
|
||||
"addApps": "Add apps",
|
||||
"entryClassName": "Entry class name (When blank use the default value)",
|
||||
"addResourcesHookSupport": "Add Resources Hook support",
|
||||
"debugLogTagName": "Debug log TAG name (Default is YukiHookAPI)",
|
||||
"enableDebugMode": "Enable debug mode",
|
||||
"enableDebugLog": "Enable debug log output",
|
||||
"enableYukiHookPrefsBridgeCache": "Enable YukiHookPrefsBridge key-value caching",
|
||||
"enableModuleResourcesCache": "Enable module Resources caching",
|
||||
"enableModuleStatus": "Enable module activation status listening",
|
||||
"enableYukiHookDataChannel": "Enable YukiHookDataChannel feature",
|
||||
"enableMemberCache": "Enable founded reflection class, method, variable caching",
|
||||
"addNewApp": "Add New App",
|
||||
"entryClassName": "Entry Class Name (When blank use the default value)",
|
||||
"addResourcesHookSupport": "Add Resources Hook Support",
|
||||
"debugLogTagName": "Debug Log TAG Name (Default is YukiHookAPI)",
|
||||
"enableDebugMode": "Enable Debug Mode",
|
||||
"enableDebugLog": "Enable Debug Log Output",
|
||||
"enableModuleResourcesCache": "Enable Module Resources Cache",
|
||||
"enableModuleStatus": "Enable Module Activate Status Listener",
|
||||
"enableYukiHookDataChannel": "Enable YukiHookDataChannel",
|
||||
"selectScopeAppsOrEnterOnceTip": "Please select the app you need to add to the scope from the list",
|
||||
"customize": "Customize",
|
||||
"systemFramework": "System Framework",
|
||||
@@ -178,8 +176,8 @@ const locale = {
|
||||
"close": "Close",
|
||||
"done": "Done",
|
||||
"later": "Later",
|
||||
"notConfigure": "Not configured",
|
||||
"notConfigureDefYes": "Not configured (Default Yes/Enabled)",
|
||||
"notConfigure": "Not Configured",
|
||||
"notConfigureDefYes": "Not Configured (Default Yes/Enabled)",
|
||||
"yesOfConfigure": "Yes/Enabled",
|
||||
"noOfConfigure": "No/Disabled",
|
||||
"version": "Version",
|
||||
@@ -187,6 +185,7 @@ const locale = {
|
||||
"areYouSureRestoreChangeTip": "Are you sure you want to reset all current configs?",
|
||||
"areYouSureClearAllTemplateTip": "Are you sure you want to clear all config template?",
|
||||
"doYouWantLoadConfigTemplateTip": "Do you want to load \"{%1}\"? The current config will be overwritten by the template.",
|
||||
"doYouWantSaveConfigTemplateTip": "Do you need to save the current config as a template for next use? Clicking \"Cancel\" will clear the current config and start creating a new project.",
|
||||
"ruleCheckFailTip": "Rules retrieval failed, please try again.",
|
||||
"networkErrorTip": "A network error occurred, please try again.",
|
||||
"aboutTip": "Helps you quickly create an Xposed project template using YukiHookAPI.",
|
||||
@@ -251,19 +250,17 @@ const locale = {
|
||||
"targetXposedPlatform": "目标 Xposed 平台",
|
||||
"universal": "通用",
|
||||
"nativeXposed": "原生 Xposed",
|
||||
"declarationNewXSharePrefs": "声明 New XShare Prefs (Xposed 最低 API ≥ 93 无需声明)",
|
||||
"useNewXSharedPreferences": "使用 New XSharedPreferences (Xposed 最低 API ≥ 93 无需声明)",
|
||||
"moduleScope": "模块作用域",
|
||||
"addApps": "添加应用",
|
||||
"addNewApp": "添加应用",
|
||||
"entryClassName": "入口类名 (不填使用默认值生成)",
|
||||
"addResourcesHookSupport": "添加 Resources Hook 支持",
|
||||
"debugLogTagName": "调试日志 TAG 名称 (不填默认为 YukiHookAPI)",
|
||||
"enableDebugMode": "启用 Debug 模式",
|
||||
"enableDebugLog": "启用调试日志输出功能",
|
||||
"enableYukiHookPrefsBridgeCache": "启用 YukiHookPrefsBridge 键值缓存功能",
|
||||
"enableModuleResourcesCache": "启用模块 Resources 缓存功能",
|
||||
"enableModuleStatus": "启用模块激活状态监听功能",
|
||||
"enableYukiHookDataChannel": "启用 YukiHookDataChannel 功能",
|
||||
"enableMemberCache": "启用已查找的反射类、方法、变量缓存功能",
|
||||
"selectScopeAppsOrEnterOnceTip": "请从下面的列表中选择你需要添加到作用域中的应用",
|
||||
"customize": "自定义",
|
||||
"systemFramework": "系统框架",
|
||||
@@ -322,6 +319,7 @@ const locale = {
|
||||
"areYouSureRestoreChangeTip": "还原当前所做的全部更改吗?",
|
||||
"areYouSureClearAllTemplateTip": "清空全部已保存的配置模板吗?",
|
||||
"doYouWantLoadConfigTemplateTip": "要加载 \"{%1}\" 吗?当前配置会被模板覆盖。",
|
||||
"doYouWantSaveConfigTemplateTip": "你需要保存当前配置为模版以供下次使用吗?点击“取消”将清空当前配置并开始创建新项目。",
|
||||
"ruleCheckFailTip": "规则检索失败,请再试一次。",
|
||||
"networkErrorTip": "网络发生错误,请再试一次。",
|
||||
"aboutTip": "帮助你快速创建一个使用 YukiHookAPI 打造的 Xposed 项目模板。",
|
||||
@@ -386,19 +384,17 @@ const locale = {
|
||||
"targetXposedPlatform": "ターゲットXposedプラットフォーム",
|
||||
"universal": "ユニバーサル",
|
||||
"nativeXposed": "ネイティブXposed",
|
||||
"declarationNewXSharePrefs": "宣言新しいXShare設定(Xposed最小API≥93宣言は不要)",
|
||||
"useNewXSharedPreferences": "使い New XSharedPreferences (Xposed 最小 API ≥ 93 使いない)",
|
||||
"moduleScope": "モジュールスコープ",
|
||||
"addApps": "アプリを追加",
|
||||
"addNewApp": "アプリを追加",
|
||||
"entryClassName": "エントリクラス名(デフォルトを使用するには空)",
|
||||
"addResourcesHookSupport": "リソースフックのサポートを追加",
|
||||
"debugLogTagName": "デバッググロタグ名(デフォルトはYukiHookAPI)",
|
||||
"enableDebugMode": "デバッグモードを有効にする",
|
||||
"enableDebugLog": "デバッグログ出力を有効にする",
|
||||
"enableYukiHookPrefsBridgeCache": "YukiHookPrefsBridgeのKey-Valueキャッシングを有効にする",
|
||||
"enableModuleResourcesCache": "モジュールリソースのキャッシュを有効にする",
|
||||
"enableModuleStatus": "モジュールのアクティブ化ステータスの監視を有効にする",
|
||||
"enableYukiHookDataChannel": "YukiHookDataChannel機能を有効にする",
|
||||
"enableMemberCache": "クエリされたリフレクションクラス、メソッド、変数キャッシングを有効にする",
|
||||
"selectScopeAppsOrEnterOnceTip": "以下のリストからスコープに追加するアプリを選択してください",
|
||||
"customize": "カスタマイズ",
|
||||
"systemFramework": "システムフレームワーク",
|
||||
@@ -457,6 +453,7 @@ const locale = {
|
||||
"areYouSureRestoreChangeTip": "現在のすべての変更を元に戻しますか",
|
||||
"areYouSureClearAllTemplateTip": "保存されているすべての構成テンプレートをクリアしますか",
|
||||
"doYouWantLoadConfigTemplateTip": "「{%1}」をロードしますか?現在の構成はテンプレートによって上書きされます。",
|
||||
"doYouWantSaveConfigTemplateTip": "次回使用するために現在の構成をテンプレートとして保存する必要がありますか? 「キャンセル」をクリックすると、現在の構成がクリアされ、新しいプロジェクトの作成が開始されます。",
|
||||
"ruleCheckFailTip": "ルールの取得に失敗しました。もう一度やり直してください。",
|
||||
"networkErrorTip": "ネットワークエラーが発生しました。もう一度やり直してください。",
|
||||
"aboutTip": "YukiHookAPIを使用してXposedプロジェクトテンプレートをすばやく作成するのに役立ちます。",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* YukiHookAPI Project Builder - A Xposed Project Builder by YukiHookAPI.
|
||||
* Copyright (C) 2019-2022 HighCapable
|
||||
* Copyright (C) 2019-2023 HighCapable
|
||||
* https://github.com/fankes/YukiHookAPI-ProjectBuilder
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
@@ -150,7 +150,7 @@ const transaction = {
|
||||
type: 'implementation',
|
||||
groupId: 'androidx.core',
|
||||
artifactId: 'core-ktx',
|
||||
version: '1.10.0'
|
||||
version: '1.10.1'
|
||||
},
|
||||
appcompat: {
|
||||
type: 'implementation',
|
||||
@@ -162,7 +162,7 @@ const transaction = {
|
||||
type: 'implementation',
|
||||
groupId: 'com.google.android.material',
|
||||
artifactId: 'material',
|
||||
version: '1.8.0'
|
||||
version: '1.9.0'
|
||||
},
|
||||
constraintlayout: {
|
||||
type: 'implementation',
|
||||
@@ -215,11 +215,9 @@ const transaction = {
|
||||
enable: (isEnabled) => 'isEnable = ' + (isEnabled ? 'true' : 'false')
|
||||
},
|
||||
enableDebug: (isEnabled) => 'isDebug = ' + (isEnabled ? 'true' : 'false'),
|
||||
enableYPrefsCache: (isEnabled) => 'isEnablePrefsBridgeCache = ' + (isEnabled ? 'true' : 'false'),
|
||||
enableResourcesCache: (isEnabled) => 'isEnableModuleAppResourcesCache = ' + (isEnabled ? 'true' : 'false'),
|
||||
enableModuleStatus: (isEnabled) => 'isEnableHookModuleStatus = ' + (isEnabled ? 'true' : 'false'),
|
||||
enableYChannel: (isEnabled) => 'isEnableDataChannel = ' + (isEnabled ? 'true' : 'false'),
|
||||
enableMemberCache: (isEnabled) => 'isEnableMemberCache = ' + (isEnabled ? 'true' : 'false')
|
||||
enableYChannel: (isEnabled) => 'isEnableDataChannel = ' + (isEnabled ? 'true' : 'false')
|
||||
}
|
||||
},
|
||||
'MainActivity.kt': {
|
||||
@@ -350,9 +348,6 @@ const transaction = {
|
||||
if (configs.yukiHookApiConfig.enableDebug !== 0)
|
||||
hookEntryConfigsCode = codeFiles.append(hookEntryConfigsCode,
|
||||
codeFiles['HookEntry.kt'].configs.enableDebug(configs.yukiHookApiConfig.enableDebug === 1));
|
||||
if (configs.yukiHookApiConfig.enableYPrefsCache !== 0)
|
||||
hookEntryConfigsCode = codeFiles.append(hookEntryConfigsCode,
|
||||
codeFiles['HookEntry.kt'].configs.enableYPrefsCache(configs.yukiHookApiConfig.enableYPrefsCache === 1));
|
||||
if (configs.yukiHookApiConfig.enableResourcesCache !== 0)
|
||||
hookEntryConfigsCode = codeFiles.append(hookEntryConfigsCode,
|
||||
codeFiles['HookEntry.kt'].configs.enableResourcesCache(configs.yukiHookApiConfig.enableResourcesCache === 1));
|
||||
@@ -362,9 +357,6 @@ const transaction = {
|
||||
if (configs.yukiHookApiConfig.enableYChannel !== 0)
|
||||
hookEntryConfigsCode = codeFiles.append(hookEntryConfigsCode,
|
||||
codeFiles['HookEntry.kt'].configs.enableYChannel(configs.yukiHookApiConfig.enableYChannel === 1));
|
||||
if (configs.yukiHookApiConfig.enableMemberCache !== 0)
|
||||
hookEntryConfigsCode = codeFiles.append(hookEntryConfigsCode,
|
||||
codeFiles['HookEntry.kt'].configs.enableMemberCache(configs.yukiHookApiConfig.enableMemberCache === 1));
|
||||
hookEntryConfigsCode = hookEntryConfigsCode.trim();
|
||||
if (hookEntryConfigsCode === '') hookEntryConfigsCode = '// Your code here.';
|
||||
let gradleDependenciesCode = '';
|
||||
|
Reference in New Issue
Block a user