samsung-a20: new device (Galaxy A20) (MR 1880)

This commit is contained in:
arpio 2021-01-20 20:05:19 -07:00 committed by Oliver Smith
parent 962a64697d
commit c5692dfc71
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
6 changed files with 5363 additions and 0 deletions

View file

@ -0,0 +1,30 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-a20
pkgdesc="Samsung Galaxy A20"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="postmarketos-base linux-samsung-a20 mkbootimg mesa-dri-gallium"
makedepends="devicepkg-dev"
source="deviceinfo initfs-hook.sh"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
nonfree_firmware() {
pkgdesc="Non-free firmware for the Samsung Galaxy A20"
depends="firmware-samsung-a20"
mkdir "$subpkgdir"
}
sha512sums="46cfa2dedbe093729f027cc9441d331bcb92688442f296e78b13556edee26fc14c433a58018134a7466fb0828fa0f204b22d1d50794ffc4d3b6cce57f441ef8c deviceinfo
d5c8f7ed89a842da83109e899ba55802cf07518bea057c8f0a70d942e4a17ce87bb470741a99369bc095c0005c529047437a1833294ba903a93eb4f6822a4611 initfs-hook.sh"

View file

@ -0,0 +1,39 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Samsung Galaxy A20"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-a20"
deviceinfo_year="2019"
deviceinfo_dtb=""
deviceinfo_modules_initfs=""
deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1560"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline="androidboot.selinux=permissive androidboot.selinux=permissive"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_heimdall_partition_kernel="boot"
deviceinfo_flash_heimdall_partition_system="system"
# USB related
deviceinfo_usb_idVendor="0x04e8" # Samsung Electronics Co., Ltd
deviceinfo_usb_idProduct="0x6860" # Galaxy (MTP)

View file

@ -0,0 +1,28 @@
#!/bin/sh
# This is a trimmed down version of setup_usb_network_configfs from
# pmOS's init_functions.sh
# See: https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
CONFIGFS=/config/usb_gadget
SYS=/sys/class/android_usb/android0
# Create an usb gadet configuration
mkdir $CONFIGFS/g1 || echo "initfs-hook: Couldn't create $CONFIGFS/g1"
# Create rndis function.
mkdir $CONFIGFS/g1/functions/rndis.usb0 \
|| echo "initfs-hook: Couldn't create $CONFIGFS/g1/functions/rndis.usb0"
# Create configuration instance for the gadget
mkdir $CONFIGFS/g1/configs/c.1 \
|| echo "initfs-hook: Couldn't create $CONFIGFS/g1/configs/c.1"
# Link the rndis instance to the configuration
ln -s $CONFIGFS/g1/functions/rndis.usb0 $CONFIGFS/g1/configs/c.1 \
|| echo "initfs-hook: Couldn't symlink rndis.usb0"
echo "0" >"$SYS/enable"
echo "$(ls /sys/class/udc)" > $CONFIGFS/g1/UDC || echo " Couldn't write UDC"
echo "rndis" >"$SYS/functions"
echo "1" >"$SYS/enable"

View file

@ -0,0 +1,51 @@
pkgname=firmware-samsung-a20
pkgver=1
pkgrel=0
pkgdesc="Firmware for the Samsung Galaxy A20"
url="https://gitlab.com/arpio/proprietary_vendor_a205"
arch="noarch"
license="proprietary"
options="!check !archcheck !strip !spdx"
# Source
_commit="06b2a884c0c0ebf244995d31895d396b30a40170"
_vendor_files="
APBargeIn_AUDIO_SLSI.bin
AP_AUDIO_SLSI.bin
Tfa9896.cnt
calliope_dram.bin
calliope_sram.bin
fimc_is_lib.bin
fimc_is_rta.bin
mfc_fw.bin
setfile_3l6.bin
setfile_4ha_front.bin
setfile_imx258.bin
setfile_sr556.bin
"
for _file in $_vendor_files; do
source="$source $pkgname-$_commit-$_file::$url/-/raw/master/firmware/$_file"
done
package() {
local file
for file in $_vendor_files; do
install -Dm644 "$srcdir/$pkgname-$_commit-$file" \
"$pkgdir/lib/firmware/postmarketos/$file"
done
}
sha512sums="49805625aa39c7eee135de4cf2ae16e2665589a86f777fc2703d8f21f0a96d6e07ce9cc36fb20eeaa6dd09a76850236e27d2b6869cb08c31ab8b772714e7b6c1 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-APBargeIn_AUDIO_SLSI.bin
f11246d886b4adb16d3c41bd9750a4183301e594bc163b0790c010ce381447c18f180a57c82dbc2c74d2f841fec3e8ea39bb8acd85f45d1b3b0f897541efd485 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-AP_AUDIO_SLSI.bin
134594d5041554ede2508dc47aa1043e55965f34b40a5d1b76c537b8adbb5886539b1ffd484d3d177e475a11c47ca621c90f15e578e329ddbb84f368e84fbdf9 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-Tfa9896.cnt
088435ff7e7dfb2510d7428ff73c5eb2d42a204ec73c93c602bd98816a483406c2955917fb1e91809188eaafa0c2b21f612ca4f48bbd909f501f7aeb5aeb5f96 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-calliope_dram.bin
ea37791306b295d2c234052501194c5c98d9d713617f1e28379c2d09b394d2cc3213bae1e5d850eec38e8565a32af4dcaa319fcb29b16b9322fa9cc6db442eff firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-calliope_sram.bin
8ca1b33c7d36aefb51a9c4b5187edff0d72c20d56b6885a34062cb2ebe94511e8459da8997cd91fd5bbbd1da3176c4119215de7e1bb59c3c49f1ae6d73b76d18 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-fimc_is_lib.bin
665cb23f245f43f557deb68c8b43cbd8459ff0bf8f2c4bb7fd56079790c5b4650e67382c4f8d4e731bf52ac8abe6a924c6ef122bac0e57b0000503651f7d14b4 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-fimc_is_rta.bin
7b99132e5b33caeadc438a7a5f5e1dc0674a7fabd3f213fe2c88a1e215320fe74fc57a783eff22c15ce171f2a5e047d9364b6e3eee6b70c95954b0cb0f2a46fb firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-mfc_fw.bin
166b4876d49685ab1d34b492029c97b3000c43b1c6f83cd7a443f20453223dbeff19ffb3ba914b7eb63525b2308a01875609561ad52c103153bf023f245c63f6 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-setfile_3l6.bin
8e3fe313851a397b6927ef838f7fd765e1afb34f63913ec45a314d2db88909106f5f32045fb95cdabc51c23d4499645ab7c14a98d24371d24d912250680974c2 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-setfile_4ha_front.bin
3a3b3e36cdc104d7e27d93d9307615171646e30f0e1651867262573559dfc7ee256f7fc40e2ac1fe599bf94a47025dadb86b48ec6366ce78dae4c101cdc52770 firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-setfile_imx258.bin
0f195297a84aa88fe3ffd9f342faeaaeae7fb0baea9530d2858a1509a11c77e11d254c13efb2d182803280958a12885e5d3d64cb20bb763ae1712abbe966f11d firmware-samsung-a20-06b2a884c0c0ebf244995d31895d396b30a40170-setfile_sr556.bin"

View file

@ -0,0 +1,50 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/pmos-a20_defconfig
pkgname=linux-samsung-a20
pkgver=4.4.250
pkgrel=0
pkgdesc="Samsung Galaxy A20 kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-a20"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="bash bc bison devicepkg-dev flex openssl-dev perl gcc6"
# Compiler: GCC 6 (doesn't boot when compiled with newer versions)
if [ "${CC:0:5}" != "gcc6-" ]; then
CC="gcc6-$CC"
HOSTCC="gcc6-gcc"
CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi
# Source
_repository="kernel_samsung_a20"
_commit="ce4a8678bd0e160c910d406463b6df4f6a5be813"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://gitlab.com/arpio/$_repository/-/archive/$_commit/$_repository-$_commit.tar.gz
$_config
"
builddir="$srcdir/$_repository-$_commit"
_outdir="out"
prepare() {
default_prepare
. downstreamkernel_prepare
}
build() {
unset LDFLAGS
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
}
sha512sums="eea2e47941da0594b992bb5c2544c3337753d398d2b137128fccf5d4683f20200266127a3ff353371a44fb8a79199b8e95dcd5d2f609dae53ad39c092b4de79a linux-samsung-a20-ce4a8678bd0e160c910d406463b6df4f6a5be813.tar.gz
2faed6872ca022cf753778f4741098ec1824af529c7f1ff023a34555b2f2182e8fd1fd348797d95101163456f5e081357b24e520c85cfae0ec32dae4147f9d7d config-samsung-a20.aarch64"

File diff suppressed because it is too large Load diff