diff --git a/.github/workflows/build_apk.yml b/.github/workflows/build_apk.yml index 206e768..6fd338a 100644 --- a/.github/workflows/build_apk.yml +++ b/.github/workflows/build_apk.yml @@ -58,13 +58,19 @@ jobs: run: | zip -r ./TouchHelper.zip ./release - - name: Get git revision + - name: Get release version id: get_git_revision run: | - echo "tag_name=$(($(git rev-list HEAD --count) + 100))" >> $GITHUB_OUTPUT - echo "release_name=$(($(git rev-list HEAD --count) + 100))" >> $GITHUB_OUTPUT + python3 - <<'PY' + import json, os + with open('app/build/outputs/apk/release/output-metadata.json') as metadata: + version = json.load(metadata)['elements'][0]['versionCode'] + with open(os.environ['GITHUB_OUTPUT'], 'a') as output: + output.write(f'tag_name={version}\nrelease_name={version}\n') + PY - name: Create Release and Upload APK + if: github.event_name == 'push' && github.ref == 'refs/heads/master' uses: softprops/action-gh-release@v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/app/build.gradle b/app/build.gradle index 3bc67c9..5350ee7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,14 +1,12 @@ apply plugin: 'com.android.application' -// http://www.race604.com/android-auto-version/ -// use git count as build number, as current date as build version +// Keep release codes explicit: squash merges can reduce the Git commit count and +// produce a versionCode lower than an APK that has already been distributed. def getDate() { def date = new Date() def formattedDate = date.format('yyyy.MM.dd') return formattedDate } -def cmd = 'git rev-list HEAD --count' -def gitVersion = cmd.execute().text.trim().toInteger() + 100 def appVersion = getDate() @@ -24,7 +22,7 @@ android { applicationId "com.zfdang.touchhelper" minSdkVersion 26 targetSdkVersion 36 - versionCode gitVersion + versionCode 278 versionName appVersion // Enabling multidex support. @@ -103,4 +101,4 @@ dependencies { // https://mvnrepository.com/artifact/com.belerweb/pinyin4j implementation group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1' -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 4dbf941..d66c79a 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -65,6 +65,19 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView_app_introduction" /> + + - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6543d5b..c380ce2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,6 +26,7 @@ https://touchhelper.zfdang.com/ + 隐私政策:\nhttps://touchhelper.zfdang.com/privacy.html Copyright © 2022 Zhengfa Dang 版本: %s (%d) @@ -35,4 +36,4 @@ 同意 开屏跳过:请打开应用并确认无障碍服务说明后,跳过功能才会开始工作 取消 - \ No newline at end of file + diff --git a/docs/privacy.html b/docs/privacy.html index a48ca48..5daa724 100644 --- a/docs/privacy.html +++ b/docs/privacy.html @@ -108,11 +108,12 @@

Privacy Policy

-

Last updated: January 4, 2026

+

Last updated: October 11, 2026

- Summary: Touch Helper is an open-source application that does NOT collect, store, or - transmit any personal data. Your privacy is fully protected. + Summary: Touch Helper processes screen controls on your device to skip splash ads. + It has no network permission and does not collect or share data off-device. Rules you explicitly + create are saved locally; copying or exporting controls and rules is performed only at your request.

Introduction

@@ -135,14 +136,21 @@

Accessibility Service

screen advertisements. This service:

  • Only monitors screen content to identify skip buttons
  • -
  • Does NOT record or store any screen content
  • +
  • Automatically detected controls are compared in memory and are not saved
  • +
  • Custom rules save the selected app, control text, description and coordinates locally
  • +
  • The copy-window-controls and export-rules actions place the information you request on the system clipboard
  • Does NOT transmit any data externally
  • Operates entirely on your device
+

The service reads interface control text, descriptions and positions, rather than taking screenshots. + Before it can read any interface content, the App displays a disclosure and requires your agreement. + You can disable the service in Android Accessibility settings at any time.

Data Storage

-

All app settings and configurations are stored locally on your device. No data is ever uploaded to external - servers.

+

Settings, your disclosure choice and custom skip rules are stored in the App's local data. You can delete + rules in settings or clear all local data through Android's app settings. Android may back up app settings + according to your system backup preferences; the App does not operate a server or upload data itself. + When you copy controls or export rules, other apps you paste into may receive that information.

Third-Party Services

The App does not integrate any third-party services, SDKs, or analytics tools.

@@ -166,10 +174,10 @@

Contact Us

隐私政策

-

最后更新:2026年1月4日

+

最后更新:2026年10月11日

- 概要:开屏跳过是一款开源应用程序,不会收集、存储或传输任何个人数据。您的隐私受到完全保护。 + 概要:开屏跳过在设备本地处理界面控件,以跳过开屏广告。应用没有网络权限,不会在设备之外收集或分享数据。您主动创建的规则保存在本机;复制控件或导出规则仅按您的操作执行。

简介

@@ -190,13 +198,16 @@

无障碍服务

本应用使用 Android 的无障碍服务来检测并自动点击开屏广告上的"跳过"按钮。此服务:

  • 仅监控屏幕内容以识别跳过按钮
  • -
  • 不会记录或存储任何屏幕内容
  • +
  • 自动检测的控件仅在内存中即时比对,不保存
  • +
  • 自定义规则会将所选应用、控件文字、描述和坐标保存在本机
  • +
  • 复制窗口控件和导出规则功能会将您要求复制的信息放入系统剪贴板
  • 不会向外部传输任何数据
  • 完全在您的设备上本地运行

数据存储

-

所有应用设置和配置都存储在您设备的本地。不会有任何数据上传到外部服务器。

+

服务读取界面控件的文字、描述和位置,不截取屏幕图片。读取界面内容前,应用会显示说明并要求您明确同意。您可以随时在安卓无障碍设置中关闭服务。

+

设置、同意记录和自定义跳过规则保存在应用的本地数据中。您可以在设置中删除规则,或在安卓应用设置中清除全部本地数据。安卓系统可能根据您的系统备份设置备份应用配置;应用本身不运营服务器,也不主动上传数据。复制控件或导出规则后,您粘贴信息的其他应用可能获得这些信息。

第三方服务

本应用不集成任何第三方服务、SDK 或分析工具。

@@ -239,4 +250,4 @@

联系我们

- \ No newline at end of file +