diff --git a/device/testing/device-xiaomi-polaris/APKBUILD b/device/testing/device-xiaomi-polaris/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..00517db714a2c769b1428ff516c02991b6a55030
--- /dev/null
+++ b/device/testing/device-xiaomi-polaris/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Molly Sophia <mollysophia379@gmail.com>
+
+# Reference: <https://postmarketos.org/devicepkg>
+pkgname=device-xiaomi-polaris
+pkgdesc="Xiaomi Mi Mix 2S"
+pkgver=0.1
+pkgrel=0
+url="https://postmarketos.org"
+license="MIT"
+arch="aarch64"
+options="!check !archcheck"
+depends="
+	linux-postmarketos-qcom-sdm845
+	mkbootimg
+	postmarketos-base
+	postmarketos-update-kernel
+	soc-qcom-sdm845
+	soc-qcom-sdm845-ucm
+"
+makedepends="devicepkg-dev"
+source="
+	deviceinfo
+	phoc.ini
+"
+subpackages="
+	$pkgname-nonfree-firmware:nonfree_firmware
+	$pkgname-phosh
+"
+
+build() {
+	devicepkg_build $startdir $pkgname
+}
+
+package() {
+	devicepkg_package $startdir $pkgname
+}
+
+nonfree_firmware() {
+	pkgdesc="Modem, WiFi and GPU Firmware, also needed for osk-sdl"
+	depends="firmware-xiaomi-polaris firmware-xiaomi-polaris-initramfs soc-qcom-sdm845-nonfree-firmware"
+	mkdir "$subpkgdir"
+}
+
+phosh() {
+	install_if="$pkgname=$pkgver-r$pkgrel phosh"
+	install -Dm644 "$srcdir"/phoc.ini \
+		"$subpkgdir"/etc/phosh/phoc.ini
+}
+
+sha512sums="
+04077cdb2a6cc541177981209526e9aea6d715f068b59f9176ff1fdf9ba9d0a00aab5b32eeb78cabef4a77dc24cc5b1bbb92385f9471a0bff3cfb0a750aa731c  deviceinfo
+e2e417169345c86a5dd34ac0afac4b2b983a755f4c7ba5698c385a01f96b9bd2c3ace1ce5a0569c121675e8b87e88e1cf5c648e995d9c50cba66e52bbc83753c  phoc.ini
+"
diff --git a/device/testing/device-xiaomi-polaris/deviceinfo b/device/testing/device-xiaomi-polaris/deviceinfo
new file mode 100644
index 0000000000000000000000000000000000000000..fce5b3601725c0b097de5d294b23d7e75548bd8e
--- /dev/null
+++ b/device/testing/device-xiaomi-polaris/deviceinfo
@@ -0,0 +1,40 @@
+# Reference: <https://postmarketos.org/deviceinfo>
+# Please use double quotes only. You can source this file in shell
+# scripts.
+
+deviceinfo_format_version="0"
+deviceinfo_name="Xiaomi Mi Mix2S"
+deviceinfo_manufacturer="Xiaomi"
+deviceinfo_codename="xiaomi-polaris"
+deviceinfo_year="2018"
+deviceinfo_arch="aarch64"
+deviceinfo_dtb="qcom/sdm845-xiaomi-polaris"
+deviceinfo_append_dtb="true"
+deviceinfo_flash_kernel_on_update="true"
+
+# Device related
+deviceinfo_gpu_accelerated="true"
+deviceinfo_chassis="handset"
+deviceinfo_keyboard="false"
+deviceinfo_external_storage="false"
+deviceinfo_screen_width="1080"
+deviceinfo_screen_height="2160"
+deviceinfo_rootfs_image_sector_size="4096"
+
+# Bootloader related
+deviceinfo_flash_method="fastboot"
+deviceinfo_kernel_cmdline="console=null PMOS_NO_OUTPUT_REDIRECT"
+deviceinfo_generate_bootimg="true"
+deviceinfo_bootimg_qcdt="false"
+deviceinfo_bootimg_mtk_mkimage="false"
+deviceinfo_bootimg_dtb_second="false"
+deviceinfo_flash_offset_base="0x00000000"
+deviceinfo_flash_offset_kernel="0x00008000"
+deviceinfo_flash_offset_ramdisk="0x01000000"
+deviceinfo_flash_offset_second="0x00000000"
+deviceinfo_flash_offset_tags="0x00000100"
+deviceinfo_flash_pagesize="4096"
+deviceinfo_flash_sparse="true"
+
+deviceinfo_modules_initfs="gpi i2c_qcom_geni qcom_pmi8998_charger qcom_fg"
+deviceinfo_mesa_driver="msm"
diff --git a/device/testing/device-xiaomi-polaris/phoc.ini b/device/testing/device-xiaomi-polaris/phoc.ini
new file mode 100644
index 0000000000000000000000000000000000000000..59213ee6e83c1a003d7fbf5d721602697c5556f2
--- /dev/null
+++ b/device/testing/device-xiaomi-polaris/phoc.ini
@@ -0,0 +1,5 @@
+# /etc/phosh/phoc.ini
+# Overwrites values set in /usr/share/phosh/phoc.ini
+
+[output:DSI-1]
+scale = 3
diff --git a/device/testing/firmware-xiaomi-polaris/30-gpu-firmware.files b/device/testing/firmware-xiaomi-polaris/30-gpu-firmware.files
new file mode 100644
index 0000000000000000000000000000000000000000..010cd6b22c9629cf310689d0dc2724852f74af06
--- /dev/null
+++ b/device/testing/firmware-xiaomi-polaris/30-gpu-firmware.files
@@ -0,0 +1,3 @@
+/lib/firmware/qcom/a630_gmu.bin
+/lib/firmware/qcom/a630_sqe.fw
+/lib/firmware/qcom/sdm845/polaris/a630_zap.mbn
diff --git a/device/testing/firmware-xiaomi-polaris/APKBUILD b/device/testing/firmware-xiaomi-polaris/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..3d05f3995aa4a819ab49418ed94bdbbdd2fdf778
--- /dev/null
+++ b/device/testing/firmware-xiaomi-polaris/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Molly Sophia <mollysophia379@gmail.com>
+
+pkgname=firmware-xiaomi-polaris
+pkgver=0.1
+pkgrel=0
+pkgdesc="Firmware for Xiaomi Mi Mix2s"
+url="https://github.com/MollySophia/firmware-xiaomi-polaris"
+arch="aarch64"
+depends="linux-firmware-qcom linux-firmware-qca linux-firmware-ath10k"
+license="proprietary"
+options="!check !strip !archcheck !tracedeps pmb:cross-native"
+
+_version="ec608e1a8bf2d4aded30abed8476f805fd6f6e3c"
+
+source="$pkgname.tar.gz::$url/archive/$_version.tar.gz
+	firmware.files
+	30-gpu-firmware.files"
+subpackages="
+	$pkgname-initramfs:firmware_initramfs"
+
+package() {
+	cd "$srcdir/$pkgname-$_version/"
+	for i in $(cat "$srcdir"/firmware.files); do
+		install -Dm644 "$i" "$pkgdir/$i"
+	done
+}
+
+firmware_initramfs() {
+	pkgdesc="Files to be included in the initramfs to support osk-sdl"
+	depends="$pkgname"
+	install_if="$pkgname-nonfree-firmware"
+	mkdir "$subpkgdir"
+
+	install -Dm644 "$srcdir/30-gpu-firmware.files" \
+		"$subpkgdir/etc/postmarketos-mkinitfs/files/30-gpu-firmware.files"
+}
+
+sha512sums="
+9e9d095d4c2469acd22325c1546b53437557362cd90c407b9f212f9ac168ef577d5fb9b534b0b4eaa7f3da221d13ca4f488aa9364a34d6c2490aeac5e79145ee  firmware-xiaomi-polaris.tar.gz
+2a172fff3844c392c3f03c6d7f1508e03ed18fe916261cedebde79bb38fc21aaf6ed02e5cb88aa3546ea7b978717dc15d0bc71f64703d848cb1d974756dd3670  firmware.files
+7d430240abae210dd28db688258b45d025915db6fe60345346a1d2d12d7f5bddb0755b3bed8689f54081b7a5188d04906b95c1ea6bbf599019e54544bde1210b  30-gpu-firmware.files
+"
diff --git a/device/testing/firmware-xiaomi-polaris/firmware.files b/device/testing/firmware-xiaomi-polaris/firmware.files
new file mode 100644
index 0000000000000000000000000000000000000000..912d7c28234091569e1930aa6c43b42274ebf3c3
--- /dev/null
+++ b/device/testing/firmware-xiaomi-polaris/firmware.files
@@ -0,0 +1,17 @@
+./lib/firmware/tas2559_uCDSP.bin
+./lib/firmware/postmarketos/ath10k/WCN3990/hw1.0/board-2.bin
+./lib/firmware/postmarketos/qca/crbtfw21.tlv
+./lib/firmware/qcom/sdm845/polaris/adspr.jsn
+./lib/firmware/qcom/sdm845/polaris/adspua.jsn
+./lib/firmware/qcom/sdm845/polaris/cdspr.jsn
+./lib/firmware/qcom/sdm845/polaris/modemr.jsn
+./lib/firmware/qcom/sdm845/polaris/modemuw.jsn
+./lib/firmware/qcom/sdm845/polaris/venus.mbn
+./lib/firmware/qcom/sdm845/polaris/wlanmdsp.mbn
+./lib/firmware/qcom/sdm845/polaris/a630_zap.mbn
+./lib/firmware/qcom/sdm845/polaris/adsp.mbn
+./lib/firmware/qcom/sdm845/polaris/cdsp.mbn
+./lib/firmware/qcom/sdm845/polaris/ipa_fws.mbn
+./lib/firmware/qcom/sdm845/polaris/mba.mbn
+./lib/firmware/qcom/sdm845/polaris/modem.mbn
+./lib/firmware/qca/polaris/crnv21.bin
\ No newline at end of file