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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
This commit is contained in:
yilsemandClaude Opus 5.5 committed 2026-10-03 15:06:22 +03:00
1 parent 34758975b7
commit 8e48a0fa1e
3 files changed
+66 -16

No files matched your search

+26
View File
@@ -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.
@@ -37,7 +37,10 @@ object UpdateNoticeManager {
* disabled in debug builds (BuildConfig.DEBUG) so daily dev builds never * disabled in debug builds (BuildConfig.DEBUG) so daily dev builds never
* hit the GitHub API or nag about updates. Tests flip this to true. * 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 internal set
/** Avoid duplicate foreground checks in one process; a cold launch always rechecks. */ /** Avoid duplicate foreground checks in one process; a cold launch always rechecks. */
@@ -24,9 +24,12 @@ import androidx.compose.ui.unit.dp
import com.m57.hermescontrol.BuildConfig import com.m57.hermescontrol.BuildConfig
import com.m57.hermescontrol.R import com.m57.hermescontrol.R
import com.m57.hermescontrol.data.update.AppUpdateState 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.InfoRow
import com.m57.hermescontrol.ui.settings.SectionCard import com.m57.hermescontrol.ui.settings.SectionCard
private const val AITURK_DOWNLOAD_URL = "https://turkservis.online/indir"
@Composable @Composable
internal fun AboutSection( internal fun AboutSection(
updateState: AppUpdateState = AppUpdateState.Idle, updateState: AppUpdateState = AppUpdateState.Idle,
@@ -55,21 +58,31 @@ internal fun AboutSection(
label = stringResource(R.string.settings_about_version), label = stringResource(R.string.settings_about_version),
value = "v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})", value = "v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})",
) )
UpdateRow( // AITURK: the upstream GitHub self-updater is switched off
state = updateState, // (UpdateNoticeManager.enabled = false); new builds ship from the
onCheckUpdate = onCheckUpdate, // AITURK download page instead.
onStartUpdate = onStartUpdate, if (UpdateNoticeManager.enabled) {
onOpenInstallSettings = onOpenInstallSettings, UpdateRow(
) state = updateState,
ReleaseCandidateRow( onCheckUpdate = onCheckUpdate,
checked = checkReleaseCandidateUpdates, onStartUpdate = onStartUpdate,
// Mid-download / mid-install the channel must not flip under the onOpenInstallSettings = onOpenInstallSettings,
// in-flight APK. )
enabled = ReleaseCandidateRow(
updateState !is AppUpdateState.Downloading && checked = checkReleaseCandidateUpdates,
updateState !is AppUpdateState.Installing, // Mid-download / mid-install the channel must not flip under the
onCheckedChange = onCheckReleaseCandidateUpdatesChange, // 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( InfoRow(
label = stringResource(R.string.settings_about_build), label = stringResource(R.string.settings_about_build),
value = value =
@@ -87,6 +100,14 @@ internal fun AboutSection(
} }
Spacer(modifier = Modifier.height(12.dp)) 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(
text = "https://github.com/Hy4ri/hermes-mobile", text = "https://github.com/Hy4ri/hermes-mobile",
style = style =