11 Commits
1.0.1 ... 1.0.3

17 changed files with 3871 additions and 4085 deletions

View File

@@ -1,10 +1,10 @@
# YukiHookAPI Project Builder
![Blank](https://img.shields.io/badge/license-AGPL3.0-blue)
![Blank](https://img.shields.io/badge/version-v1.0.1-green)
![Blank](https://img.shields.io/badge/version-v1.0.3-green)
[![Telegram](https://img.shields.io/badge/Follow-Telegram-blue.svg?logo=telegram)](https://t.me/YukiHookAPI)
<br/><br/>
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png" width = "100" height = "100"/>
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png?raw=true" width = "100" height = "100"/>
<br/>
<br/>
帮助你快速创建一个使用 YukiHookAPI 打造的 Xposed 项目模板。
@@ -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

View File

@@ -1,10 +1,10 @@
# YukiHookAPI Project Builder
![Blank](https://img.shields.io/badge/license-AGPL3.0-blue)
![Blank](https://img.shields.io/badge/version-v1.0.1-green)
![Blank](https://img.shields.io/badge/version-v1.0.3-green)
[![Telegram](https://img.shields.io/badge/Follow-Telegram-blue.svg?logo=telegram)](https://t.me/YukiHookAPI)
<br/><br/>
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png" width = "100" height = "100"/>
<img src="https://github.com/fankes/YuKiHookAPI/blob/master/img-src/icon.png?raw=true" width = "100" height = "100"/>
<br/>
<br/>
A Xposed Project Builder by YukiHookAPI.
@@ -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

View File

@@ -1,7 +1,7 @@
{
"name": "yukihookapi-projectbuilder",
"productName": "YukiHookAPI Project Builder",
"version": "1.0.1",
"version": "1.0.3",
"description": "A Xposed Project Builder by YukiHookAPI",
"main": "src/app.js",
"scripts": {
@@ -18,7 +18,7 @@
"@electron-forge/maker-rpm": "^6.0.0-beta.64",
"@electron-forge/maker-squirrel": "^6.0.0-beta.64",
"@electron-forge/maker-zip": "^6.0.0-beta.64",
"electron": "^19.0.7",
"electron": "20.3.9",
"electron-icon-builder": "^2.0.1"
},
"dependencies": {

Binary file not shown.

View File

@@ -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

View File

@@ -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

View File

@@ -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>&nbsp</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">{{enableYukiHookModulePrefsCache}}</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>

View File

@@ -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

View File

@@ -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: '',
@@ -622,11 +616,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));

View File

@@ -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

View File

@@ -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

View File

@@ -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",
"enableYukiHookModulePrefsCache": "Enable YukiHookModulePrefs 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",
@@ -251,19 +249,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": "启用调试日志输出功能",
"enableYukiHookModulePrefsCache": "启用 YukiHookModulePrefs 键值缓存功能",
"enableModuleResourcesCache": "启用模块 Resources 缓存功能",
"enableModuleStatus": "启用模块激活状态监听功能",
"enableYukiHookDataChannel": "启用 YukiHookDataChannel 功能",
"enableMemberCache": "启用已查找的反射类、方法、变量缓存功能",
"selectScopeAppsOrEnterOnceTip": "请从下面的列表中选择你需要添加到作用域中的应用",
"customize": "自定义",
"systemFramework": "系统框架",
@@ -386,19 +382,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": "デバッグログ出力を有効にする",
"enableYukiHookModulePrefsCache": "YukiHookModulePrefsのKey-Valueキャッシングを有効にする",
"enableModuleResourcesCache": "モジュールリソースのキャッシュを有効にする",
"enableModuleStatus": "モジュールのアクティブ化ステータスの監視を有効にする",
"enableYukiHookDataChannel": "YukiHookDataChannel機能を有効にする",
"enableMemberCache": "クエリされたリフレクションクラス、メソッド、変数キャッシングを有効にする",
"selectScopeAppsOrEnterOnceTip": "以下のリストからスコープに追加するアプリを選択してください",
"customize": "カスタマイズ",
"systemFramework": "システムフレームワーク",

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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,19 +150,19 @@ const transaction = {
type: 'implementation',
groupId: 'androidx.core',
artifactId: 'core-ktx',
version: '1.9.0'
version: '1.10.0'
},
appcompat: {
type: 'implementation',
groupId: 'androidx.appcompat',
artifactId: 'appcompat',
version: '1.5.1'
version: '1.6.1'
},
material: {
type: 'implementation',
groupId: 'com.google.android.material',
artifactId: 'material',
version: '1.6.1'
version: '1.8.0'
},
constraintlayout: {
type: 'implementation',
@@ -180,13 +180,13 @@ const transaction = {
type: 'androidTestImplementation',
groupId: 'androidx.test.ext',
artifactId: 'junit',
version: '1.1.3'
version: '1.1.5'
},
androidxTestEspresso: {
type: 'androidTestImplementation',
groupId: 'androidx.test.espresso',
artifactId: 'espresso-core',
version: '3.4.0'
version: '3.5.1'
}
}
},
@@ -215,11 +215,9 @@ const transaction = {
enable: (isEnabled) => 'isEnable = ' + (isEnabled ? 'true' : 'false')
},
enableDebug: (isEnabled) => 'isDebug = ' + (isEnabled ? 'true' : 'false'),
enableYPrefsCache: (isEnabled) => 'isEnableModulePrefsCache = ' + (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 = '';

7806
yarn.lock

File diff suppressed because it is too large Load Diff