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:
1 parent
34758975b7
commit
8e48a0fa1e
3 files changed
+66
-16
No files matched your search
@@ -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 =
|
||||||
|
|||||||
Reference in new issue
Block a user