diff --git a/module/customize.sh b/module/customize.sh index a608063..94ac8a8 100644 --- a/module/customize.sh +++ b/module/customize.sh @@ -65,3 +65,14 @@ if [ -f "/data/adb/pif.json" ]; then ui_print "- Backup custom pif.json" mv -f /data/adb/pif.json /data/adb/pif.json.old fi + +# give exec perm to action.sh +chmod +x "$MODPATH/action.sh" + +# action.sh, ap 10927, ksu 11981 +if { [ "$KSU" = "true" ] && [ "$KSU_VER_CODE" -ge 11981 ]; } || + { [ "$APATCH" = "true" ] && [ "$APATCH_VER_CODE" -ge 10927 ]; }; then + # we dont need the webui workaround + # since manager has action + rm -rf "$MODPATH/webroot" +fi diff --git a/module/webroot/assets/RobotoMono-Regular.ttf b/module/webroot/assets/RobotoMono-Regular.ttf new file mode 100644 index 0000000..6df2b25 Binary files /dev/null and b/module/webroot/assets/RobotoMono-Regular.ttf differ diff --git a/module/webroot/index.html b/module/webroot/index.html new file mode 100644 index 0000000..6a8f144 --- /dev/null +++ b/module/webroot/index.html @@ -0,0 +1,14 @@ + + + + + + Play Integrity Fix + + + + + +
[+] Fetching pif.json, please wait...
+ + \ No newline at end of file diff --git a/module/webroot/scripts.js b/module/webroot/scripts.js new file mode 100644 index 0000000..8ce7185 --- /dev/null +++ b/module/webroot/scripts.js @@ -0,0 +1,37 @@ +// Execute shell commands with ksu.exec +async function execCommand(command) { + const callbackName = `exec_callback_${Date.now()}`; + return new Promise((resolve, reject) => { + window[callbackName] = (errno, stdout, stderr) => { + delete window[callbackName]; + errno === 0 ? resolve(stdout) : reject(stderr); + }; + ksu.exec(command, "{}", callbackName); + }); +} + +// Function to run the script and display its output +async function runAction() { + const output = document.querySelector('.output'); + try { + const scriptOutput = await execCommand("sh /data/adb/modules/playintegrityfix/action.sh"); + output.innerHTML = ''; + const lines = scriptOutput.split('\n'); + lines.forEach(line => { + const lineElement = document.createElement('div'); + lineElement.style.whiteSpace = 'pre-wrap'; + lineElement.textContent = line; + if (line === '') { + lineElement.innerHTML = ' '; + } + output.appendChild(lineElement); + }); + } catch (error) { + output.innerHTML = '[!] Error: Fail to execute action.sh'; + console.error('Script execution failed:', error); + } +} + +document.addEventListener('DOMContentLoaded', async () => { + setTimeout(runAction, 200); +}); \ No newline at end of file diff --git a/module/webroot/styles.css b/module/webroot/styles.css new file mode 100644 index 0000000..0d15647 --- /dev/null +++ b/module/webroot/styles.css @@ -0,0 +1,27 @@ +@font-face { + font-family: 'Mono'; + src: url('assets/RobotoMono-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +body { + font-family: 'Mono'; + padding-top: var(--window-inset-top); + padding-bottom: var(--window-inset-bottom); +} + +.output { + font-size: 14px; + left: 10px; + width: calc(100vw - 20px); + white-space: nowrap; + word-break: break-all; +} + +@media (prefers-color-scheme: dark) { + body { + background-color: #121212; + color: #fff; + } +} \ No newline at end of file