mirror of
https://github.com/chiteroman/PlayIntegrityFix.git
synced 2025-04-29 01:22:07 +08:00
webui: add preview fingerprint toggle
This commit is contained in:
parent
18364bcbc3
commit
15883b47ae
@ -1,12 +1,12 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Play Integrity Fix</title>
|
<title>Play Integrity Fix</title>
|
||||||
<link rel="stylesheet" href="styles.css" type="text/css">
|
<link rel="stylesheet" href="styles.css" type="text/css">
|
||||||
<link rel="stylesheet" type="text/css" href="/mmrl/insets.css" />
|
<link rel="stylesheet" type="text/css" href="/mmrl/insets.css" />
|
||||||
<script type="module" crossorigin src="scripts.js"></script>
|
<script type="module" crossorigin src="scripts.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@ -18,15 +18,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="button-box">
|
<div class="button-box">
|
||||||
<div class="toggle-list ripple-element" id="fetch">
|
<div class="toggle-list ripple-element" id="fetch">
|
||||||
<span class="toggle-text">Fetch pif.json</span>
|
<span class="toggle-text">Fetch pif.json</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="toggle-list ripple-element" id="sdk-vending-toggle-container">
|
<div class="toggle-list ripple-element" id="preview-fp-toggle-container">
|
||||||
<span class="toggle-text">Spoof sdk version to Play Store</span>
|
<span class="toggle-text">Use preview fingerprint</span>
|
||||||
<label class="toggle-switch">
|
<label class="toggle-switch">
|
||||||
<input type="checkbox" id="toggle-sdk-vending" disabled>
|
<input type="checkbox" id="toggle-preview-fp" disabled>
|
||||||
<span class="slider round"></span>
|
<span class="slider round"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="toggle-list ripple-element" id="sdk-vending-toggle-container">
|
||||||
|
<span class="toggle-text">Spoof sdk version to Play Store</span>
|
||||||
|
<label class="toggle-switch">
|
||||||
|
<input type="checkbox" id="toggle-sdk-vending" disabled>
|
||||||
|
<span class="slider round"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="output-terminal">
|
<div class="output-terminal">
|
||||||
<div class="output-terminal-header">
|
<div class="output-terminal-header">
|
||||||
|
@ -20,6 +20,7 @@ async function execCommand(command) {
|
|||||||
function applyButtonEventListeners() {
|
function applyButtonEventListeners() {
|
||||||
const fetchButton = document.getElementById('fetch');
|
const fetchButton = document.getElementById('fetch');
|
||||||
const sdkVendingToggle = document.getElementById('sdk-vending-toggle-container');
|
const sdkVendingToggle = document.getElementById('sdk-vending-toggle-container');
|
||||||
|
const previewFpToggle = document.getElementById('preview-fp-toggle-container');
|
||||||
const clearButton = document.querySelector('.clear-terminal');
|
const clearButton = document.querySelector('.clear-terminal');
|
||||||
|
|
||||||
fetchButton.addEventListener('click', runAction);
|
fetchButton.addEventListener('click', runAction);
|
||||||
@ -43,10 +44,21 @@ function applyButtonEventListeners() {
|
|||||||
appendToOutput(`[+] Successfully changed spoofVendingSdk to ${isChecked ? 0 : 1}`);
|
appendToOutput(`[+] Successfully changed spoofVendingSdk to ${isChecked ? 0 : 1}`);
|
||||||
document.getElementById('toggle-sdk-vending').checked = !isChecked;
|
document.getElementById('toggle-sdk-vending').checked = !isChecked;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
appendToOutput("[-] Failed to change spoofVendingSdk");
|
appendToOutput("[!] Failed to change spoofVendingSdk");
|
||||||
console.error('Failed to toggle sdk vending:', error);
|
console.error('Failed to toggle sdk vending:', error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
previewFpToggle.addEventListener('click', async () => {
|
||||||
|
try {
|
||||||
|
const isChecked = document.getElementById('toggle-preview-fp').checked;
|
||||||
|
await execCommand(`sed -i 's/^FORCE_PREVIEW=.*$/FORCE_PREVIEW=${isChecked ? 0 : 1}/' /data/adb/modules/playintegrityfix/action.sh`);
|
||||||
|
appendToOutput(`[+] Switched fingerprint to ${isChecked ? 'beta' : 'preview'}`);
|
||||||
|
loadPreviewFingerprintConfig();
|
||||||
|
} catch (error) {
|
||||||
|
appendToOutput("[!] Failed to switch fingerprint type");
|
||||||
|
console.error('Failed to switch fingerprint type:', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
clearButton.addEventListener('click', () => {
|
clearButton.addEventListener('click', () => {
|
||||||
const output = document.querySelector('.output-terminal-content');
|
const output = document.querySelector('.output-terminal-content');
|
||||||
output.innerHTML = '';
|
output.innerHTML = '';
|
||||||
@ -92,19 +104,40 @@ async function loadVersionFromModuleProp() {
|
|||||||
const version = await execCommand("grep '^version=' /data/adb/modules/playintegrityfix/module.prop | cut -d'=' -f2");
|
const version = await execCommand("grep '^version=' /data/adb/modules/playintegrityfix/module.prop | cut -d'=' -f2");
|
||||||
versionElement.textContent = version.trim();
|
versionElement.textContent = version.trim();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
appendToOutput("[-] Failed to read version from module.prop");
|
appendToOutput("[!] Failed to read version from module.prop");
|
||||||
console.error("Failed to read version from module.prop:", error);
|
console.error("Failed to read version from module.prop:", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to load spoofVendingSdk config
|
// Function to load spoofVendingSdk config
|
||||||
async function loadSpoofVendingSdkConfig() {
|
async function loadSpoofVendingSdkConfig() {
|
||||||
const sdkVendingToggle = document.getElementById('toggle-sdk-vending');
|
try {
|
||||||
const isChecked = await execCommand(`grep -o '"spoofVendingSdk": [01]' /data/adb/modules/playintegrityfix/pif.json | cut -d' ' -f2`);
|
const sdkVendingToggle = document.getElementById('toggle-sdk-vending');
|
||||||
if (isChecked === '0') {
|
const isChecked = await execCommand(`grep -o '"spoofVendingSdk": [01]' /data/adb/modules/playintegrityfix/pif.json | cut -d' ' -f2`);
|
||||||
sdkVendingToggle.checked = false;
|
if (isChecked === '0') {
|
||||||
} else {
|
sdkVendingToggle.checked = false;
|
||||||
sdkVendingToggle.checked = true;
|
} else {
|
||||||
|
sdkVendingToggle.checked = true;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
appendToOutput("[!] Failed to load spoofVendingSdk config");
|
||||||
|
console.error("Failed to load spoofVendingSdk config:", error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to load preview fingerprint config
|
||||||
|
async function loadPreviewFingerprintConfig() {
|
||||||
|
try {
|
||||||
|
const previewFpToggle = document.getElementById('toggle-preview-fp');
|
||||||
|
const isChecked = await execCommand(`grep -o 'FORCE_PREVIEW=[01]' /data/adb/modules/playintegrityfix/action.sh | cut -d'=' -f2`);
|
||||||
|
if (isChecked === '0') {
|
||||||
|
previewFpToggle.checked = false;
|
||||||
|
} else {
|
||||||
|
previewFpToggle.checked = true;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
appendToOutput("[!] Failed to load preview fingerprint config");
|
||||||
|
console.error("Failed to load preview fingerprint config:", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,6 +295,7 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
checkMMRL();
|
checkMMRL();
|
||||||
loadVersionFromModuleProp();
|
loadVersionFromModuleProp();
|
||||||
loadSpoofVendingSdkConfig();
|
loadSpoofVendingSdkConfig();
|
||||||
|
loadPreviewFingerprintConfig();
|
||||||
applyButtonEventListeners();
|
applyButtonEventListeners();
|
||||||
applyRippleEffect();
|
applyRippleEffect();
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user