diff --git a/.gitignore b/.gitignore
index 70f48b9..3619b33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -82,3 +82,6 @@ data/
 build/
 
 docs/
+HanoiTowers/client/android/build.gradle
+HanoiTowers/client/android/AndroidManifest.xml
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d748342..033996b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,9 +73,11 @@ SET(INSTALLER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/installer/")
 SET(DATA_DIR "${INSTALLER_DIR}/packages/HanoiTowers/data")
 
 SET(TARGET_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Distro")
-SET(PRODUCT_VER_Mj 1)
-SET(PRODUCT_VER_Mn 6)
-SET(PRODUCT_VER_Re 2)
+
+updateGitVars()
+set(HANOI_TOWERS_SHORT_VERSION "1.${GIT_COMMIT_COUNT}")
+set(HANOI_TOWERS_VERSION "${CHEAT_CARD_SHORT_VERSION}.${GIT_COMMIT_HASH}")
+
 
 file(MAKE_DIRECTORY ${TARGET_DIR})
 initAll()
diff --git a/HanoiTowers/Protockol/CMakeLists.txt b/HanoiTowers/Protockol/CMakeLists.txt
index 805d89b..2b9dabb 100644
--- a/HanoiTowers/Protockol/CMakeLists.txt
+++ b/HanoiTowers/Protockol/CMakeLists.txt
@@ -33,4 +33,3 @@ target_link_libraries(${CURRENT_PROJECT} PUBLIC Heart)
 target_include_directories(${CURRENT_PROJECT} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src")
 target_include_directories(${CURRENT_PROJECT} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/private")
 
-setVersionForTarget(${CURRENT_PROJECT} ${PRODUCT_VER_Mj} ${PRODUCT_VER_Mn} ${PRODUCT_VER_Re})
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index a23a279..6262dba 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -78,6 +78,13 @@ if (ANDROID)
 
     endif()
 
+    set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
+    configure_file("${manifest_file}.in" ${manifest_file} @ONLY)
+
+    set(gradle_file "${CMAKE_CURRENT_SOURCE_DIR}/android/build.gradle")
+    configure_file("${gradle_file}.in" ${gradle_file} @ONLY)
+
+
     file(GLOB java_files
        "android/src/com/quasarapp/androidtools/*.java"
     )
diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml.in
similarity index 74%
rename from HanoiTowers/client/android/AndroidManifest.xml
rename to HanoiTowers/client/android/AndroidManifest.xml.in
index 5497d74..0d292d4 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml.in
@@ -1,5 +1,10 @@
 <?xml version="1.0"?>
-<manifest package="df.mobily.hanoi_towers" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.6.1.2" android:versionCode="28" android:installLocation="auto">
+<manifest
+package="df.mobily.hanoi_towers"
+xmlns:android="http://schemas.android.com/apk/res/android"
+android:versionName="@HANOI_TOWERS_VERSION@"
+android:versionCode="@GIT_COMMIT_COUNT@"
+android:installLocation="auto">
     <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
          Remove the comment if you do not require these default permissions. -->
     <!-- %%INSERT_PERMISSIONS -->
@@ -8,17 +13,38 @@
          Remove the comment if you do not require these default features. -->
     <!-- %%INSERT_FEATURES -->
 
-    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
-    <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
-        <!-- Sample AdMob app ID: ca-app-pub-5799112356811682~1226170116 -->
-        <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-5799112356811682~1226170116"/>
-        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="com.quasarapp.androidtools.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop" android:exported="true">
+    <supports-screens
+    android:largeScreens="true"
+    android:normalScreens="true"
+    android:anyDensity="true"
+    android:smallScreens="true"/>
+    <application
+    android:hardwareAccelerated="true"
+    android:name="com.quasarapp.androidtools.MainApplication"
+    android:label="-- %%INSERT_APP_NAME%% --"
+    android:extractNativeLibs="true"
+    android:requestLegacyExternalStorage="true"
+    android:icon="@drawable/icon">
+        <activity
+        android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
+        android:name="com.quasarapp.androidtools.MainActivity"
+        android:label="-- %%INSERT_APP_NAME%% --"
+        android:screenOrientation="landscape"
+        android:launchMode="singleTop"
+        android:exported="true"
+
+        android:theme="@style/splashScreenTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
+            <intent-filter>
+                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="data/cheatcard"/>
+            </intent-filter>
             <!-- Application arguments -->
-            <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
+            <meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --"/>
             <!-- Application arguments -->
             <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
             <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
@@ -58,9 +84,6 @@
                           signal is sent! -->
             <meta-data android:name="android.app.background_running" android:value="false"/>
             <!-- Background running -->
-            <!-- auto screen scale factor -->
-            <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
-            <!-- auto screen scale factor -->
             <!-- extract android style -->
             <!-- available android:values :
                 * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons
@@ -70,14 +93,13 @@
                 -->
             <meta-data android:name="android.app.extract_android_style" android:value="default"/>
             <!-- extract android style -->
-            <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
-            <meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait"/>
-            <meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape"/>
+            <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splashscreen"/>
+            <meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/splashscreen_port"/>
+            <meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/splashscreen_land"/>
         </activity>
         <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
     </application>
 
-<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
-    <uses-permission android:name="android.permission.INTERNET"/>
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 </manifest>
diff --git a/HanoiTowers/client/android/build.gradle b/HanoiTowers/client/android/build.gradle.in
similarity index 97%
rename from HanoiTowers/client/android/build.gradle
rename to HanoiTowers/client/android/build.gradle.in
index fb15ae9..dc4feaa 100644
--- a/HanoiTowers/client/android/build.gradle
+++ b/HanoiTowers/client/android/build.gradle.in
@@ -75,6 +75,6 @@ android {
         resConfig "en"
         multiDexEnabled true
         minSdkVersion = 21
-        targetSdkVersion = 31
+        targetSdkVersion = @ANDROID_API_VERSION@
     }
 }