Spaces:
Running
Running
| import json | |
| import base64 | |
| import io | |
| import qrcode | |
| import os | |
| OMEGA_FAMILY_APK_URL = os.environ.get("OMEGA_FAMILY_APK_URL", "https://huggingface.co/spaces/Jarvis2345/jarvis-cloud/resolve/main/app-release.apk") | |
| # Generates a QR code containing Android's standard "qr code provisioning" payload format | |
| # (android.app.extra.PROVISIONING_*), which Android's OWN setup wizard recognizes during | |
| # initial device setup or factory-reset-then-setup. This is the SAME mechanism legitimate | |
| # MDM products (Google Family Link, enterprise MDM) use — not a custom accessibility hack. | |
| async def generate_enrollment_qr(family_member_name: str) -> str: | |
| """ | |
| Generates a base64 encoded PNG QR code for Android Device Owner provisioning. | |
| Requires device to be in setup wizard (factory reset state) to scan. | |
| """ | |
| payload = { | |
| "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.example.service/.FamilyDeviceAdminReceiver", | |
| "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": OMEGA_FAMILY_APK_URL, | |
| "android.app.extra.PROVISIONING_LOCALE": "en_US", | |
| "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": False, | |
| "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": { | |
| "family_account_name": family_member_name | |
| } | |
| } | |
| qr_data = json.dumps(payload) | |
| # Generate QR Code image | |
| qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4) | |
| qr.add_data(qr_data) | |
| qr.make(fit=True) | |
| img = qr.make_image(fill_color="black", back_color="white") | |
| # Convert to base64 string for the React frontend | |
| buffered = io.BytesIO() | |
| img.save(buffered, format="PNG") | |
| img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") | |
| return f"data:image/png;base64,{img_str}" | |