diff --git a/unihertz/AndroidProducts.mk b/unihertz/AndroidProducts.mk
new file mode 100644
index 0000000..78b078d
--- /dev/null
+++ b/unihertz/AndroidProducts.mk
@@ -0,0 +1,2 @@
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/titan_pocket
\ No newline at end of file
diff --git a/unihertz/board-base.mk b/unihertz/board-base.mk
new file mode 100644
index 0000000..7ac1e0a
--- /dev/null
+++ b/unihertz/board-base.mk
@@ -0,0 +1 @@
+TARGET_SYSTEM_PROP := device/wephone/unihertz/system.prop $(TARGET_SYSTEM_PROP)
diff --git a/unihertz/files/aw9523-key.idc b/unihertz/files/aw9523-key.idc
new file mode 100644
index 0000000..42a9e1d
--- /dev/null
+++ b/unihertz/files/aw9523-key.idc
@@ -0,0 +1,14 @@
+# Agold add for A61 by guotuo
+
+device.internal = 1
+
+touch.deviceType = touchScreen
+touch.orientationAware = 1
+
+keyboard.layout = aw9523-key.kl
+keyboard.characterMap = aw9523-key
+keyboard.orientationAware = 1
+keyboard.builtIn = 1
+
+cursor.mode = navigation
+cursor.orientationAware = 1
diff --git a/unihertz/files/aw9523-key.kcm b/unihertz/files/aw9523-key.kcm
new file mode 100644
index 0000000..aaad4c3
--- /dev/null
+++ b/unihertz/files/aw9523-key.kcm
@@ -0,0 +1,240 @@
+# Agold add for A61 by guotuo
+
+type ALPHA
+
+key A {
+ label: 'A'
+ base: 'a'
+ shift, capslock: 'A'
+ alt: '@'
+ shift+alt, capslock+alt: none
+}
+
+key B {
+ label: 'B'
+ base: 'b'
+ shift, capslock: 'B'
+ alt: '.'
+ shift+alt, capslock+alt: none
+}
+
+key C {
+ label: 'C'
+ number: '8'
+ base: 'c'
+ shift, capslock: 'C'
+ alt: '8'
+ shift+alt, capslock+alt: none
+}
+
+key D {
+ label: 'D'
+ number: '5'
+ base: 'd'
+ shift, capslock: 'D'
+ alt: '5'
+ shift+alt, capslock+alt: none
+}
+
+key E {
+ label: 'E'
+ number: '2'
+ base: 'e'
+ shift, capslock: 'E'
+ alt: '2'
+ shift+alt, capslock+alt: none
+}
+
+key F {
+ label: 'F'
+ number: '6'
+ base: 'f'
+ shift, capslock: 'F'
+ alt: '6'
+ shift+alt, capslock+alt: none
+}
+
+key G {
+ label: 'G'
+ base: 'g'
+ shift, capslock: 'G'
+ alt: '*'
+ shift+alt, capslock+alt: none
+}
+
+key H {
+ label: 'H'
+ base: 'h'
+ shift, capslock: 'H'
+ alt: '#'
+ shift+alt, capslock+alt: none
+}
+
+key I {
+ label: 'I'
+ base: 'i'
+ shift, capslock: 'I'
+ alt: '_'
+ shift+alt, capslock+alt: none
+}
+
+key J {
+ label: 'J'
+ base: 'j'
+ shift, capslock: 'J'
+ alt: '+'
+ shift+alt, capslock+alt: none
+}
+
+key K {
+ label: 'K'
+ base: 'k'
+ shift, capslock: 'K'
+ alt: '"'
+ shift+alt, capslock+alt: none
+}
+
+key L {
+ label: 'L'
+ base: 'l'
+ shift, capslock: 'L'
+ alt: '\''
+ shift+alt, capslock+alt: none
+}
+
+key M {
+ label: 'M'
+ base: 'm'
+ shift, capslock: 'M'
+ alt: '?'
+ shift+alt, capslock+alt: none
+}
+
+key N {
+ label: 'N'
+ base: 'n'
+ shift, capslock: 'N'
+ alt: ','
+ shift+alt, capslock+alt: none
+}
+
+key O {
+ label: 'O'
+ base: 'o'
+ shift, capslock: 'O'
+ alt: '/'
+ shift+alt, capslock+alt: none
+}
+
+key P {
+ label: 'P'
+ base: 'p'
+ shift, capslock: 'P'
+ alt: ':'
+ shift+alt, capslock+alt: none
+}
+
+key Q {
+ label: 'Q'
+ number: '0'
+ base: 'q'
+ shift, capslock: 'Q'
+ alt: '0'
+ shift+alt, capslock+alt: none
+}
+
+key R {
+ label: 'R'
+ number: '3'
+ base: 'r'
+ shift, capslock: 'R'
+ alt: '3'
+ shift+alt, capslock+alt: none
+}
+
+key S {
+ label: 'S'
+ number: '4'
+ base: 's'
+ shift, capslock: 'S'
+ alt: '4'
+ shift+alt, capslock+alt: none
+}
+
+key T {
+ label: 'T'
+ base: 't'
+ shift, capslock: 'T'
+ alt: '('
+ shift+alt, capslock+alt: none
+}
+
+key U {
+ label: 'U'
+ base: 'u'
+ shift, capslock: 'U'
+ alt: '-'
+ shift+alt, capslock+alt: none
+}
+
+key V {
+ label: 'V'
+ number: '9'
+ base: 'v'
+ shift, capslock: 'V'
+ alt: '9'
+ shift+alt, capslock+alt: none
+}
+
+key W {
+ label: 'W'
+ number: '1'
+ base: 'w'
+ shift, capslock: 'W'
+ alt: '1'
+ shift+alt, capslock+alt: none
+}
+
+key X {
+ label: 'X'
+ number: '7'
+ base: 'x'
+ shift, capslock: 'X'
+ alt: '7'
+ shift+alt, capslock+alt: none
+}
+
+key Y {
+ label: 'Y'
+ base: 'y'
+ shift, capslock: 'Y'
+ alt: ')'
+ shift+alt, capslock+alt: none
+}
+
+key Z {
+ label: 'Z'
+ base: 'z'
+ shift, capslock: 'Z'
+ alt: '!'
+ shift+alt, capslock+alt: none
+}
+
+key SPACE {
+ label: ' '
+ number: ' '
+ base: ' '
+ shift: ' '
+ alt: '\uef01'
+ shift+alt: '\uef01'
+}
+
+key ENTER {
+ label: '\n'
+ number: '\n'
+ base: '\n'
+ shift: '\n'
+ alt: '\n'
+ shift+alt: '\n'
+}
+
diff --git a/unihertz/files/aw9523-key.kl b/unihertz/files/aw9523-key.kl
new file mode 100644
index 0000000..165032a
--- /dev/null
+++ b/unihertz/files/aw9523-key.kl
@@ -0,0 +1,105 @@
+key 399 GRAVE
+key 2 1
+key 3 2
+key 4 3
+key 5 4
+key 6 5
+key 7 6
+key 8 7
+key 9 8
+key 10 9
+key 11 0
+key 158 BACK
+key 230 SOFT_RIGHT
+key 60 SOFT_RIGHT
+key 107 ENDCALL
+key 62 ENDCALL
+key 229 MENU
+key 139 MENU
+key 59 MENU
+key 127 SYM
+key 217 SEARCH
+key 228 POUND
+key 227 STAR
+key 231 CALL
+key 61 CALL
+key 232 DPAD_CENTER
+key 108 DPAD_DOWN
+key 103 DPAD_UP
+key 102 HOME
+key 105 DPAD_LEFT
+key 106 DPAD_RIGHT
+key 115 VOLUME_UP
+key 114 VOLUME_DOWN
+key 113 MUTE
+key 116 POWER
+key 212 CAMERA
+key 211 FOCUS
+
+key 16 Q
+key 17 W
+key 18 E
+key 19 R
+key 20 T
+key 21 Y
+key 22 U
+key 23 I
+key 24 O
+key 25 P
+key 26 LEFT_BRACKET
+key 27 RIGHT_BRACKET
+key 43 BACKSLASH
+
+key 30 A
+key 31 S
+key 32 D
+key 33 F
+key 34 G
+key 35 H
+key 36 J
+key 37 K
+key 38 L
+key 39 SEMICOLON
+key 40 APOSTROPHE
+key 14 DEL
+
+key 44 Z
+key 45 X
+key 46 C
+key 47 V
+key 48 B
+key 49 N
+key 50 M
+key 51 COMMA
+key 52 PERIOD
+key 53 SLASH
+key 28 ENTER
+
+key 56 ALT_LEFT
+key 100 ALT_RIGHT
+key 42 SHIFT_LEFT
+key 54 SHIFT_RIGHT
+key 15 TAB
+key 57 SPACE
+key 150 EXPLORER
+key 155 ENVELOPE
+
+key 12 MINUS
+key 13 EQUALS
+key 215 AT
+
+key 164 MEDIA_PLAY_PAUSE
+key 128 MEDIA_STOP
+key 163 MEDIA_NEXT
+key 165 MEDIA_PREVIOUS
+key 168 MEDIA_REWIND
+key 159 MEDIA_FAST_FORWARD
+
+# agold add
+key 249 FUNC1
+key 250 FUNC2
+# add for a83 function key
+key 183 FUNC1
+
+key 580 APP_SWITCH
+
diff --git a/unihertz/files/f22pro-animation.zip b/unihertz/files/f22pro-animation.zip
new file mode 100644
index 0000000..13f3012
Binary files /dev/null and b/unihertz/files/f22pro-animation.zip differ
diff --git a/unihertz/files/mtk-kpd.idc b/unihertz/files/mtk-kpd.idc
new file mode 100644
index 0000000..90babbb
--- /dev/null
+++ b/unihertz/files/mtk-kpd.idc
@@ -0,0 +1,31 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# Emulator keyboard configuration file #2.
+#
+
+touch.deviceType = touchScreen
+touch.orientationAware = 1
+
+keyboard.layout = mtk-kpd
+keyboard.characterMap = qwerty
+keyboard.orientationAware = 1
+
+# AGOLD zhangyongjiang modify from 1 to 0 for a66/a83.
+keyboard.builtIn = 0
+
+cursor.mode = navigation
+cursor.orientationAware = 1
+
diff --git a/unihertz/files/mtk-kpd.kl b/unihertz/files/mtk-kpd.kl
new file mode 100644
index 0000000..5f010b1
--- /dev/null
+++ b/unihertz/files/mtk-kpd.kl
@@ -0,0 +1,13 @@
+# Keylayout for Unihertz devices with a dedicated PTT button
+# Volume buttons
+key 115 VOLUME_UP
+key 114 VOLUME_DOWN
+
+# Power button
+key 116 POWER
+
+# PTT - Remap to camera by default
+# CAMERA is delivered to apps, so remapping via
+# third-party apps is possible
+key 249 CAMERA
+key 250 CAMERA
diff --git a/unihertz/files/mtk-pad.idc b/unihertz/files/mtk-pad.idc
new file mode 100644
index 0000000..5947b5d
--- /dev/null
+++ b/unihertz/files/mtk-pad.idc
@@ -0,0 +1,22 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# Emulator keyboard configuration file #2.
+#
+
+touch.deviceType = touchPad
+touch.orientationAware = 1
+
+
diff --git a/unihertz/files/mtk-tpd.kl b/unihertz/files/mtk-tpd.kl
new file mode 100644
index 0000000..9024e2f
--- /dev/null
+++ b/unihertz/files/mtk-tpd.kl
@@ -0,0 +1,6 @@
+# Keylayout for Unihertz devices with capacitive keys
+# Capacitive navigation
+key 172 HOME VIRTUAL
+key 580 APP_SWITCH VIRTUAL
+key 158 BACK VIRTUAL
+
diff --git a/unihertz/files/privapp-permissions-net.mezimmah.wkt9.xml b/unihertz/files/privapp-permissions-net.mezimmah.wkt9.xml
new file mode 100644
index 0000000..be7fa9e
--- /dev/null
+++ b/unihertz/files/privapp-permissions-net.mezimmah.wkt9.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/unihertz/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png b/unihertz/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png
new file mode 100644
index 0000000..14109dc
Binary files /dev/null and b/unihertz/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png differ
diff --git a/unihertz/overlay/frameworks/base/core/res/res/values/config.xml b/unihertz/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 0000000..b3ab443
--- /dev/null
+++ b/unihertz/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,56 @@
+
+
+
+ - "usb\\d"
+ - "rndis\\d"
+
+
+
+ - "wlan0"
+ - "softap.*"
+ - "wifi_br0"
+ - "wigig0"
+
+
+
+ - bnep\\d
+ - "bt-pan"
+
+
+ true
+ true
+ "M50 0C77.6 0 100 22.4 100 50C100 77.6 77.6 100 50 100C22.4 100 0 77.6 0 50C0 22.4 22.4 0 50 0Z"
+ true
+
+ com.android.wallpaperpicker
+ true
+ 5
+ true
+
+ com.android.systemui/com.android.systemui.doze.DozeService
+ true
+ true
+ 8.0dip
+ 4.0dip
+
+ true
+
+
+
+ - 0
+
+ - 1
+
+ - 2
+
+ - 3
+
+
+ true
+
+ android.sensor.light
+
+ 2
+
+ true
+
diff --git a/unihertz/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml b/unihertz/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml
new file mode 100644
index 0000000..ac018af
--- /dev/null
+++ b/unihertz/overlay/frameworks/base/core/res/res/xml/config_webview_packages.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ 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
+
+
+
+
+
diff --git a/unihertz/patches/remove_launcher3_qsb.patch b/unihertz/patches/remove_launcher3_qsb.patch
new file mode 100644
index 0000000..f3d9412
--- /dev/null
+++ b/unihertz/patches/remove_launcher3_qsb.patch
@@ -0,0 +1,13 @@
+diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
+index 88a9abaf8d..d4a65f05bb 100644
+--- a/src/com/android/launcher3/config/FeatureFlags.java
++++ b/src/com/android/launcher3/config/FeatureFlags.java
+@@ -52,7 +52,7 @@ public final class FeatureFlags {
+ * Enable moving the QSB on the 0th screen of the workspace. This is not a configuration feature
+ * and should be modified at a project level.
+ */
+- public static final boolean QSB_ON_FIRST_SCREEN = true;
++ public static final boolean QSB_ON_FIRST_SCREEN = false;
+
+ /**
+ * Feature flag to handle define config changes dynamically instead of killing the process.
diff --git a/unihertz/system.prop b/unihertz/system.prop
new file mode 100644
index 0000000..be31202
--- /dev/null
+++ b/unihertz/system.prop
@@ -0,0 +1,5 @@
+# Fixed Bluetooth audio
+persist.bluetooth.bluetooth_audio_hal.disabled=true
+persist.sys.bt.unsupport.features=00000000
+persist.sys.bt.unsupport.states=00000000
+persist.sys.bt.unsupport.stdfeatures=000001
diff --git a/unihertz/titan_pocket.mk b/unihertz/titan_pocket.mk
new file mode 100644
index 0000000..9368ab7
--- /dev/null
+++ b/unihertz/titan_pocket.mk
@@ -0,0 +1,64 @@
+#
+# All components inherited here go to system image
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/mainline_system.mk)
+
+# Enable mainline checking
+# PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
+
+#
+# All components inherited here go to system_ext image
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+
+#
+# All components inherited here go to product image
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
+
+#
+# Special settings for GSI releasing
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_release.mk)
+
+
+PRODUCT_NAME := titan_pocket
+PRODUCT_DEVICE := unihertz
+PRODUCT_BRAND := wephone
+PRODUCT_MODEL := Unihertz Titan Pocket - wePhone
+
+# This is for a device
+PRODUCT_CHARACTERISTICS := device
+
+PRODUCT_PACKAGE_OVERLAYS += device/wephone/unihertz/overlay
+
+PRODUCT_COPY_FILES += \
+ device/wephone/unihertz/files/aw9523-key.idc:$(TARGET_COPY_OUT_SYSTEM)/usr/idc/aw9523-key.idc \
+ device/wephone/unihertz/files/aw9523-key.kcm:$(TARGET_COPY_OUT_SYSTEM)/usr/keychars/aw9523-key.kcm \
+ device/wephone/unihertz/files/aw9523-key.kl:$(TARGET_COPY_OUT_SYSTEM)/usr/keylayout/aw9523-key.kl \
+ device/wephone/duoqin/files/mtk-kpd.idc:$(TARGET_COPY_OUT_SYSTEM)/usr/idc/mtk-kpd.idc \
+ device/wephone/duoqin/files/mtk-kpd.kl:$(TARGET_COPY_OUT_SYSTEM)/usr/keylayout/mtk-kpd.kl \
+ device/wephone/duoqin/files/mtk-pad.idc:$(TARGET_COPY_OUT_SYSTEM)/usr/idc/mtk-pad.idc \
+ device/wephone/duoqin/files/mtk-tpd.kl:$(TARGET_COPY_OUT_SYSTEM)/usr/keylayout/mtk-tpd.kl
+
+PRODUCT_PACKAGES += \
+ BromiteSystemWebView \
+ Conversations \
+ Davx5 \
+ DeskClock \
+ Etar \
+ ExactCalculator \
+ FDroid \
+ Gallery2 \
+ Linphone \
+ Nextcloud \
+ NextcloudNotes \
+ Wireguard
+
+PRODUCT_PACKAGES -= \
+ EasterEgg \
+ webview \
+ libwebviewchromium_loader \
+ libwebviewchromium_plat_support
diff --git a/unihertz/unihertz/BoardConfig.mk b/unihertz/unihertz/BoardConfig.mk
new file mode 100644
index 0000000..57ecb4c
--- /dev/null
+++ b/unihertz/unihertz/BoardConfig.mk
@@ -0,0 +1,8 @@
+include build/make/target/board/generic_arm64_ab/BoardConfig.mk
+include device/wephone/duoqin/board-base.mk
+
+ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),)
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648
+else
+BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 33554432
+endif