/* * SPDX-FileCopyrightText: 2026 Aurora OSS * SPDX-License-Identifier: GPL-3.0-or-later */ package com.aurora.apkdownloader import java.util.Properties object DesktopDeviceProfile { fun properties(geoProfile: GeoProfile = GeoProfile.default()): Properties = Properties().apply { setProperty("UserReadableName", "Google Pixel 7a") setProperty("Build.BOARD", "lynx") setProperty("Build.BOOTLOADER", "lynx-1.0-11017859") setProperty("Build.BRAND", "google") setProperty("Build.DEVICE", "lynx") setProperty("Build.FINGERPRINT", "google/lynx/lynx:14/AP2A.240805.005/12025142:user/release-keys") setProperty("Build.HARDWARE", "lynx") setProperty("Build.ID", "AP2A.240805.005") setProperty("Build.MANUFACTURER", "Google") setProperty("Build.MODEL", "Pixel 7a") setProperty("Build.PRODUCT", "lynx") setProperty("Build.RADIO", "g5300g-230927-231026-B-11040898") setProperty("Build.TAGS", "release-keys") setProperty("Build.TIME", "1722459600000") setProperty("Build.TYPE", "user") setProperty("Build.USER", "android-build") setProperty("Build.VERSION.CODENAME", "REL") setProperty("Build.VERSION.INCREMENTAL", "12025142") setProperty("Build.VERSION.RELEASE", "15") setProperty("Build.VERSION.SDK_INT", "35") setProperty("CellOperator", geoProfile.operator.take(3)) setProperty("Client", "android-google") setProperty("Features", "android.hardware.audio.output,android.hardware.bluetooth,android.hardware.bluetooth_le,android.hardware.camera,android.hardware.camera.autofocus,android.hardware.camera.flash,android.hardware.camera.front,android.hardware.fingerprint,android.hardware.location,android.hardware.location.gps,android.hardware.location.network,android.hardware.microphone,android.hardware.nfc,android.hardware.opengles.aep,android.hardware.ram.normal,android.hardware.screen.landscape,android.hardware.screen.portrait,android.hardware.sensor.accelerometer,android.hardware.sensor.compass,android.hardware.sensor.gyroscope,android.hardware.sensor.light,android.hardware.sensor.proximity,android.hardware.telephony,android.hardware.telephony.gsm,android.hardware.touchscreen,android.hardware.touchscreen.multitouch,android.hardware.usb.accessory,android.hardware.usb.host,android.hardware.wifi,android.hardware.wifi.direct,android.software.app_widgets,android.software.backup,android.software.cts,android.software.device_admin,android.software.file_based_encryption,android.software.home_screen,android.software.input_methods,android.software.live_wallpaper,android.software.managed_users,android.software.print,android.software.secure_lock_screen,android.software.verified_boot,android.software.webview,com.google.android.feature.GOOGLE_BUILD,com.google.android.feature.GOOGLE_EXPERIENCE,com.google.android.feature.PIXEL_EXPERIENCE") setProperty("GL.Extensions", "GL_ANDROID_extension_pack_es31a,GL_EXT_color_buffer_float,GL_EXT_debug_marker,GL_EXT_texture_filter_anisotropic,GL_KHR_debug,GL_OES_EGL_image,GL_OES_EGL_image_external,GL_OES_depth24,GL_OES_depth_texture,GL_OES_element_index_uint,GL_OES_rgb8_rgba8,GL_OES_standard_derivatives,GL_OES_texture_float,GL_OES_texture_npot,GL_OES_vertex_array_object") setProperty("GL.Version", "196610") setProperty("GSF.version", "251333035") setProperty("HasFiveWayNavigation", "false") setProperty("HasHardKeyboard", "false") setProperty("Keyboard", "1") setProperty("Locales", localeList(geoProfile)) setProperty("Navigation", "1") setProperty("Platforms", "arm64-v8a") setProperty("Roaming", "mobile-notroaming") setProperty("Screen.Density", "420") setProperty("Screen.Height", "2424") setProperty("Screen.Width", "1080") setProperty("ScreenLayout", "2") setProperty("SharedLibraries", "android.ext.shared,android.hidl.base-V1.0-java,android.hidl.manager-V1.0-java,android.net.ipsec.ike,android.test.base,android.test.mock,android.test.runner,com.android.future.usb.accessory,com.android.location.provider,com.android.media.remotedisplay,com.android.mediadrm.signer,com.android.nfc_extras,com.android.cts.ctsshim.shared_library,com.google.android.gms,javax.obex,org.apache.http.legacy") setProperty("SimOperator", geoProfile.operator) setProperty("TimeZone", geoProfile.timeZone) setProperty("TouchScreen", "3") setProperty("Vending.version", "84651510") setProperty("Vending.versionString", "46.5.15-31 [0] [PR] 777931631") } private fun localeList(geoProfile: GeoProfile): String { val normalized = geoProfile.localeTag.replace("-", "_") val language = normalized.substringBefore("_") return listOf( language, normalized, "en", "en_US", "fr", "fr_FR", "de", "de_DE", "es", "es_ES" ).distinct().joinToString(",") } }