-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
307 lines (280 loc) · 16 KB
/
index.html
File metadata and controls
307 lines (280 loc) · 16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Framework Patcher - Universal Android Framework Patcher</title>
<link href="styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<header class="header">
<div class="header-content">
<div class="logo">
<i class="fas fa-mobile-alt"></i>
<h1>Framework Patcher</h1>
</div>
</div>
</header>
<main class="main-content">
<div class="form-container active" id="unified-form">
<div class="form-header">
<h2><i class="fas fa-cog"></i> Framework Patcher</h2>
<p>Configure and trigger framework patching workflow</p>
</div>
<form class="patcher-form" id="patcher-form">
<div class="form-grid">
<div class="manual-toggle-container"
onclick="document.getElementById('manual-mode-toggle').click()">
<div class="toggle-wrapper" onclick="event.stopPropagation()">
<label class="switch">
<input id="manual-mode-toggle" type="checkbox">
<span class="slider"></span>
</label>
</div>
<div class="toggle-info">
<strong><i class="fas fa-tools"></i> Manual Mode</strong>
<small>Enable to manually enter device details if the API is unavailable</small>
</div>
</div>
<div id="smart-inputs" style="display: contents;">
<div class="form-group">
<label for="device-name">
<i class="fas fa-mobile-alt"></i> Device
</label>
<div class="custom-select" data-select-id="device-name">
<div class="select-trigger">
<input class="select-input" placeholder="Search and select device..." readonly
type="text">
<i class="fas fa-chevron-down select-arrow"></i>
</div>
<div class="select-options">
<div class="search-container">
<input class="search-input" placeholder="Search devices..." type="text">
</div>
<div class="options-list">
<div class="option" value="">Select a device</div>
</div>
</div>
</div>
<input id="device-name" name="device_name" type="hidden">
<input id="device-codename" name="device_codename" type="hidden">
<small>Select your device from the list</small>
</div>
<div class="form-group">
<label for="version-name">
<i class="fas fa-tag"></i> Version
</label>
<div class="custom-select" data-select-id="version-name">
<div class="select-trigger">
<input class="select-input" placeholder="Select device first..." readonly
type="text">
<i class="fas fa-chevron-down select-arrow"></i>
</div>
<div class="select-options">
<div class="search-container">
<input class="search-input" placeholder="Search versions..." type="text">
</div>
<div class="options-list">
<div class="option" value="">Select device first</div>
</div>
</div>
</div>
<input id="version-name" name="version_name" type="hidden">
<small>Select firmware/MIUI version</small>
</div>
<div class="form-group">
<label for="detected-android">
<i class="fas fa-android"></i> Detected Android Version
</label>
<input class="readonly-input" id="detected-android" placeholder="Will be auto-detected"
readonly type="text">
<small>Automatically detected from selected MIUI ROM</small>
</div>
</div>
<div id="manual-inputs" style="display: none;">
<div class="form-group">
<label for="manual-device-name">
<i class="fas fa-mobile-alt"></i> Device Name
</label>
<input id="manual-device-name" placeholder="e.g. Xiaomi 14" type="text">
<small>Enter the full device name</small>
</div>
<div class="form-group">
<label for="manual-device-codename">
<i class="fas fa-code"></i> Device Codename
</label>
<input id="manual-device-codename" placeholder="e.g. houji" type="text">
<small><strong>Important:</strong> Must be the exact board codename</small>
</div>
<div class="form-group">
<label for="manual-version-name">
<i class="fas fa-tag"></i> Firmware Version
</label>
<input id="manual-version-name" placeholder="e.g. OS1.0.24.0.UNCNXM" type="text">
<small>Enter the specific version string (e.g., V14.0.2.0)</small>
</div>
<div class="form-group">
<label for="manual-android-version">
<i class="fas fa-android"></i> Android Version
</label>
<select class="select-input" id="manual-android-version"
style="width: 100%; padding: 12px; border-radius: 8px; background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border); outline: none;">
<option value="">Select Android Version</option>
<option value="13">Android 13 (Tiramisu)</option>
<option value="14">Android 14 (Upside Down Cake)</option>
<option value="15">Android 15 (Vanilla Ice Cream)</option>
<option value="16">Android 16 (Baklava)</option>
</select>
<small>Required to select the correct patching script</small>
</div>
</div>
<div class="form-group">
<label for="user-id">
<i class="fab fa-telegram"></i> Telegram User ID
</label>
<input id="user-id" name="user_id" placeholder="Optional" type="text">
<small>For notifications (optional)</small>
</div>
</div>
<div class="features-section" id="features-section">
<h3><i class="fas fa-magic"></i> Features to Apply</h3>
<p class="feature-description">Available features depend on detected Android version</p>
<div class="feature-options">
<label class="feature-checkbox">
<input type="checkbox" name="enable_signature_bypass" value="true" checked>
<span class="checkmark"></span>
<div class="feature-info">
<strong>Disable Signature Verification</strong>
<small>Allows installation of modified/unsigned apps (Available for all Android
versions)</small>
</div>
</label>
<label class="feature-checkbox" id="cn-notification-feature" style="display: none;">
<input type="checkbox" name="enable_cn_notification_fix" value="true">
<span class="checkmark"></span>
<div class="feature-info">
<strong>CN Notification Fix</strong>
<small>Fixes notification delays on China ROMs (Available for Android 15+)</small>
</div>
</label>
<label class="feature-checkbox" id="secure-flag-feature" style="display: none;">
<input type="checkbox" name="enable_disable_secure_flag" value="true">
<span class="checkmark"></span>
<div class="feature-info">
<strong>Disable Secure Flag</strong>
<small>Allows screenshots/recordings of secure content (Available for Android
15+)</small>
</div>
</label>
<label class="feature-checkbox" id="kaorios-toolbox-feature" style="display: none;">
<input type="checkbox" name="enable_kaorios_toolbox" value="true">
<span class="checkmark"></span>
<div class="feature-info">
<strong>Kaorios Toolbox (Play Integrity Fix)</strong>
<small>
Enables Play Integrity attestation and device spoofing (Available for Android
13+)<br>
</small>
</div>
</label>
</div>
</div>
<div class="jar-urls">
<h3><i class="fas fa-download"></i> JAR File URLs</h3>
<div class="form-group">
<label for="framework-url">
<i class="fas fa-file-archive"></i>
Framework.jar URL
</label>
<input id="framework-url" name="framework_url"
placeholder="https://example.com/framework.jar" required type="url">
</div>
<div class="form-group">
<label for="services-url">
<i class="fas fa-file-archive"></i>
Services.jar URL
</label>
<input id="services-url" name="services_url" placeholder="https://example.com/services.jar"
required type="url">
</div>
<div class="form-group">
<label for="miui-services-url">
<i class="fas fa-file-archive"></i>
MIUI Services.jar URL
</label>
<input id="miui-services-url" name="miui_services_url"
placeholder="https://example.com/miui-services.jar" required type="url">
</div>
</div>
<div class="form-actions">
<button class="btn btn-secondary" onclick="clearForm('patcher-form')" type="button">
<i class="fas fa-eraser"></i>
Clear Form
</button>
<button class="btn btn-primary" type="submit">
<i class="fas fa-play"></i>
Start Patching
</button>
</div>
</form>
</div>
</main>
<footer class="footer">
<div class="footer-content">
<p>© 2024 Framework Patcher. Built for the Android community.</p>
<div class="footer-links">
<a href="https://github.com/FrameworksForge/FrameworkPatcher" target="_blank">
<i class="fab fa-github"></i>
GitHub
</a>
<a href="https://buymeacoffee.com/jefino" target="_blank">
<i class="fas fa-coffee"></i>
Support
</a>
</div>
</div>
</footer>
</div>
<!-- Loading Modal -->
<div class="modal" id="loading-modal">
<div class="modal-content">
<div class="loading-spinner"></div>
<h3>Triggering Workflow...</h3>
<p>Please wait while we start the patching process.</p>
</div>
</div>
<!-- Success Modal -->
<div class="modal" id="success-modal">
<div class="modal-content">
<div class="success-icon">
<i class="fas fa-check-circle"></i>
</div>
<h3>Workflow Triggered Successfully!</h3>
<p>Your framework patching workflow has been started. Check the GitHub Actions tab for progress.</p>
<button class="btn btn-primary"
onclick="window.open('https://github.com/FrameworksForge/FrameworkPatcher/actions', '_blank'); closeModal('success-modal')">
<i class="fas fa-external-link-alt"></i>
View Workflow
</button>
</div>
</div>
<!-- Error Modal -->
<div class="modal" id="error-modal">
<div class="modal-content">
<div class="error-icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
<h3>Error Triggering Workflow</h3>
<p id="error-message">Something went wrong. Please try again.</p>
<button class="btn btn-secondary" onclick="closeModal('error-modal')">
<i class="fas fa-times"></i>
Close
</button>
</div>
</div>
<script src="modules/main.js" type="module"></script>
</body>
</html>