From 8e48a0fa1e61c25c30bed552660db643b7e6dcf5 Mon Sep 17 00:00:00 2001 From: yilsem Date: Sat, 3 Oct 2026 15:06:22 +0300 Subject: [PATCH] feat(brand): disable upstream self-updater, add attribution and NOTICE The GitHub release checker would install Hy4ri/hermes-mobile APKs; the About screen now points to https://turkservis.online/indir and credits the original project. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf --- NOTICE | 26 ++++++++++ .../data/update/UpdateNoticeManager.kt | 5 +- .../ui/settings/components/AboutSection.kt | 51 +++++++++++++------ 3 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 NOTICE diff --git a/NOTICE b/NOTICE new file mode 100644 index 00000000..212d0ede --- /dev/null +++ b/NOTICE @@ -0,0 +1,26 @@ +AITURK Mobil +Copyright 2026 TurkServis + +AITURK Mobil, Hy4ri/hermes-mobile (Apache-2.0) projesinden uyarlanmıştır. +AITURK Mobil is adapted from Hy4ri/hermes-mobile (Apache-2.0). + +This product includes software developed by M57 (Hy4ri): + Hermes Mobile - https://github.com/Hy4ri/hermes-mobile + Copyright (c) 2026 M57 (Hy4ri) + Licensed under the Apache License, Version 2.0 (see LICENSE). + +Summary of changes made by TurkServis (Apache-2.0, section 4(b)): + - Display name changed to "AITURK Mobil"; user-visible "Hermes" / "Hermes + Mobile" texts replaced with AITURK branding in all locales. + - applicationId changed to online.turkservis.aiturk.mobil (the Kotlin + namespace and source packages remain com.m57.hermescontrol). + - Turkish translation added (app/src/main/res/values-tr) and Turkish added + to the in-app language picker. + - Launcher icon replaced with the AITURK mark. + - The in-app GitHub self-updater (Hy4ri/hermes-mobile releases) is switched + off; builds are distributed from https://turkservis.online/indir. + - About screen shows this attribution; the support card names the original + developer. + +AITURK and TurkServis names and the AITURK mark are not covered by the +Apache-2.0 license grant of the original project. diff --git a/app/src/main/java/com/m57/hermescontrol/data/update/UpdateNoticeManager.kt b/app/src/main/java/com/m57/hermescontrol/data/update/UpdateNoticeManager.kt index 9047cd37..6c6e17d6 100644 --- a/app/src/main/java/com/m57/hermescontrol/data/update/UpdateNoticeManager.kt +++ b/app/src/main/java/com/m57/hermescontrol/data/update/UpdateNoticeManager.kt @@ -37,7 +37,10 @@ object UpdateNoticeManager { * disabled in debug builds (BuildConfig.DEBUG) so daily dev builds never * hit the GitHub API or nag about updates. Tests flip this to true. */ - var enabled: Boolean = !BuildConfig.DEBUG + // AITURK: off in every build. The upstream checker installs Hy4ri/hermes-mobile + // release APKs (different package id and signing key); AITURK Mobil builds are + // published at https://turkservis.online/indir. + var enabled: Boolean = false internal set /** Avoid duplicate foreground checks in one process; a cold launch always rechecks. */ diff --git a/app/src/main/java/com/m57/hermescontrol/ui/settings/components/AboutSection.kt b/app/src/main/java/com/m57/hermescontrol/ui/settings/components/AboutSection.kt index d17689db..d646d1fd 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/settings/components/AboutSection.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/settings/components/AboutSection.kt @@ -24,9 +24,12 @@ import androidx.compose.ui.unit.dp import com.m57.hermescontrol.BuildConfig import com.m57.hermescontrol.R import com.m57.hermescontrol.data.update.AppUpdateState +import com.m57.hermescontrol.data.update.UpdateNoticeManager import com.m57.hermescontrol.ui.settings.InfoRow import com.m57.hermescontrol.ui.settings.SectionCard +private const val AITURK_DOWNLOAD_URL = "https://turkservis.online/indir" + @Composable internal fun AboutSection( updateState: AppUpdateState = AppUpdateState.Idle, @@ -55,21 +58,31 @@ internal fun AboutSection( label = stringResource(R.string.settings_about_version), value = "v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})", ) - UpdateRow( - state = updateState, - onCheckUpdate = onCheckUpdate, - onStartUpdate = onStartUpdate, - onOpenInstallSettings = onOpenInstallSettings, - ) - ReleaseCandidateRow( - checked = checkReleaseCandidateUpdates, - // Mid-download / mid-install the channel must not flip under the - // in-flight APK. - enabled = - updateState !is AppUpdateState.Downloading && - updateState !is AppUpdateState.Installing, - onCheckedChange = onCheckReleaseCandidateUpdatesChange, - ) + // AITURK: the upstream GitHub self-updater is switched off + // (UpdateNoticeManager.enabled = false); new builds ship from the + // AITURK download page instead. + if (UpdateNoticeManager.enabled) { + UpdateRow( + state = updateState, + onCheckUpdate = onCheckUpdate, + onStartUpdate = onStartUpdate, + onOpenInstallSettings = onOpenInstallSettings, + ) + ReleaseCandidateRow( + checked = checkReleaseCandidateUpdates, + // Mid-download / mid-install the channel must not flip under the + // in-flight APK. + enabled = + updateState !is AppUpdateState.Downloading && + updateState !is AppUpdateState.Installing, + onCheckedChange = onCheckReleaseCandidateUpdatesChange, + ) + } else { + InfoRow( + label = stringResource(R.string.settings_about_download), + value = AITURK_DOWNLOAD_URL, + ) + } InfoRow( label = stringResource(R.string.settings_about_build), value = @@ -87,6 +100,14 @@ internal fun AboutSection( } Spacer(modifier = Modifier.height(12.dp)) + Text( + text = stringResource(R.string.settings_about_attribution), + style = + MaterialTheme.typography.bodySmall.copy( + color = MaterialTheme.colorScheme.onSurfaceVariant, + ), + ) + Spacer(modifier = Modifier.height(4.dp)) Text( text = "https://github.com/Hy4ri/hermes-mobile", style =