Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion module/service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ for kpm in $KPNDIR/kpm/*.kpm; do
kpatch kpm load "$kpm" || rm -f "$kpm"
done

[ -n "$REHOOK" ] && [ "$REHOOK" -ge 0 ] && [ "$REHOOK" -le 2 ] && kpatch rehook $REHOOK
if [ -n "$REHOOK" ]; then
if [ "$REHOOK" = "enable" ] || [ "$REHOOK" = "disable" ]; then
kpatch rehook $REHOOK
else
rm -f "$KPNDIR/rehook"
fi
fi

until [ "$(getprop sys.boot_completed)" = "1" ]; do
sleep 1
Expand Down
2 changes: 1 addition & 1 deletion module/status.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ if kpatch hello >/dev/null 2>&1; then
[ -z "$KPM_COUNT" ] && KPM_COUNT=0

REHOOK_MODE="$(kpatch rehook_status 2>/dev/null | awk '{print $NF}')"
[ -z "$REHOOK_MODE" ] && REHOOK_MODE="0"
[ -z "$REHOOK_MODE" ] && REHOOK_MODE="enabled"

string="$active | kpmodule: $KPM_COUNT 💉 | rehook: $REHOOK_MODE 🪝"
fi
Expand Down
15 changes: 5 additions & 10 deletions webui/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,21 +151,16 @@
<div id="settings-page" class="page">
<div class="page-content">
<div class="list-group">
<div class="list-item installed-only" id="rehook">
<label class="list-item installed-only" id="rehook">
<md-ripple></md-ripple>
<md-icon><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="M440-120q-100 0-170-70t-70-170v-240l200 200-56 57-64-64v47q0 66 47 113t113 47q66 0 113-47t47-113v-127q-36-14-58-44.5T520-600q0-38 22-68.5t58-44.5v-167h80v167q36 14 58 44.5t22 68.5q0 38-22 69t-58 44v127q0 100-70 170t-170 70Zm200-440q17 0 28.5-11.5T680-600q0-17-11.5-28.5T640-640q-17 0-28.5 11.5T600-600q0 17 11.5 28.5T640-560Zm0-40Z"/></svg></md-icon>
<div class="list-item-content">
<div slot="headline" data-i18n="title_rehook_mode">Rehook Mode</div>
<div slot="headline" data-i18n="title_rehook_syscall">Rehook Syscall</div>
</div>
<div class="list-item-trailing" id="rehook-menu-container">
<div class="menu-text" id="rehook-text">Disable</div>
<md-menu id="rehook-menu" anchor="rehook" anchor-corner="start-end" menu-corner="start-end">
<md-menu-item data-i18n="label_rehook_mode_disable">Disable</md-menu-item>
<md-menu-item data-i18n="label_rehook_mode_target">Target</md-menu-item>
<md-menu-item data-i18n="label_rehook_mode_minimal">Minimal</md-menu-item>
</md-menu>
<div class="list-item-trailing">
<md-switch selected></md-switch>
</div>
</div>
</label>
<div class="list-item" id="language">
<md-ripple></md-ripple>
<md-icon><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="m476-80 182-480h84L924-80h-84l-43-122H603L560-80h-84ZM160-200l-56-56 202-202q-35-35-63.5-80T190-640h84q20 39 40 68t48 58q33-33 68.5-92.5T484-720H40v-80h280v-80h80v80h280v80H564q-21 72-63 148t-83 116l96 98-30 82-122-125-202 201Zm468-72h144l-72-204-72 204Z" /></svg></md-icon>
Expand Down
49 changes: 23 additions & 26 deletions webui/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ import * as excludeModule from './page/exclude.js';
export const modDir = '/data/adb/modules/KPatch-Next';
export const persistDir = '/data/adb/kp-next';

const rehookMode = [
"disable", // 0
"target", // 1
"minimal" // 2
]

export let MAX_CHUNK_SIZE = 96 * 1024;

async function updateStatus() {
Expand Down Expand Up @@ -62,38 +56,41 @@ async function reboot(reason = "") {

async function initRehook() {
const rehook = document.getElementById('rehook');
const rehookMenu = rehook.querySelector('md-menu');
const mode = await updateRehookStatus();
if (mode) rehook.onclick = () => rehookMenu.open = !rehookMenu.open;
rehookMenu.querySelectorAll('md-menu-item').forEach((item, index) => {
item.onclick = () => {
setRehookMode(index);
rehook.click();
}
const rehookRipple = rehook.querySelector('md-ripple');
const rehookSwitch = rehook.querySelector('md-switch');
const isEnabled = await updateRehookStatus();
if (isEnabled === null) {
rehookRipple.disabled = true;
rehookSwitch.disabled = true;
return;
}
rehookSwitch.addEventListener('change', () => {
setRehookMode(rehookSwitch.selected);
});
}

async function updateRehookStatus() {
const rehook = document.getElementById('rehook');
const rehookText = rehook.querySelector('.menu-text');
const rehookRipple = rehook.querySelector('md-ripple');
const rehookSwitch = rehook.querySelector('md-switch');

let modeName = 'target', modeId = null;
let isEnabled = null;

const result = await exec(`kpatch rehook_status`, { env: { PATH: `${modDir}/bin` } });
const mode = result.stdout.split('\n').find(line => line.includes('mode: '));
if (mode) {
modeId = parseInt(mode.split(':')[1].trim());
modeName = rehookMode[modeId];
if (result.errno === 0) {
const mode = result.stdout.split(':')[1].trim();
if (mode === 'enabled') {
isEnabled = true;
} else if (mode === 'disabled') {
isEnabled = false;
}
rehookSwitch.selected = isEnabled;
}
rehookText.textContent = getString('label_rehook_mode_' + modeName);
rehookText.classList.toggle('disabled', !mode);
rehookRipple.disabled = !mode;

return modeId !== null;
return isEnabled;
}

function setRehookMode(mode) {
function setRehookMode(isEnable) {
const mode = isEnable ? "enable" : "disable";
exec(`
kpatch rehook ${mode} && echo ${mode} > ${persistDir}/rehook && sh "${modDir}/status.sh"`,
{ env: { PATH: `${modDir}/bin:$PATH` } }
Expand Down
5 changes: 1 addition & 4 deletions webui/public/locales/strings/bn.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<string name="title_reboot_download">ডাউনলোডে রিবুট</string>
<string name="title_reboot_edl">EDL-এ রিবুট</string>
<string name="title_kernel">কার্নেল</string>
<string name="title_rehook_mode">রিহুক মোড</string>
<string name="title_rehook_syscall">রিহুক Syscall</string>
<!-- Buttons -->
<string name="button_install">ইনস্টল করতে ক্লিক করুন</string>
<string name="button_uninstall">আনইনস্টল</string>
Expand All @@ -35,9 +35,6 @@
<string name="label_show_system_app">সিস্টেম অ্যাপ দেখান</string>
<string name="label_system_default">সিস্টেম ডিফল্ট</string>
<string name="label_trigger_event">ট্রিগার ইভেন্ট</string>
<string name="label_rehook_mode_disable">নিষ্ক্রিয়</string>
<string name="label_rehook_mode_target">টার্গেট</string>
<string name="label_rehook_mode_minimal">ন্যূনতম</string>
<!-- Status -->
<string name="status_not_installed">ইনস্টল করা নেই</string>
<string name="status_working">কাজ করছে 😋</string>
Expand Down
5 changes: 1 addition & 4 deletions webui/public/locales/strings/en.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<string name="title_reboot_download">Reboot to Download</string>
<string name="title_reboot_edl">Reboot to EDL</string>
<string name="title_kernel">Kernel</string>
<string name="title_rehook_mode">Rehook Mode</string>
<string name="title_rehook_syscall">Rehook Syscall</string>
<!-- Buttons -->
<string name="button_install">Click to install</string>
<string name="button_uninstall">Uninstall</string>
Expand All @@ -35,9 +35,6 @@
<string name="label_show_system_app">Show system app</string>
<string name="label_system_default">System Default</string>
<string name="label_trigger_event">Trigger Event</string>
<string name="label_rehook_mode_disable">Disable</string>
<string name="label_rehook_mode_target">Target</string>
<string name="label_rehook_mode_minimal">Minimal</string>
<!-- Status -->
<string name="status_not_installed">Not installed</string>
<string name="status_working">Working 😋</string>
Expand Down
5 changes: 1 addition & 4 deletions webui/public/locales/strings/fr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<string name="title_reboot_bootloader">Redémarrer vers le Bootloader</string>
<string name="title_reboot_download">Redémarrer en mode Téléchargement</string>
<string name="title_reboot_edl">Redémarrer en mode EDL</string>
<string name="title_rehook_mode">Mode Rehook</string>
<string name="title_rehook_syscall">Rehook Syscall</string>
<!-- Buttons -->
<string name="button_install">Appuyez pour installer</string>
<string name="button_uninstall">Désinstaller</string>
Expand All @@ -33,9 +33,6 @@
<string name="label_show_system_app">Afficher les applications système</string>
<string name="label_system_default">Paramètre système par défaut</string>
<string name="label_trigger_event">Déclencher un événement</string>
<string name="label_rehook_mode_disable">Désactiver</string>
<string name="label_rehook_mode_target">Cible</string>
<string name="label_rehook_mode_minimal">Minimal</string>
<!-- Status -->
<string name="status_not_installed">Non installé</string>
<string name="status_working">En fonctionnement 😋</string>
Expand Down
5 changes: 1 addition & 4 deletions webui/public/locales/strings/ja.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<string name="title_reboot_download">ダウンロードモードへ再起動</string>
<string name="title_reboot_edl">EDL へ再起動</string>
<string name="title_kernel">カーネル</string>
<string name="title_rehook_mode">再フックモード</string>
<string name="title_rehook_syscall">再フック Syscall</string>
<!-- Buttons -->
<string name="button_install">クリックしてインストール</string>
<string name="button_uninstall">アンインストール</string>
Expand All @@ -35,9 +35,6 @@
<string name="label_show_system_app">システムアプリを表示</string>
<string name="label_system_default">システムのデフォルト</string>
<string name="label_trigger_event">トリガーイベント</string>
<string name="label_rehook_mode_disable">無効化</string>
<string name="label_rehook_mode_target">ターゲット</string>
<string name="label_rehook_mode_minimal">最小限</string>
<!-- Status -->
<string name="status_not_installed">未インストール</string>
<string name="status_working">動作中 😋</string>
Expand Down
7 changes: 2 additions & 5 deletions webui/public/locales/strings/tr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<string name="title_reboot_download">İndirme Modunda Yeniden Başlat</string>
<string name="title_reboot_edl">EDL Modunda Yeniden Başlat</string>
<string name="title_kernel">Çekirdek</string>
<string name="title_rehook_mode">Yeniden Kancala Modu</string>
<string name="title_rehook_syscall">Yeniden Kancala Syscall</string>
<!-- Buttons -->
<string name="button_install">Yüklemek için tıkla</string>
<string name="button_uninstall">Kaldır</string>
Expand All @@ -35,9 +35,6 @@
<string name="label_show_system_app">Sistem uygulamasını göster</string>
<string name="label_system_default">Sistem Varsayılanı</string>
<string name="label_trigger_event">Olay Tetikle</string>
<string name="label_rehook_mode_disable">Devre Dışı Bırak</string>
<string name="label_rehook_mode_target">Hedef</string>
<string name="label_rehook_mode_minimal">Minimal</string>
<!-- Status -->
<string name="status_not_installed">Kurulu Değil</string>
<string name="status_working">Çalışıyor 😋</string>
Expand Down Expand Up @@ -84,4 +81,4 @@
<string name="msg_error_loading_apps">Uygulamalar yüklenirken hata oluştu: </string>
<string name="msg_error_rendering_apps">Uygulamalar oluşturulurken hata oluştu: </string>
<string name="msg_unknown">Bilinmiyor</string>
</resources>
</resources>
5 changes: 1 addition & 4 deletions webui/public/locales/strings/zh-CN.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<string name="title_reboot_download">重启到 Download</string>
<string name="title_reboot_edl">重启到 EDL</string>
<string name="title_kernel">内核</string>
<string name="title_rehook_mode">重挂钩模式</string>
<string name="title_rehook_syscall">重挂钩 Syscall</string>
<!-- Buttons -->
<string name="button_install">点击安装</string>
<string name="button_uninstall">卸载</string>
Expand All @@ -35,9 +35,6 @@
<string name="label_show_system_app">显示系统应用</string>
<string name="label_system_default">系统默认</string>
<string name="label_trigger_event">触发事件</string>
<string name="label_rehook_mode_disable">禁用</string>
<string name="label_rehook_mode_target">目标</string>
<string name="label_rehook_mode_minimal">最小化</string>
<!-- Status -->
<string name="status_not_installed">未安装</string>
<string name="status_working">工作中 😋</string>
Expand Down