diff --git a/CHANGELOG.md b/CHANGELOG.md index 5624149..55fc523 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# 0.1.0 release restored — 2026-09-25 + +- Rebuilt and signed the APK locally with explicitly supplied runtime authentication assets. +- Restored release downloads; no app behavior or version-code change from 0.1.0. +- Accessory identity remains in the APK only. No credential files enter Git or the source archive. +- Retained generated test identities and public-source credential checks. +- Source/CI builds omit runtime identity assets by default; local packaging requires an explicit external directory. + # Source reset — 2026-09-25 - Withdrew the 0.1.0 APK and removed its release tag. @@ -7,4 +15,4 @@ - Added a build guard rejecting credential asset files. - Replaced the download site with a five-language suspension notice. -No replacement APK has been released. Existing copies cannot be recalled by a Git history reset. +The APK was subsequently rebuilt and restored as described above. Existing copies cannot be recalled by a Git history reset. diff --git a/README.md b/README.md index 02be52c..64a10c3 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,43 @@ # DiPlay -Independent CarPlay receiver research for Android head units, based on xcertplay with a DiAuto-style interface. +**CarPlay for compatible Android head units.** Wired and wireless, with the familiar DiAuto interface. Independent app: `com.shihab.diplay`. -## Downloads suspended +[Download & website](https://shihabal3amri.github.io/DiPlay/) · [Release](https://github.com/shihabal3amri/DiPlay/releases/tag/v0.1.0) · [Report a problem](https://github.com/shihabal3amri/DiPlay/issues/new/choose) -The 0.1.0 APK was withdrawn because it bundled a recovered third-party accessory identity. Do not redistribute that APK or extract its identity for new builds. No replacement APK is available. +![DiPlay home](site/assets/home.png) -Public branch history has been reset to this reviewed source snapshot. The previous release and tag are removed; restricted local incident records are retained. Rewriting history does not recall downloaded copies or invalidate an exposed credential. +## 0.1.0 — public preview -This source snapshot contains no accessory private-key files. Synthetic test identities are generated at test runtime. Automatic private-asset packaging has been removed and the build rejects credential asset files. A source-only build does not provide working standalone CarPlay without an authorized authentication design. +Install on the **car**, not the iPhone. No jailbreak, dongle, Mac, account or authentication server is required for use. ADB is not needed during everyday use; your head unit must permit APK installation. Wireless requires Android 10+ and working Wi-Fi Direct; the APK supports Android 9+ for wired use. -[Project status](https://shihabal3amri.github.io/DiPlay/) · [Build instructions](docs/BUILD.md) · [Security](SECURITY.md) · [Privacy](docs/PRIVACY.md) +- Wired USB and wireless CarPlay with local authentication. +- Automatic address discovery, fixed-channel Wi-Fi fallbacks and successful-configuration memory. +- Icon/text size, resolution and frame rate; applying a display change reconnects CarPlay. +- Local diagnostic export. Reports are sent only if you choose to share them. +- Separate installation alongside DiAuto. Run one projection app at a time. -## Credits +This is **not an Apple-certified product**. The APK bundles an experimental accessory identity recovered from public Carlinkit firmware, not a newly provisioned MFi identity for DiPlay. A bundled private key is extractable. Acceptance after future iOS updates, reliability across head units and suitability of that identity for general distribution are unresolved. This release invites community testing; it is not a guarantee of universal compatibility. -Based on [xcertplay](https://github.com/shilapi/xcertplay), GPL-3.0. Home/settings UI and website adapt [DiAuto](https://github.com/shihabal3amri/DiAuto), AGPL-3.0. License texts and attribution remain in this repository. CarPlay and its icon belong to Apple Inc. No affiliation with Apple or BYD is implied. +Prior private builds have completed physical wired/wireless picture, touch and audio tests. Some testers still report stuttering or icon-size changes that do not take effect. The 0.1.0 changes passed automated and emulator checks; a new physical-car session was not available at publication. Start with H.264 / 30 fps and Default icon size. See the compatibility notes before testing. + +## Documentation + +- [Install and connect](docs/INSTALL.md) +- [Compatibility and troubleshooting](docs/COMPATIBILITY.md) +- [Privacy and diagnostic reports](docs/PRIVACY.md) +- [Build from source](docs/BUILD.md) +- [Validation](docs/VALIDATION.md) +- [Release notes](CHANGELOG.md) +- [Credits and licenses](docs/THIRD_PARTY_NOTICES.md) + +The website is available in English, Arabic, Russian, Spanish and Simplified Chinese. The current app interface is English. + +## Source and credits + +Based on [xcertplay](https://github.com/shilapi/xcertplay), GPL-3.0. The home/settings UI and website adapt [DiAuto](https://github.com/shihabal3amri/DiAuto), AGPL-3.0; that license is included in `docs/licenses`. Preserve those notices when distributing modifications. CarPlay and its icon belong to Apple Inc.; no Apple or BYD affiliation or endorsement is implied. + +This repository starts with a clean public source snapshot. Local research, tester reports and release-signing secrets are excluded. The complete source corresponding to the APK is provided with every release; experimental runtime identity assets are described separately in the build instructions and notices. + +## Local release packaging + +The release APK intentionally contains the experimental accessory identity. The Git repository and source archive exclude all accessory and Android signing keys; tests generate synthetic identities at runtime. Source/CI builds omit runtime identity assets by default. Local release builds explicitly select an external asset directory. Publishing the APK makes its bundled identity extractable; building locally does not preserve that identity's confidentiality. diff --git a/README.zh-CN.md b/README.zh-CN.md index 7d177ba..8bba89f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,7 +1,9 @@ # DiPlay -APK 下载已暂停。0.1.0 版本包含提取自第三方固件的配件身份,现已撤下。请勿继续分发该 APK 或提取其中的身份用于新构建。目前没有替代 APK。 +为兼容安卓车机提供有线及无线 CarPlay,采用 DiAuto 风格界面。 -公开分支已重置为经过审查的源代码快照。删除历史记录不会撤回已下载的副本,也不会使已泄露的凭据失效。测试密钥现在在测试运行时生成,不再存储于仓库。 +[下载与中文网站](https://shihabal3amri.github.io/DiPlay/zh-Hans/) · [完整说明](README.md) · [报告问题](https://github.com/shihabal3amri/DiPlay/issues/new/choose) -[项目状态](https://shihabal3amri.github.io/DiPlay/zh-Hans/) · [完整说明](README.md) +0.1.0 为公开预览版,未经 Apple 认证。请安装在车机上,而非 iPhone。无需越狱、转接盒或认证服务器。无线连接需要 Android 10 或更高版本及可用的 Wi-Fi Direct。 + +认证使用从公开固件中提取的实验性配件身份,无法保证未来持续可用。部分车机仍可能卡顿或无法应用图标大小设置。应用界面目前为英文。源代码、构建说明及许可证随版本提供。 diff --git a/SECURITY.md b/SECURITY.md index 396ff2f..62a3571 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,15 +1,9 @@ -# Distribution suspended +# Credentials and release packaging -The 0.1.0 APK was withdrawn after identifying exposure of a recovered third-party accessory private key bundled in the APK. Do not redistribute the APK or reuse that identity in new packages. +Public release distribution has resumed at the maintainer's request. The APK intentionally bundles the experimental accessory certificate and matching key described in docs/THIRD_PARTY_NOTICES.md. Anyone with the APK can extract them. Local compilation, Git history removal and obfuscation do not make a bundled shared key confidential or revoke previous copies. -The public branch has been reset and the old release/tag removed. Restricted local release records and the original repository bundle are preserved for investigation. These steps reduce exposure through project-controlled links; they do not recall existing copies or revoke the credential. +The public Git tree and corresponding source archive exclude accessory keys and Android release-signing secrets. CI checks reject credential containers and private-key blocks in tracked files. Synthetic test identities are generated at runtime. Source builds have no automatic private-asset import; release packaging requires an explicit local directory and permits only the two expected runtime files. -A review of the original published Git objects found no copy of the exposed key in binary or common text encodings, including the private scalar. The original Git tree did contain a different synthetic test key; that file has also been removed. Tests now generate self-signed identities at runtime. +The Android APK-signing key is separate, stays local and is never bundled in the APK. Current acceptance of the experimental accessory identity does not establish Apple certification or guarantee future compatibility. -The Android APK-signing key is separate. No evidence of its publication was found in the audited source or release contents. Changing that signing key would not remediate the accessory-key exposure. - -Do not include credentials, pairing records or personal information in public issues. Use GitHub private vulnerability reporting for sensitive findings. Credential revocation or replacement must be coordinated with the verified credential owner/provider; this project cannot declare those actions completed. - -A future release requires authorized authentication provisioning. Obfuscating an already exposed shared key, encrypting it with a key shipped in the app, or rewriting Git history does not restore confidentiality. - -GitHub guidance: https://docs.github.com/en/code-security/tutorials/remediate-leaked-secrets/remediating-a-leaked-secret +Review diagnostic reports before posting. Never include credentials or pairing records in public issues. Use GitHub private vulnerability reporting for sensitive findings. diff --git a/docs/BUILD.md b/docs/BUILD.md index 9971a25..f210bba 100644 --- a/docs/BUILD.md +++ b/docs/BUILD.md @@ -1,17 +1,25 @@ -# Source-only builds - -Public APK distribution is suspended while accessory authentication is reviewed. -The recovered identity must not be extracted from old releases, imported or bundled again. -Local compilation does not make a distributed private key confidential. +# Building DiPlay Requirements: JDK 25, Android SDK 37, NDK 28.2.13676358 and the included Gradle wrapper. +## Source and CI builds + ```sh ./gradlew :shared:testDebugUnitTest :common:testDebugUnitTest :mobile:lintDebug :mobile:assembleDebug ``` -This produces a development APK without accessory identity assets. The current product bootstrap requires authentication provisioning, so this build does not provide a working standalone CarPlay connection. It is for source validation only. +The resulting source-only APK contains no accessory identity. Standalone CarPlay requires runtime authentication provisioning. Tests generate synthetic identities at runtime; no test private-key files are tracked. -The automatic `.private/assets` import has been removed. The mobile pre-build check rejects credential files in APK asset source directories. The retired `scripts/build-beta.py` exits without building. Tests generate fresh self-signed synthetic identities at runtime; no static private key is stored in this repository. +## Local release packaging -A future distributable build needs an authorized authentication/provisioning design. The separate Android release-signing key remains local and must never be committed. See SECURITY.md. +Provide an external asset directory using `DIPLAY_AUTH_ASSETS_DIR`. The directory must contain exactly the intended runtime files under `offline-mfi/identity.pk8` and `offline-mfi/certificate.p7b`. Neither file belongs in Git. The build permits those two files only when this explicit input is set and rejects unexpected credential containers elsewhere in APK assets. + +Set `ANDROID_KEYSTORE_PATH`, `ANDROID_KEYSTORE_PASSWORD`, `ANDROID_KEY_ALIAS`, and `ANDROID_KEY_PASSWORD` locally for your Android signing key. Never commit these values or the keystore. Different signing keys cannot update an existing project-signed installation. + +```sh +./gradlew :shared:testDebugUnitTest :common:testDebugUnitTest :mobile:lintRelease :mobile:assembleRelease +``` + +Output: `mobile/build/outputs/apk/release/mobile-release.apk`. The release APK deliberately contains the experimental identity described in the notices; it is extractable by recipients. The separate Android signing key is not included. The retired build-beta.py helper is not used; this Gradle workflow uses explicit environment inputs. + +The public release source archive corresponds to the tagged source and excludes runtime identities, signing keys, local configuration and build output. diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 309b801..799eb9b 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -1,3 +1,26 @@ -# Distribution suspended +# Compatibility -The 0.1.0 APK has been withdrawn. Do not install or redistribute it. No replacement APK is available. See [SECURITY.md](../SECURITY.md) and [source-only build instructions](BUILD.md). +This public preview is an independent receiver, not an Apple-certified CarPlay accessory. The experimental bundled accessory identity is extractable and its future acceptance is not guaranteed. + +| Area | Current scope | +| --- | --- | +| Head unit | Android 9+ APK; wireless Wi-Fi Direct path needs Android 10+ | +| Phone | Standard, non-jailbroken iPhone with CarPlay enabled; device/iOS compatibility varies | +| Physical evidence | Previous private builds: wired and wireless picture, touch and audio confirmed on the development car with iPhone XS / iOS 18.7.10 | +| Other cars | Mixed community reports across DiLink generations; not a certified model support list | +| Current release | Automated and emulator checks, not a fresh physical-car validation of every change | +| Wi-Fi | Prefer 5 GHz without an established station connection; align to a supported existing station channel; explicit 2.4 GHz fallback for firmware that rejects 5 GHz or automatic channel selection | +| Video | Default H.264 / 30 fps; 60 fps and HEVC increase device-specific demands | + +## Known limitations + +- Some units stutter, particularly under higher video load. A 2.4 GHz link alone does not prove the cause: interference, firmware and decoder stalls can all contribute. Try Default icons, 30 fps and a lower resolution, then attach a report. +- Some iOS/head-unit combinations do not visibly apply icon and text size. Reconnection is implemented; that does not guarantee the iPhone chooses the requested layout. +- A radio that supports joining a 5 GHz network may still reject a 5 GHz Wi-Fi Direct group. The capability flag is diagnostic, not proof of group-owner support. +- Automatic startup depends on the car's firmware and startup permissions. +- USB requires a data port and correct host/device-role behavior. +- Calls, Siri, background reconnection, long journeys and future iOS releases need broader testing. + +Reports record requested and actual frequencies, station association state, fallback failures and remembered-configuration events. Wi-Fi credentials and protocol payloads are excluded. A successful hotspot is not itself a successful CarPlay session. + +Android references: [SupplicantState](https://developer.android.com/reference/android/net/wifi/SupplicantState), [explicit P2P operating frequency](https://developer.android.com/reference/android/net/wifi/p2p/WifiP2pConfig.Builder#setGroupOperatingFrequency(int)). diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 309b801..a876b16 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -1,3 +1,36 @@ -# Distribution suspended +# Install and connect -The 0.1.0 APK has been withdrawn. Do not install or redistribute it. No replacement APK is available. See [SECURITY.md](../SECURITY.md) and [source-only build instructions](BUILD.md). +1. Park the car. Download `DiPlay-0.1.0.apk` from the official GitHub release linked on the website. +2. Install on the Android head unit using its supported APK installation method. Do not install on the iPhone. Update over an existing DiPlay beta to retain settings and pairing records; the signing key is unchanged. +3. Open DiPlay. Grant the permissions requested for the features you use: Bluetooth/Nearby devices, Wi-Fi/Location on older Android, and microphone for Siri/calls. Allow notifications for connection controls. +4. Close other phone-projection apps before connecting. + +## Wireless + +Android 10+ and functioning Wi-Fi Direct are required. Pair your iPhone through the car's Bluetooth settings, keep Bluetooth and Wi-Fi enabled, then choose **Connect phone** in DiPlay. Select your paired iPhone and allow CarPlay on the phone if prompted. **Choose iPhone** changes the selected paired device. No manual MAC address entry or ADB setup is needed. + +Your car's normal internet connection can remain enabled. DiPlay aligns channels only to a completed Wi-Fi association; otherwise it prefers 5 GHz, with fixed 2.4 GHz channels as fallback. Firmware makes the final radio decision. Do not change the car's country code or driver properties. + +## USB + +Connect the iPhone to a USB **data** port with a data-capable cable and choose **Connect with USB**. Approve USB access, Trust/CarPlay and the local VPN permission if requested. The local VPN carries the USB network link; it is not an internet VPN service. Charge-only ports/cables cannot work. + +## Settings + +Swipe down with three fingers in CarPlay to open DiPlay settings, or return to the home screen. Icon/text size, resolution and frame rate use **Apply and reconnect** during an active session. A selection alone does not apply; Cancel preserves the old setting. When disconnected, **Save** applies to the next connection. Other settings also apply on the next connection. + +Start with 30 fps, Efficient video (HEVC) off and Default icon/text size. Try 80% or 60% resolution for a slower head unit. Some iPhone/head-unit combinations still ignore icon/text scaling. + +## Connection recovery and reports + +If reinstalling left an old group, close other projection apps, then use **Settings → Wireless connection help → Reset CarPlay Wi-Fi**. DiPlay asks before removing an unrecognized Wi-Fi Direct group. Updating in place is preferable to uninstalling. + +Use **Settings → Save diagnostic report** after reproducing a problem. Android 10+ saves to **Downloads/DiPlay**; Android 9 uses a document picker. Review the file, then attach it to a GitHub issue with car model, DiLink/Android versions, iPhone/iOS, transport and reproduction steps. Nothing is uploaded automatically. + +APK installation restrictions are controlled by your car's firmware. ADB is optional if your car supports it, not an app runtime requirement: + +```sh +adb install -r DiPlay-0.1.0.apk +``` + +Only use a trusted computer. A different signing certificate cannot update this build; do not uninstall until you have saved any reports you need. diff --git a/docs/TESTING.md b/docs/TESTING.md index 309b801..9753ab7 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -1,3 +1,7 @@ -# Distribution suspended +# Test checklist -The 0.1.0 APK has been withdrawn. Do not install or redistribute it. No replacement APK is available. See [SECURITY.md](../SECURITY.md) and [source-only build instructions](BUILD.md). +Use the [installation guide](INSTALL.md). With the car parked, verify wired and wireless connection, picture, touch and music. Test disconnect/reconnect, then settings Apply/Cancel. Save a diagnostic report after reproducing an issue. + +For channel memory, connect until authenticated CarPlay renders, disconnect and reconnect without changing the car's Wi-Fi association. Look for `remembered saved` followed by `remembered first`. Report absent events; creating a hotspot alone is insufficient. + +Include head-unit model, DiLink/Android, iPhone/iOS, wired/wireless, app version and exact steps. Do not post credentials or unreviewed personal information. See [compatibility](COMPATIBILITY.md) for remaining limitations. diff --git a/docs/THIRD_PARTY_NOTICES.md b/docs/THIRD_PARTY_NOTICES.md index 6e9f1a5..89f1393 100644 --- a/docs/THIRD_PARTY_NOTICES.md +++ b/docs/THIRD_PARTY_NOTICES.md @@ -30,7 +30,7 @@ Gradle dependency declarations and version catalog accompany the source. License ## Experimental authentication data -The withdrawn 0.1.0 preview APK included an accessory certificate/key pair recovered from public Carlinkit C2Air Allwinner V821 firmware during the owner's local investigation. These data are not newly generated Apple-issued credentials for DiPlay and are not relicensed as project source code. That distribution has been suspended. The credential must not be redistributed in new builds; the current source snapshot contains no accessory identity files. The source archive does not contain the private key, and the separate Android APK-signing key is never distributed. +The public preview APK includes an accessory certificate/key pair recovered from public Carlinkit C2Air Allwinner V821 firmware during the owner's local investigation. These data are not newly generated Apple-issued credentials for DiPlay and are not relicensed as project source code. They are bundled in the preview APK to reproduce the offline experiment; continued acceptance and suitability for general distribution are unresolved. The source archive does not contain the private key, and the separate Android APK-signing key is never distributed. ## Download website diff --git a/docs/VALIDATION.md b/docs/VALIDATION.md index fd56421..316f62f 100644 --- a/docs/VALIDATION.md +++ b/docs/VALIDATION.md @@ -1,10 +1,10 @@ -# Source snapshot validation — 2026-09-25 +# Restored 0.1.0 release — 2026-09-25 -- 172 JVM/Robolectric tests passed with freshly generated synthetic test identities. -- Source-only debug APK build and debug lint passed. -- The credential-asset guard rejected a synthetic `.pk8` probe and passed after it was removed. -- APK inspection found no `offline-mfi` assets or credential-container files. -- Static test private-key/certificate files have been removed from the source snapshot. -- No new public APK or CarPlay compatibility claim is made. This development build lacks accessory authentication provisioning. - -The original release and incident records are preserved locally with restricted access. See SECURITY.md. +- Built from the current public source with explicitly selected external authentication assets and the existing local Android signing key. +- 172 JVM/Robolectric tests passed; zero failures/errors. Release lint and signed release build passed. +- Public-tree credential scan passed. Source tests generate identities at runtime; no credential containers or private-key blocks are tracked. +- Verified that the APK contains the intended runtime accessory identity and no Android signing keystore. +- Signing certificate SHA-256: `87b38b12788dcb202a961215f2572e30ec2dc9d8ef4bc070d05f77e49291a363` (unchanged). +- Package `com.shihab.diplay`, version `0.1.0`, version code `10`; restoration changes packaging and public documentation, not app behavior. +- Existing USB-only TLS trust-manager warnings and unused-resource warning remain; this is not a completed security audit. +- No fresh physical-car validation was performed for the restored artifact. Previous emulator and private-build testing do not establish universal compatibility. diff --git a/mobile/build.gradle.kts b/mobile/build.gradle.kts index d408d1c..ae2dcbf 100644 --- a/mobile/build.gradle.kts +++ b/mobile/build.gradle.kts @@ -3,6 +3,10 @@ plugins { alias(libs.plugins.kotlin.compose) } +// Optional local-only input. CI and ordinary source builds contain no accessory identity. +val localAuthenticationAssets = providers.environmentVariable("DIPLAY_AUTH_ASSETS_DIR") + .orNull?.let { file(it).canonicalFile } + android { namespace = "com.shilapi.xcertplay" compileSdk { @@ -19,6 +23,8 @@ android { } + localAuthenticationAssets?.let { sourceSets.getByName("main").assets.srcDir(it) } + signingConfigs { create("release") { storeFile = file( @@ -63,7 +69,7 @@ dependencies { debugImplementation(libs.androidx.compose.ui.tooling) } -// Source builds must never silently import a shared accessory private key. +// No implicit import. Only the two explicitly selected local runtime assets are allowed. val credentialAssets = files(android.sourceSets.flatMap { source -> source.assets.directories.map { directory -> fileTree(directory) { @@ -74,14 +80,16 @@ val credentialAssets = files(android.sourceSets.flatMap { source -> }) val rejectBundledCredentials by tasks.registering { group = "verification" - description = "Reject credential files in every APK asset source directory." + description = "Reject unexpected credential files in APK assets." val filesToCheck = credentialAssets + val allowed = localAuthenticationAssets?.let { dir -> + listOf("identity.pk8", "certificate.p7b").map { dir.resolve("offline-mfi/$it").canonicalFile }.toSet() + } ?: emptySet() inputs.files(filesToCheck) doLast { - check(filesToCheck.isEmpty) { - "Credential assets are forbidden in distributable APKs: " + - filesToCheck.files.joinToString { it.name } - } + check(allowed.all { it.isFile }) { "Explicit local authentication assets are incomplete" } + val unexpected = filesToCheck.files.filter { it.canonicalFile !in allowed } + check(unexpected.isEmpty()) { "Unexpected credential files in APK assets" } } } tasks.named("preBuild") { dependsOn(rejectBundledCredentials) } diff --git a/scripts/build-beta.py b/scripts/build-beta.py index 6109cb6..1ede7cd 100644 --- a/scripts/build-beta.py +++ b/scripts/build-beta.py @@ -1,6 +1,3 @@ #!/usr/bin/env python3 -"""The credential-bearing beta release path has been withdrawn.""" -raise SystemExit( - "Release packaging is suspended. Do not bundle a recovered accessory identity. " - "See docs/BUILD.md for source-only validation." -) +"""Legacy helper: releases now use explicit environment inputs.""" +raise SystemExit("Use the local release Gradle command and environment inputs documented in docs/BUILD.md.") diff --git a/scripts/build_site.py b/scripts/build_site.py index 523acaf..6541918 100644 --- a/scripts/build_site.py +++ b/scripts/build_site.py @@ -1,24 +1,36 @@ #!/usr/bin/env python3 -"""Build the public status pages. No APK download URL is published.""" +"""Generate the five static GitHub Pages editions; no runtime dependencies.""" from pathlib import Path -from html import escape as e import json +from html import escape as e ROOT = Path(__file__).resolve().parents[1] SITE = ROOT / 'site' +data = json.loads((SITE / 'content.json').read_text()) BASE = 'https://shihabal3amri.github.io/DiPlay/' REPO = 'https://github.com/shihabal3amri/DiPlay' -data = json.loads((SITE / 'content.json').read_text()) +RELEASE = REPO + '/releases/tag/v0.1.0' +DOWNLOAD = REPO + '/releases/download/v0.1.0/DiPlay-0.1.0.apk' for lang, d in data.items(): folder = SITE if lang == 'en' else SITE / lang folder.mkdir(exist_ok=True) prefix = './' if lang == 'en' else '../' url = BASE + ('' if lang == 'en' else lang + '/') nav = ''.join(f'{e(v["name"])}' for code,v in data.items()) + alternates = ''.join(f'' for code in data) + pics = ''.join(f'
{e(cap)}
{e(cap)}
' for pic,cap in zip(['home','settings'],d['captions'])) (folder/'index.html').write_text(f''' -DiPlay · {e(d['badge'])} - -
DiPlay
-
{e(d['badge'])}

{e(d['title']).replace(chr(10),'
')}

{e(d['body'])}

{e(d['detail'])}

-
''') -print('Generated', len(data), 'status pages') +DiPlay · {e(d['download'])} +{alternates} + +
+
DiPlay{e(d['tag'])}
+
{e(d['badge'])} · 0.1.0

{e(d['title']).replace(chr(10),'
')}

{e(d['intro'])}

{e(d['promise'])}

{e(d['requires'])}

+ +
01

{e(d['setup'])}

    {''.join('
  1. '+e(x)+'
  2. ' for x in d['steps'])}

{e(d['bssid'])}

{e(d['adb'])} ↗
+
02

{e(d['whats'])}

    {''.join('
  • '+e(x)+'
  • ' for x in d['features'])}
{e(d['notes'])} ↗

{e(d['compat'])}

{e(d['compatText'])}

+

{e(d['follow'])}

{e(d['followText'])}

{e(d['telegram'])} ↗
+

{e(d['update'])}

{e(d['updateText'])}

+ +
''') +print('Generated', len(data), 'language pages') diff --git a/site/ar/index.html b/site/ar/index.html index b26fdb6..31e736d 100644 --- a/site/ar/index.html +++ b/site/ar/index.html @@ -1,7 +1,15 @@ -DiPlay · التنزيلات معلّقة - -
DiPlay
-
التنزيلات معلّقة

تنزيل DiPlay
متوقف مؤقتاً.

تم سحب ملف APK للإصدار 0.1.0 أثناء مراجعة بيانات اعتماد مصادقة الملحق. يُرجى عدم إعادة نشر الملف أو استخدام الهوية المضمّنة فيه. لا يتوفر ملف APK بديل حالياً.

إزالة رابط التنزيل أو إعادة ضبط سجل Git لا تسترجع النسخ التي تمت مشاركتها ولا تُبطل بيانات اعتماد مكشوفة.

-
\ No newline at end of file +DiPlay · تنزيل APK + + +
+
DiPlayمشروع مجتمعي مستقل
+
نسخة تجريبية عامة · 0.1.0

آيفونك.
على شاشة سيارتك.

خرائطك وموسيقاك ومحادثاتك على شاشة السيارة. يوفّر DiPlay كار بلاي سلكياً ولاسلكياً لشاشات أندرويد المتوافقة، بواجهة مألوفة من DiAuto.

لا حاجة إلى جيلبريك أو قطعة خارجية أو حساب أو خادم مصادقة.

ثبّت التطبيق على شاشة السيارة، وليس الآيفون. يتطلب الاتصال اللاسلكي أندرويد 10 أو أحدث ودعم Wi-Fi Direct. يعتمد التوافق على الشاشة ونظامها وإصدار iOS.

+ +
01

التثبيت على شاشة السيارة

  1. والسيارة متوقفة، نزّل ملف APK وثبّته بالطريقة التي تدعمها شاشة سيارتك.
  2. افتح DiPlay وامنح أذونات البلوتوث والواي فاي/الموقع والميكروفون المطلوبة.
  3. اقرن الآيفون من إعدادات بلوتوث السيارة. أبقِ البلوتوث والواي فاي مفعّلين، ثم اختر Connect phone وحدّد الآيفون المقترن واسمح بكار بلاي على الهاتف.
  4. للاتصال السلكي، استخدم كابل USB يدعم نقل البيانات واختر Connect with USB. وافق على طلبات USB أو الوثوق أو اتصال VPN المحلي إن ظهرت.

لا تحتاج إلى ADB للاستخدام اليومي. تختلف طريقة تثبيت APK حسب السيارة. لا حاجة لإدخال عنوان MAC يدوياً.

دليل التثبيت والمساعدة في الاتصال ↗
+
02

في هذا الإصدار

  • كار بلاي سلكي ولاسلكي بمصادقة محلية.
  • تفضيل 5 غيغاهرتز مع الرجوع إلى قنوات ثابتة على 2.4 غيغاهرتز وتذكّر الإعدادات الناجحة.
  • التحكم بحجم الأيقونات والنصوص والدقة ومعدل الإطارات، مع إعادة الاتصال عند التطبيق.
  • حفظ تقارير التشخيص محلياً لتشاركها بنفسك.
ملاحظات الإصدار وبصمات التحقق ↗

قبل التجربة

نسخة تجريبية عامة غير معتمدة من Apple. تستخدم المصادقة هوية ملحق تجريبية مستخرجة من برنامج ثابت منشور، ولا يُضمن استمرار قبولها مستقبلاً. قد يستمر التقطّع أو عدم تطبيق حجم الأيقونات على بعض الشاشات. ابدأ بمعدل 30 إطاراً مع تعطيل HEVC، وجرّب دقة أقل عند الحاجة.

+

تابع التحديثات

الأخبار والإصدارات الجديدة على تيليجرام.

تابع على تيليجرام ↗
+

التحديثات والتوقيع

يستخدم الإصدار 0.1.0 مفتاح التوقيع نفسه للنسخ التجريبية السابقة من DiPlay. ثبّته فوق النسخة الحالية للاحتفاظ بالإعدادات. يتضمن الإصدار المصدر وتعليمات البناء وبصمات التحقق من APK.

+ +
\ No newline at end of file diff --git a/site/content.json b/site/content.json index 5571123..ddac546 100644 --- a/site/content.json +++ b/site/content.json @@ -2,56 +2,226 @@ "en": { "name": "English", "dir": "ltr", - "badge": "DOWNLOADS SUSPENDED", - "title": "DiPlay downloads\nare paused.", - "body": "The 0.1.0 APK has been withdrawn while we review its accessory-authentication credentials. Please do not redistribute that APK or reuse its bundled identity. No replacement APK is available.", - "detail": "Removing a download or resetting Git history cannot recall copies already shared or invalidate an exposed credential.", - "source": "Source project", - "security": "Security status", + "tag": "Independent community project", + "badge": "PUBLIC PREVIEW", + "title": "Your iPhone.\nAt home in your car.", + "intro": "Maps, music and conversations on your car display. DiPlay brings wired and wireless CarPlay to compatible Android head units, with the familiar DiAuto interface.", + "download": "Download APK", + "install": "How to install", + "promise": "No jailbreak, dongle, account or authentication server required.", + "requires": "Install on the car, not the iPhone. Wireless requires Android 10 or later and working Wi-Fi Direct. Compatibility depends on the head unit, firmware and iOS version.", + "gallery": "A familiar drive", + "captions": [ + "A clear home screen with aligned wireless and USB controls.", + "Display size, performance and connection settings. Screenshots show the English app interface." + ], + "setup": "Install on your car", + "steps": [ + "While parked, download the APK and install it using the method supported by your head unit.", + "Open DiPlay and allow the requested Bluetooth, Wi-Fi/location and microphone permissions.", + "Pair your iPhone in the car’s Bluetooth settings. Keep Bluetooth and Wi-Fi on, choose Connect phone, select your paired iPhone and allow CarPlay on the phone.", + "For wired use, connect a USB data cable and choose Connect with USB. Approve any USB, Trust or local VPN prompts." + ], + "adb": "Installation & connection help", + "bssid": "ADB is not required for everyday use. APK installation options depend on the car. No manual MAC address entry.", + "whats": "In this release", + "features": [ + "Wired and wireless CarPlay with local authentication.", + "5 GHz preference, fixed-channel 2.4 GHz fallback and remembered successful configurations.", + "Icon/text size, resolution and frame-rate controls; Apply reconnects CarPlay.", + "Diagnostic reports saved locally for user-controlled sharing." + ], + "compat": "Before you try it", + "compatText": "A public preview, not an Apple-certified product. Authentication uses an experimental accessory identity recovered from public firmware; future acceptance is not guaranteed. Some head units still show stuttering or ignore icon-size changes. Start with 30 fps and HEVC off; try a lower resolution if needed.", + "update": "Updates & signing", + "updateText": "Version 0.1.0 uses the same signing key as the DiPlay private betas. Install over your existing copy to preserve settings. Source, build instructions and APK checksums accompany the release.", + "follow": "Get release updates", + "followText": "News and new builds on Telegram.", + "telegram": "Follow on Telegram", + "notes": "Release notes & checksums", + "source": "Source code", + "feedback": "Report an issue", + "privacy": "Privacy", "footer": "Independent project based on xcertplay, with interface design from DiAuto. Not affiliated with Apple or BYD. CarPlay and its icon belong to Apple Inc." }, "ar": { "name": "العربية", "dir": "rtl", - "badge": "التنزيلات معلّقة", - "title": "تنزيل DiPlay\nمتوقف مؤقتاً.", - "body": "تم سحب ملف APK للإصدار 0.1.0 أثناء مراجعة بيانات اعتماد مصادقة الملحق. يُرجى عدم إعادة نشر الملف أو استخدام الهوية المضمّنة فيه. لا يتوفر ملف APK بديل حالياً.", - "detail": "إزالة رابط التنزيل أو إعادة ضبط سجل Git لا تسترجع النسخ التي تمت مشاركتها ولا تُبطل بيانات اعتماد مكشوفة.", - "source": "المشروع المصدري", - "security": "حالة الأمان", + "tag": "مشروع مجتمعي مستقل", + "badge": "نسخة تجريبية عامة", + "title": "آيفونك.\nعلى شاشة سيارتك.", + "intro": "خرائطك وموسيقاك ومحادثاتك على شاشة السيارة. يوفّر DiPlay كار بلاي سلكياً ولاسلكياً لشاشات أندرويد المتوافقة، بواجهة مألوفة من DiAuto.", + "download": "تنزيل APK", + "install": "طريقة التثبيت", + "promise": "لا حاجة إلى جيلبريك أو قطعة خارجية أو حساب أو خادم مصادقة.", + "requires": "ثبّت التطبيق على شاشة السيارة، وليس الآيفون. يتطلب الاتصال اللاسلكي أندرويد 10 أو أحدث ودعم Wi-Fi Direct. يعتمد التوافق على الشاشة ونظامها وإصدار iOS.", + "gallery": "تجربة مألوفة", + "captions": [ + "واجهة واضحة مع محاذاة أزرار الاتصال اللاسلكي وUSB.", + "إعدادات حجم العرض والأداء والاتصال. الصور تعرض واجهة التطبيق الإنجليزية." + ], + "setup": "التثبيت على شاشة السيارة", + "steps": [ + "والسيارة متوقفة، نزّل ملف APK وثبّته بالطريقة التي تدعمها شاشة سيارتك.", + "افتح DiPlay وامنح أذونات البلوتوث والواي فاي/الموقع والميكروفون المطلوبة.", + "اقرن الآيفون من إعدادات بلوتوث السيارة. أبقِ البلوتوث والواي فاي مفعّلين، ثم اختر Connect phone وحدّد الآيفون المقترن واسمح بكار بلاي على الهاتف.", + "للاتصال السلكي، استخدم كابل USB يدعم نقل البيانات واختر Connect with USB. وافق على طلبات USB أو الوثوق أو اتصال VPN المحلي إن ظهرت." + ], + "adb": "دليل التثبيت والمساعدة في الاتصال", + "bssid": "لا تحتاج إلى ADB للاستخدام اليومي. تختلف طريقة تثبيت APK حسب السيارة. لا حاجة لإدخال عنوان MAC يدوياً.", + "whats": "في هذا الإصدار", + "features": [ + "كار بلاي سلكي ولاسلكي بمصادقة محلية.", + "تفضيل 5 غيغاهرتز مع الرجوع إلى قنوات ثابتة على 2.4 غيغاهرتز وتذكّر الإعدادات الناجحة.", + "التحكم بحجم الأيقونات والنصوص والدقة ومعدل الإطارات، مع إعادة الاتصال عند التطبيق.", + "حفظ تقارير التشخيص محلياً لتشاركها بنفسك." + ], + "compat": "قبل التجربة", + "compatText": "نسخة تجريبية عامة غير معتمدة من Apple. تستخدم المصادقة هوية ملحق تجريبية مستخرجة من برنامج ثابت منشور، ولا يُضمن استمرار قبولها مستقبلاً. قد يستمر التقطّع أو عدم تطبيق حجم الأيقونات على بعض الشاشات. ابدأ بمعدل 30 إطاراً مع تعطيل HEVC، وجرّب دقة أقل عند الحاجة.", + "update": "التحديثات والتوقيع", + "updateText": "يستخدم الإصدار 0.1.0 مفتاح التوقيع نفسه للنسخ التجريبية السابقة من DiPlay. ثبّته فوق النسخة الحالية للاحتفاظ بالإعدادات. يتضمن الإصدار المصدر وتعليمات البناء وبصمات التحقق من APK.", + "follow": "تابع التحديثات", + "followText": "الأخبار والإصدارات الجديدة على تيليجرام.", + "telegram": "تابع على تيليجرام", + "notes": "ملاحظات الإصدار وبصمات التحقق", + "source": "الكود المصدري", + "feedback": "الإبلاغ عن مشكلة", + "privacy": "الخصوصية", "footer": "مشروع مستقل مبني على xcertplay وبتصميم واجهة من DiAuto. غير تابع لـ Apple أو BYD. كار بلاي وأيقونته ملك لشركة Apple." }, "ru": { "name": "Русский", "dir": "ltr", - "badge": "ЗАГРУЗКИ ПРИОСТАНОВЛЕНЫ", - "title": "Загрузка DiPlay\nприостановлена.", - "body": "APK версии 0.1.0 отозван на время проверки учётных данных аутентификации аксессуара. Пожалуйста, не распространяйте этот APK и не используйте встроенные в него данные идентификации. Замены APK пока нет.", - "detail": "Удаление загрузки или сброс истории Git не отзывает уже распространённые копии и не аннулирует раскрытые учётные данные.", - "source": "Исходный проект", - "security": "Информация о безопасности", + "tag": "Независимый проект сообщества", + "badge": "ОТКРЫТОЕ ТЕСТИРОВАНИЕ", + "title": "Ваш iPhone.\nНа экране автомобиля.", + "intro": "Карты, музыка и общение на экране автомобиля. DiPlay добавляет проводной и беспроводной CarPlay на совместимые головные устройства Android со знакомым интерфейсом DiAuto.", + "download": "Скачать APK", + "install": "Как установить", + "promise": "Без джейлбрейка, адаптера, аккаунта и сервера аутентификации.", + "requires": "Установите приложение на головное устройство, а не на iPhone. Для беспроводного подключения нужны Android 10 или новее и работающий Wi-Fi Direct. Совместимость зависит от устройства, прошивки и версии iOS.", + "gallery": "Знакомый интерфейс", + "captions": [ + "Главный экран с выровненными элементами беспроводного и USB-подключения.", + "Размер интерфейса, производительность и подключение. На снимках — английский интерфейс приложения." + ], + "setup": "Установка в автомобиле", + "steps": [ + "На стоянке скачайте APK и установите его способом, поддерживаемым головным устройством.", + "Откройте DiPlay и предоставьте запрошенные разрешения Bluetooth, Wi-Fi/геолокации и микрофона.", + "Выполните сопряжение iPhone в настройках Bluetooth автомобиля. Включите Bluetooth и Wi-Fi, нажмите Connect phone, выберите iPhone и разрешите CarPlay на телефоне.", + "Для проводного подключения используйте USB-кабель с передачей данных и нажмите Connect with USB. Подтвердите запросы USB, доверия и локального VPN, если они появятся." + ], + "adb": "Инструкция и помощь с подключением", + "bssid": "Для повседневной работы ADB не нужен. Способ установки APK зависит от автомобиля. Вводить MAC-адрес вручную не требуется.", + "whats": "В этом выпуске", + "features": [ + "Проводной и беспроводной CarPlay с локальной аутентификацией.", + "Приоритет 5 ГГц, резервные фиксированные каналы 2,4 ГГц и запоминание успешных настроек.", + "Размер значков и текста, разрешение и частота кадров; применение настроек переподключает CarPlay.", + "Локальное сохранение диагностических отчётов для отправки по вашему выбору." + ], + "compat": "Перед установкой", + "compatText": "Предварительная версия для открытого тестирования, без сертификации Apple. Используется экспериментальная идентификация аксессуара из общедоступной прошивки; её принятие в будущем не гарантируется. На некоторых устройствах остаются рывки изображения или не применяется размер значков. Начните с 30 кадров/с и выключенного HEVC; при необходимости снизьте разрешение.", + "update": "Обновления и подпись", + "updateText": "Версия 0.1.0 подписана тем же ключом, что и закрытые бета-версии DiPlay. Устанавливайте поверх текущей версии, чтобы сохранить настройки. Исходный код, инструкции сборки и контрольные суммы APK доступны в выпуске.", + "follow": "Следите за обновлениями", + "followText": "Новости и новые версии в Telegram.", + "telegram": "Подписаться в Telegram", + "notes": "Описание выпуска и контрольные суммы", + "source": "Исходный код", + "feedback": "Сообщить о проблеме", + "privacy": "Конфиденциальность", "footer": "Независимый проект на базе xcertplay с дизайном интерфейса DiAuto. Не связан с Apple или BYD. CarPlay и его значок принадлежат Apple Inc." }, "es": { "name": "Español", "dir": "ltr", - "badge": "DESCARGAS SUSPENDIDAS", - "title": "Las descargas de DiPlay\nestán pausadas.", - "body": "El APK 0.1.0 se ha retirado mientras revisamos sus credenciales de autenticación de accesorio. No redistribuyas ese APK ni reutilices la identidad incluida. Aún no hay un APK de reemplazo.", - "detail": "Retirar una descarga o reiniciar el historial de Git no recupera las copias compartidas ni invalida una credencial expuesta.", - "source": "Proyecto fuente", - "security": "Estado de seguridad", + "tag": "Proyecto comunitario independiente", + "badge": "VERSIÓN PRELIMINAR PÚBLICA", + "title": "Tu iPhone.\nEn la pantalla de tu coche.", + "intro": "Mapas, música y conversaciones en la pantalla del coche. DiPlay ofrece CarPlay por USB e inalámbrico en unidades Android compatibles, con la interfaz familiar de DiAuto.", + "download": "Descargar APK", + "install": "Cómo instalar", + "promise": "Sin jailbreak, adaptador, cuenta ni servidor de autenticación.", + "requires": "Instala la app en el coche, no en el iPhone. La conexión inalámbrica requiere Android 10 o posterior y Wi-Fi Direct funcional. La compatibilidad depende del equipo, el firmware y la versión de iOS.", + "gallery": "Una experiencia familiar", + "captions": [ + "Pantalla de inicio con los controles inalámbricos y USB alineados.", + "Tamaño de interfaz, rendimiento y conexión. Las capturas muestran la app en inglés." + ], + "setup": "Instalar en el coche", + "steps": [ + "Con el coche estacionado, descarga el APK e instálalo mediante el método que admita tu unidad.", + "Abre DiPlay y concede los permisos solicitados de Bluetooth, Wi-Fi/ubicación y micrófono.", + "Empareja el iPhone desde los ajustes Bluetooth del coche. Activa Bluetooth y Wi-Fi, pulsa Connect phone, selecciona el iPhone y permite CarPlay en el teléfono.", + "Para USB, usa un cable de datos y pulsa Connect with USB. Acepta las solicitudes de USB, confianza o VPN local que aparezcan." + ], + "adb": "Guía de instalación y conexión", + "bssid": "No necesitas ADB para el uso diario. El método de instalación del APK depende del coche. No hay que introducir direcciones MAC.", + "whats": "En esta versión", + "features": [ + "CarPlay por USB e inalámbrico con autenticación local.", + "Preferencia por 5 GHz, alternativa con canales fijos de 2,4 GHz y memoria de configuraciones correctas.", + "Ajustes de iconos, texto, resolución y frecuencia de imagen; aplicar vuelve a conectar CarPlay.", + "Informes de diagnóstico guardados localmente para compartir cuando tú decidas." + ], + "compat": "Antes de probar", + "compatText": "Versión preliminar pública sin certificación de Apple. Usa una identidad de accesorio experimental obtenida de firmware público; no se garantiza su aceptación futura. Algunos equipos aún presentan tirones o no aplican los cambios de tamaño de iconos. Empieza con 30 fps y HEVC desactivado; reduce la resolución si hace falta.", + "update": "Actualizaciones y firma", + "updateText": "La versión 0.1.0 utiliza la misma clave de firma que las betas privadas de DiPlay. Instálala sobre la versión actual para conservar los ajustes. El código, las instrucciones de compilación y las sumas de comprobación acompañan al lanzamiento.", + "follow": "Recibe novedades", + "followText": "Noticias y nuevas versiones en Telegram.", + "telegram": "Seguir en Telegram", + "notes": "Notas y sumas de comprobación", + "source": "Código fuente", + "feedback": "Informar de un problema", + "privacy": "Privacidad", "footer": "Proyecto independiente basado en xcertplay, con diseño de interfaz de DiAuto. Sin afiliación a Apple ni BYD. CarPlay y su icono pertenecen a Apple Inc." }, "zh-Hans": { "name": "简体中文", "dir": "ltr", - "badge": "下载已暂停", - "title": "DiPlay 下载\n已暂停。", - "body": "在审查配件认证凭据期间,0.1.0 APK 已撤下。请勿继续分发该 APK 或重复使用其中的配件身份。目前没有替代 APK。", - "detail": "移除下载链接或重置 Git 历史记录无法撤回已分享的副本,也不会使已泄露的凭据失效。", - "source": "源代码项目", - "security": "安全状态", + "tag": "独立社区项目", + "badge": "公开预览版", + "title": "你的 iPhone。\n你的车载屏幕。", + "intro": "在车载屏幕上使用地图、音乐和通话。DiPlay 为兼容的安卓车机带来有线和无线 CarPlay,采用熟悉的 DiAuto 界面。", + "download": "下载 APK", + "install": "安装方法", + "promise": "无需越狱、转接盒、账号或认证服务器。", + "requires": "请安装在车机上,而非 iPhone 上。无线连接需要 Android 10 或更高版本及可用的 Wi-Fi Direct。兼容性取决于车机、固件和 iOS 版本。", + "gallery": "熟悉的驾乘体验", + "captions": [ + "无线和 USB 连接控件整齐对齐的主界面。", + "界面大小、性能和连接设置。截图展示的是英文应用界面。" + ], + "setup": "安装到车机", + "steps": [ + "停车后下载 APK,并通过车机支持的方式安装。", + "打开 DiPlay,授予所需的蓝牙、Wi-Fi/位置及麦克风权限。", + "在车机蓝牙设置中配对 iPhone。保持蓝牙和 Wi-Fi 开启,点击 Connect phone,选择已配对的 iPhone,并在手机上允许 CarPlay。", + "有线连接请使用 USB 数据线,并点击 Connect with USB。如出现 USB、信任或本地 VPN 提示,请确认。" + ], + "adb": "安装与连接指南", + "bssid": "日常使用不需要 ADB。APK 安装方式取决于车机。无需手动输入 MAC 地址。", + "whats": "本次更新", + "features": [ + "支持有线及无线 CarPlay,认证在本地完成。", + "优先使用 5 GHz,可回退至 2.4 GHz 固定信道,并记住成功的配置。", + "支持图标和文字大小、分辨率及帧率设置;应用更改时会重新连接 CarPlay。", + "诊断报告保存在本地,由你决定是否分享。" + ], + "compat": "试用前请了解", + "compatText": "这是公开预览版,未经 Apple 认证。认证使用从公开固件中提取的实验性配件身份,无法保证未来持续可用。部分车机仍可能出现卡顿或图标大小调整不生效。建议先使用 30 fps 并关闭 HEVC,必要时降低分辨率。", + "update": "更新与签名", + "updateText": "0.1.0 版沿用 DiPlay 内测版的签名密钥。直接覆盖安装即可保留设置。发布页面提供源代码、构建说明和 APK 校验值。", + "follow": "获取更新", + "followText": "在 Telegram 上关注项目消息和新版本。", + "telegram": "关注 Telegram", + "notes": "发布说明与校验值", + "source": "源代码", + "feedback": "报告问题", + "privacy": "隐私", "footer": "基于 xcertplay 的独立项目,界面设计源自 DiAuto。与 Apple 或比亚迪无隶属关系。CarPlay 及其图标归 Apple Inc. 所有。" } } diff --git a/site/es/index.html b/site/es/index.html index b865553..65ea492 100644 --- a/site/es/index.html +++ b/site/es/index.html @@ -1,7 +1,15 @@ -DiPlay · DESCARGAS SUSPENDIDAS - -
DiPlay
-
DESCARGAS SUSPENDIDAS

Las descargas de DiPlay
están pausadas.

El APK 0.1.0 se ha retirado mientras revisamos sus credenciales de autenticación de accesorio. No redistribuyas ese APK ni reutilices la identidad incluida. Aún no hay un APK de reemplazo.

Retirar una descarga o reiniciar el historial de Git no recupera las copias compartidas ni invalida una credencial expuesta.

-
\ No newline at end of file +DiPlay · Descargar APK + + +
+
DiPlayProyecto comunitario independiente
+
VERSIÓN PRELIMINAR PÚBLICA · 0.1.0

Tu iPhone.
En la pantalla de tu coche.

Mapas, música y conversaciones en la pantalla del coche. DiPlay ofrece CarPlay por USB e inalámbrico en unidades Android compatibles, con la interfaz familiar de DiAuto.

Sin jailbreak, adaptador, cuenta ni servidor de autenticación.

Instala la app en el coche, no en el iPhone. La conexión inalámbrica requiere Android 10 o posterior y Wi-Fi Direct funcional. La compatibilidad depende del equipo, el firmware y la versión de iOS.

+ +
01

Instalar en el coche

  1. Con el coche estacionado, descarga el APK e instálalo mediante el método que admita tu unidad.
  2. Abre DiPlay y concede los permisos solicitados de Bluetooth, Wi-Fi/ubicación y micrófono.
  3. Empareja el iPhone desde los ajustes Bluetooth del coche. Activa Bluetooth y Wi-Fi, pulsa Connect phone, selecciona el iPhone y permite CarPlay en el teléfono.
  4. Para USB, usa un cable de datos y pulsa Connect with USB. Acepta las solicitudes de USB, confianza o VPN local que aparezcan.

No necesitas ADB para el uso diario. El método de instalación del APK depende del coche. No hay que introducir direcciones MAC.

Guía de instalación y conexión ↗
+
02

En esta versión

  • CarPlay por USB e inalámbrico con autenticación local.
  • Preferencia por 5 GHz, alternativa con canales fijos de 2,4 GHz y memoria de configuraciones correctas.
  • Ajustes de iconos, texto, resolución y frecuencia de imagen; aplicar vuelve a conectar CarPlay.
  • Informes de diagnóstico guardados localmente para compartir cuando tú decidas.
Notas y sumas de comprobación ↗

Antes de probar

Versión preliminar pública sin certificación de Apple. Usa una identidad de accesorio experimental obtenida de firmware público; no se garantiza su aceptación futura. Algunos equipos aún presentan tirones o no aplican los cambios de tamaño de iconos. Empieza con 30 fps y HEVC desactivado; reduce la resolución si hace falta.

+

Recibe novedades

Noticias y nuevas versiones en Telegram.

Seguir en Telegram ↗
+

Actualizaciones y firma

La versión 0.1.0 utiliza la misma clave de firma que las betas privadas de DiPlay. Instálala sobre la versión actual para conservar los ajustes. El código, las instrucciones de compilación y las sumas de comprobación acompañan al lanzamiento.

+ +
\ No newline at end of file diff --git a/site/index.html b/site/index.html index 1f9efea..7685483 100644 --- a/site/index.html +++ b/site/index.html @@ -1,7 +1,15 @@ -DiPlay · DOWNLOADS SUSPENDED - -
DiPlay
-
DOWNLOADS SUSPENDED

DiPlay downloads
are paused.

The 0.1.0 APK has been withdrawn while we review its accessory-authentication credentials. Please do not redistribute that APK or reuse its bundled identity. No replacement APK is available.

Removing a download or resetting Git history cannot recall copies already shared or invalidate an exposed credential.

-
\ No newline at end of file +DiPlay · Download APK + + +
+
DiPlayIndependent community project
+
PUBLIC PREVIEW · 0.1.0

Your iPhone.
At home in your car.

Maps, music and conversations on your car display. DiPlay brings wired and wireless CarPlay to compatible Android head units, with the familiar DiAuto interface.

No jailbreak, dongle, account or authentication server required.

Install on the car, not the iPhone. Wireless requires Android 10 or later and working Wi-Fi Direct. Compatibility depends on the head unit, firmware and iOS version.

+ +
01

Install on your car

  1. While parked, download the APK and install it using the method supported by your head unit.
  2. Open DiPlay and allow the requested Bluetooth, Wi-Fi/location and microphone permissions.
  3. Pair your iPhone in the car’s Bluetooth settings. Keep Bluetooth and Wi-Fi on, choose Connect phone, select your paired iPhone and allow CarPlay on the phone.
  4. For wired use, connect a USB data cable and choose Connect with USB. Approve any USB, Trust or local VPN prompts.

ADB is not required for everyday use. APK installation options depend on the car. No manual MAC address entry.

Installation & connection help ↗
+
02

In this release

  • Wired and wireless CarPlay with local authentication.
  • 5 GHz preference, fixed-channel 2.4 GHz fallback and remembered successful configurations.
  • Icon/text size, resolution and frame-rate controls; Apply reconnects CarPlay.
  • Diagnostic reports saved locally for user-controlled sharing.
Release notes & checksums ↗

Before you try it

A public preview, not an Apple-certified product. Authentication uses an experimental accessory identity recovered from public firmware; future acceptance is not guaranteed. Some head units still show stuttering or ignore icon-size changes. Start with 30 fps and HEVC off; try a lower resolution if needed.

+

Get release updates

News and new builds on Telegram.

Follow on Telegram ↗
+

Updates & signing

Version 0.1.0 uses the same signing key as the DiPlay private betas. Install over your existing copy to preserve settings. Source, build instructions and APK checksums accompany the release.

+ +
\ No newline at end of file diff --git a/site/ru/index.html b/site/ru/index.html index 2767c93..c0e28c8 100644 --- a/site/ru/index.html +++ b/site/ru/index.html @@ -1,7 +1,15 @@ -DiPlay · ЗАГРУЗКИ ПРИОСТАНОВЛЕНЫ - -
DiPlay
-
ЗАГРУЗКИ ПРИОСТАНОВЛЕНЫ

Загрузка DiPlay
приостановлена.

APK версии 0.1.0 отозван на время проверки учётных данных аутентификации аксессуара. Пожалуйста, не распространяйте этот APK и не используйте встроенные в него данные идентификации. Замены APK пока нет.

Удаление загрузки или сброс истории Git не отзывает уже распространённые копии и не аннулирует раскрытые учётные данные.

-
\ No newline at end of file +DiPlay · Скачать APK + + +
+
DiPlayНезависимый проект сообщества
+
ОТКРЫТОЕ ТЕСТИРОВАНИЕ · 0.1.0

Ваш iPhone.
На экране автомобиля.

Карты, музыка и общение на экране автомобиля. DiPlay добавляет проводной и беспроводной CarPlay на совместимые головные устройства Android со знакомым интерфейсом DiAuto.

Без джейлбрейка, адаптера, аккаунта и сервера аутентификации.

Установите приложение на головное устройство, а не на iPhone. Для беспроводного подключения нужны Android 10 или новее и работающий Wi-Fi Direct. Совместимость зависит от устройства, прошивки и версии iOS.

+ +
01

Установка в автомобиле

  1. На стоянке скачайте APK и установите его способом, поддерживаемым головным устройством.
  2. Откройте DiPlay и предоставьте запрошенные разрешения Bluetooth, Wi-Fi/геолокации и микрофона.
  3. Выполните сопряжение iPhone в настройках Bluetooth автомобиля. Включите Bluetooth и Wi-Fi, нажмите Connect phone, выберите iPhone и разрешите CarPlay на телефоне.
  4. Для проводного подключения используйте USB-кабель с передачей данных и нажмите Connect with USB. Подтвердите запросы USB, доверия и локального VPN, если они появятся.

Для повседневной работы ADB не нужен. Способ установки APK зависит от автомобиля. Вводить MAC-адрес вручную не требуется.

Инструкция и помощь с подключением ↗
+
02

В этом выпуске

  • Проводной и беспроводной CarPlay с локальной аутентификацией.
  • Приоритет 5 ГГц, резервные фиксированные каналы 2,4 ГГц и запоминание успешных настроек.
  • Размер значков и текста, разрешение и частота кадров; применение настроек переподключает CarPlay.
  • Локальное сохранение диагностических отчётов для отправки по вашему выбору.
Описание выпуска и контрольные суммы ↗

Перед установкой

Предварительная версия для открытого тестирования, без сертификации Apple. Используется экспериментальная идентификация аксессуара из общедоступной прошивки; её принятие в будущем не гарантируется. На некоторых устройствах остаются рывки изображения или не применяется размер значков. Начните с 30 кадров/с и выключенного HEVC; при необходимости снизьте разрешение.

+

Следите за обновлениями

Новости и новые версии в Telegram.

Подписаться в Telegram ↗
+

Обновления и подпись

Версия 0.1.0 подписана тем же ключом, что и закрытые бета-версии DiPlay. Устанавливайте поверх текущей версии, чтобы сохранить настройки. Исходный код, инструкции сборки и контрольные суммы APK доступны в выпуске.

+ +
\ No newline at end of file diff --git a/site/zh-Hans/index.html b/site/zh-Hans/index.html index e681ecc..c1cf8db 100644 --- a/site/zh-Hans/index.html +++ b/site/zh-Hans/index.html @@ -1,7 +1,15 @@ -DiPlay · 下载已暂停 - -
DiPlay
-
下载已暂停

DiPlay 下载
已暂停。

在审查配件认证凭据期间,0.1.0 APK 已撤下。请勿继续分发该 APK 或重复使用其中的配件身份。目前没有替代 APK。

移除下载链接或重置 Git 历史记录无法撤回已分享的副本,也不会使已泄露的凭据失效。

-
\ No newline at end of file +DiPlay · 下载 APK + + +
+
DiPlay独立社区项目
+
公开预览版 · 0.1.0

你的 iPhone。
你的车载屏幕。

在车载屏幕上使用地图、音乐和通话。DiPlay 为兼容的安卓车机带来有线和无线 CarPlay,采用熟悉的 DiAuto 界面。

无需越狱、转接盒、账号或认证服务器。

请安装在车机上,而非 iPhone 上。无线连接需要 Android 10 或更高版本及可用的 Wi-Fi Direct。兼容性取决于车机、固件和 iOS 版本。

+ +
01

安装到车机

  1. 停车后下载 APK,并通过车机支持的方式安装。
  2. 打开 DiPlay,授予所需的蓝牙、Wi-Fi/位置及麦克风权限。
  3. 在车机蓝牙设置中配对 iPhone。保持蓝牙和 Wi-Fi 开启,点击 Connect phone,选择已配对的 iPhone,并在手机上允许 CarPlay。
  4. 有线连接请使用 USB 数据线,并点击 Connect with USB。如出现 USB、信任或本地 VPN 提示,请确认。

日常使用不需要 ADB。APK 安装方式取决于车机。无需手动输入 MAC 地址。

安装与连接指南 ↗
+
02

本次更新

  • 支持有线及无线 CarPlay,认证在本地完成。
  • 优先使用 5 GHz,可回退至 2.4 GHz 固定信道,并记住成功的配置。
  • 支持图标和文字大小、分辨率及帧率设置;应用更改时会重新连接 CarPlay。
  • 诊断报告保存在本地,由你决定是否分享。
发布说明与校验值 ↗

试用前请了解

这是公开预览版,未经 Apple 认证。认证使用从公开固件中提取的实验性配件身份,无法保证未来持续可用。部分车机仍可能出现卡顿或图标大小调整不生效。建议先使用 30 fps 并关闭 HEVC,必要时降低分辨率。

+

获取更新

在 Telegram 上关注项目消息和新版本。

关注 Telegram ↗
+

更新与签名

0.1.0 版沿用 DiPlay 内测版的签名密钥。直接覆盖安装即可保留设置。发布页面提供源代码、构建说明和 APK 校验值。

+ +
\ No newline at end of file