From e4cc96d27e8b4d3b5605c2843d4a2a474b207944 Mon Sep 17 00:00:00 2001 From: Alexey Min Date: Sun, 2 Jun 2019 02:49:02 +0000 Subject: [PATCH] samsung-klte: downstream: add android adaptation (!332) Lots of device-specific configurations: * android mount points and mounts * android groups and users (needed for udev rules) * android udev rules for platform devices (needed for android services to run) * NetworkManager device-specific config * wpa_supplicant device-specific config * device-specific openrc service for late initcalls to bring up Wi-Fi hardware * extra helper scripts to call logcat, set backlight brightness, get battery status, unlock kde screenlocker session * use kernel cmdline from downstream android to keep it as close to android as possible. Important for android in lxc container later --- .../device-samsung-klte/70-klte-android.rules | 209 ++++++++++++++++++ device/device-samsung-klte/APKBUILD | 73 +++++- .../NetworkManager-klte.conf | 6 + device/device-samsung-klte/battery-status | 2 + .../device-samsung-klte-hybris.post-install | 17 ++ ...amsung-klte-kernel-downstream.post-install | 10 + device/device-samsung-klte/deviceinfo | 2 +- device/device-samsung-klte/fstab.android | 20 ++ device/device-samsung-klte/set-brightness | 5 + 9 files changed, 337 insertions(+), 7 deletions(-) create mode 100644 device/device-samsung-klte/70-klte-android.rules create mode 100644 device/device-samsung-klte/NetworkManager-klte.conf create mode 100755 device/device-samsung-klte/battery-status create mode 100755 device/device-samsung-klte/device-samsung-klte-hybris.post-install create mode 100755 device/device-samsung-klte/device-samsung-klte-kernel-downstream.post-install create mode 100644 device/device-samsung-klte/fstab.android create mode 100755 device/device-samsung-klte/set-brightness diff --git a/device/device-samsung-klte/70-klte-android.rules b/device/device-samsung-klte/70-klte-android.rules new file mode 100644 index 000000000..77d2cb185 --- /dev/null +++ b/device/device-samsung-klte/70-klte-android.rules @@ -0,0 +1,209 @@ +ACTION=="add", KERNEL=="diag", OWNER="aid_system", GROUP="aid_qcom_diag", MODE="0660" +ACTION=="add", KERNEL=="genlock", OWNER="aid_system", GROUP="aid_system", MODE="0666" +ACTION=="add", KERNEL=="kgsl", OWNER="aid_system", GROUP="aid_system", MODE="0666" +ACTION=="add", KERNEL=="kgsl-3d0", OWNER="aid_system", GROUP="aid_system", MODE="0666" +ACTION=="add", KERNEL=="kgsl-2d0", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="kgsl-2d1", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="ion", OWNER="aid_system", GROUP="aid_system", MODE="0664" +ACTION=="add", KERNEL=="rtc0", OWNER="aid_system", GROUP="aid_system", MODE="0600" +ACTION=="add", KERNEL=="smd0", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="smd4", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="smd_cxm_qmi", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smd5", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="smd6", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="smd7", OWNER="aid_bluetooth", GROUP="aid_bluetooth", MODE="0660" +ACTION=="add", KERNEL=="smd11", OWNER="aid_radio", GROUP="aid_radio", MODE="0660" +ACTION=="add", KERNEL=="radio0", OWNER="aid_system", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="rfcomm0", OWNER="aid_bluetooth", GROUP="aid_bluetooth", MODE="0660" +ACTION=="add", KERNEL=="smdcntl0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl1", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl2", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl3", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl4", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl5", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl6", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcntl7", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev1", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev2", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev3", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev4", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev5", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev6", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev7", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smdcnt_rev8", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smuxctl32", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl1", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl2", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl3", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl4", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl5", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl6", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl7", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="sdioctl8", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="rmnet_mux_ctrl", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl1", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl2", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl3", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl4", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl5", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl6", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl7", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl8", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl9", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl10", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl11", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl12", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl13", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl14", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl15", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="hsicctl16", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="video*", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="media*", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="v4l-subdev*", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="qseecom", OWNER="aid_system", GROUP="aid_drmrpc", MODE="0660" +ACTION=="add", KERNEL=="gemini0", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="jpeg0", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="jpeg1", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="jpeg2", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="adsprpc-smd", OWNER="aid_system", GROUP="aid_system", MODE="0664" +ACTION=="add", KERNEL=="msm_camera/*", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="gemini/", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="mercury0", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="msm_vidc_reg", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_vidc_dec", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_vidc_dec_sec", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_vidc_enc", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_rotator", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="hw_random", OWNER="root", GROUP="root", MODE="0660" +ACTION=="add", KERNEL=="adsprpc-smd", OWNER="aid_system", GROUP="aid_system", MODE="0664" +ACTION=="add", KERNEL=="msm_qcelp", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_evrc", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_wma", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_wmapro", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_amrnb", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_amrwb", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_amrwbplus", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_aac", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_multi_aac", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_aac_in", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_qcelp_in", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_evrc_in", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_amrnb_in", OWNER="aid_system", GROUP="aid_audio", MODE="0640" +ACTION=="add", KERNEL=="msm_a2dp_in", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_ac3", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_acdb", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_cad", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_fm", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_mvs", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_pcm_lp_dec", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_preproc_ctl", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_rtac", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_voicememo", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="radio0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="smd3", OWNER="aid_bluetooth", GROUP="aid_net_bt_stack", MODE="0660" +ACTION=="add", KERNEL=="smd2", OWNER="aid_bluetooth", GROUP="aid_net_bt_stack", MODE="0660" +ACTION=="add", KERNEL=="ttyHSL1", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="mdm", OWNER="aid_system", GROUP="aid_radio", MODE="0660" +ACTION=="add", KERNEL=="sdio_tty_ciq_00", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="tty_sdio_00", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="ttyGS0", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="i2c-5", OWNER="aid_media", GROUP="aid_media", MODE="0660" +ACTION=="add", KERNEL=="voice_svc", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="ttyHS3", OWNER="aid_media", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="ttyHS0", OWNER="aid_bluetooth", GROUP="aid_net_bt_stack", MODE="0660" +ACTION=="add", KERNEL=="ttyHS2", OWNER="aid_bluetooth", GROUP="aid_bluetooth", MODE="0660" +ACTION=="add", KERNEL=="btlock", OWNER="aid_bluetooth", GROUP="aid_bluetooth", MODE="0600" +ACTION=="add", KERNEL=="tsc_mux0", OWNER="aid_media", GROUP="aid_media", MODE="0660" +ACTION=="add", KERNEL=="tsc_ci0", OWNER="aid_media", GROUP="aid_media", MODE="0660" +ACTION=="add", KERNEL=="dvb/adapter0/demux*", OWNER="aid_media", GROUP="aid_media", MODE="0440" +ACTION=="add", KERNEL=="dvb/adapter0/dvr*", OWNER="aid_media", GROUP="aid_media", MODE="0660" +ACTION=="add", KERNEL=="dvb/adapter0/video*", OWNER="aid_media", GROUP="aid_media", MODE="0660" +ACTION=="add", KERNEL=="vfsspi", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="ice4_dev", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="pn547", OWNER="aid_nfc", GROUP="aid_nfc", MODE="0660" +ACTION=="add", KERNEL=="bcm2079x", OWNER="aid_nfc", GROUP="aid_nfc", MODE="0660" +ACTION=="add", KERNEL=="sec-nfc", OWNER="aid_nfc", GROUP="aid_nfc", MODE="0660" +ACTION=="add", KERNEL=="shtc1_sensor", OWNER="aid_system", GROUP="aid_system", MODE="0600" +ACTION=="add", KERNEL=="uio0", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="uio1", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="uio2", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="rfkill", OWNER="aid_wifi", GROUP="aid_wifi", MODE="0600" +ACTION=="add", KERNEL=="batch_io", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="ssp_sensorhub", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="iio:device*", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="null", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="zero", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="full", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="ptmx", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="tty", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="random", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="urandom", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="hw_random", OWNER="root", GROUP="aid_system", MODE="0440" +ACTION=="add", KERNEL=="ashmem", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="binder", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="alog/*", OWNER="root", GROUP="aid_log", MODE="0666" +ACTION=="add", KERNEL=="pmsg0", OWNER="root", GROUP="aid_log", MODE="0222" +ACTION=="add", KERNEL=="msm_hw3dc", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="kgsl", OWNER="root", GROUP="root", MODE="0666" +ACTION=="add", KERNEL=="dri/*", OWNER="root", GROUP="aid_graphics", MODE="0666" +ACTION=="add", KERNEL=="diag", OWNER="aid_system", GROUP="aid_qcom_diag", MODE="0660" +ACTION=="add", KERNEL=="diag_arm9", OWNER="aid_radio", GROUP="aid_radio", MODE="0660" +ACTION=="add", KERNEL=="android_adb", OWNER="aid_adb", GROUP="aid_adb", MODE="0660" +ACTION=="add", KERNEL=="android_adb_enable", OWNER="aid_adb", GROUP="aid_adb", MODE="0660" +ACTION=="add", KERNEL=="ttyMSM0", OWNER="aid_bluetooth", GROUP="aid_bluetooth", MODE="0600" +ACTION=="add", KERNEL=="uhid", OWNER="aid_system", GROUP="aid_net_bt_stack", MODE="0660" +ACTION=="add", KERNEL=="uinput", OWNER="aid_system", GROUP="aid_net_bt_stack", MODE="0660" +ACTION=="add", KERNEL=="alarm", OWNER="aid_system", GROUP="aid_radio", MODE="0664" +ACTION=="add", KERNEL=="rtc0", OWNER="aid_system", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="tty0", OWNER="root", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="graphics/*", OWNER="aid_system", GROUP="aid_graphics", MODE="0660" +ACTION=="add", KERNEL=="msm_hw3dm", OWNER="aid_system", GROUP="aid_graphics", MODE="0660" +ACTION=="add", KERNEL=="input/*", OWNER="root", GROUP="aid_input", MODE="0660" +ACTION=="add", KERNEL=="eac", OWNER="root", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="cam", OWNER="root", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="pmem", OWNER="aid_system", GROUP="aid_graphics", MODE="0660" +ACTION=="add", KERNEL=="pmem_adsp*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="pmem_camera*", OWNER="aid_system", GROUP="aid_camera", MODE="0660" +ACTION=="add", KERNEL=="oncrpc/*", OWNER="root", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="adsp/*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="snd/*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="mt9t013", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="msm_camera/*", OWNER="aid_system", GROUP="aid_system", MODE="0660" +ACTION=="add", KERNEL=="akm8976_daemon", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="akm8976_aot", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="akm8973_daemon", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="akm8973_aot", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="bma150", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="cm3602", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="akm8976_pffd", OWNER="aid_compass", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="lightsensor", OWNER="aid_system", GROUP="aid_system", MODE="0640" +ACTION=="add", KERNEL=="msm_pcm_out*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_pcm_in*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_pcm_ctl*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_snd*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_mp3*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="audience_a1026*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="tpa2018d1*", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_audpre", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="msm_audio_ctl", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="htc-acoustic", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="vdec", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="q6venc", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="snd/dsp", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="snd/dsp1", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="snd/mixer", OWNER="aid_system", GROUP="aid_audio", MODE="0660" +ACTION=="add", KERNEL=="smd0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="qmi", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="qmi0", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="qmi1", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="qmi2", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="bus/usb/*", OWNER="root", GROUP="aid_usb", MODE="0660" +ACTION=="add", KERNEL=="mtp_usb", OWNER="root", GROUP="aid_mtp", MODE="0660" +ACTION=="add", KERNEL=="usb_accessory", OWNER="root", GROUP="aid_usb", MODE="0660" +ACTION=="add", KERNEL=="tun", OWNER="aid_system", GROUP="aid_vpn", MODE="0660" +ACTION=="add", KERNEL=="ts0710mux*", OWNER="aid_radio", GROUP="aid_radio", MODE="0640" +ACTION=="add", KERNEL=="ppp", OWNER="aid_radio", GROUP="aid_vpn", MODE="0660" +ACTION=="add", KERNEL=="dvb*", OWNER="root", GROUP="aid_system", MODE="0660" diff --git a/device/device-samsung-klte/APKBUILD b/device/device-samsung-klte/APKBUILD index 99a6bf832..845bb6205 100644 --- a/device/device-samsung-klte/APKBUILD +++ b/device/device-samsung-klte/APKBUILD @@ -1,8 +1,9 @@ # Reference: +# Contributor: Alexey Min pkgname="device-samsung-klte" pkgdesc="Samsung Galaxy S5" -pkgver=0.2 -pkgrel=7 +pkgver=0.3 +pkgrel=0 url="https://postmarketos.org" license="MIT" arch="armv7" @@ -13,8 +14,18 @@ subpackages=" $pkgname-kernel-downstream:kernel_downstream $pkgname-kernel-mainline:kernel_mainline $pkgname-nonfree-firmware:nonfree_firmware + $pkgname-nonfree-userland:nonfree_userland + $pkgname-hybris:hybris + $pkgname-hybris-x11:hybris_x11 +" +source=" + deviceinfo + fstab.android + set-brightness + battery-status + 70-klte-android.rules + NetworkManager-klte.conf " -source="deviceinfo" build() { devicepkg_build $startdir $pkgname @@ -25,9 +36,24 @@ package() { } kernel_downstream() { - pkgdesc="Display and touchscreen works (see device table for details)" - depends="linux-samsung-klte" + pkgdesc="Display, touchscreen, Wi-Fi works (see device table for details)" + depends="linux-samsung-klte firmware-samsung-klte" + install="$pkgname-kernel-downstream.post-install" + devicepkg_subpackage_kernel $startdir $pkgname $subpkgname + + # Disable v4l udev rules (video4linux), because without the camera + # firmware blobs this makes udev helper hang (#1033) + mkdir -p "${subpkgdir}"/etc/udev/rules.d + ln -s /dev/null "${subpkgdir}"/etc/udev/rules.d/60-persistent-v4l.rules + + # NetworkManager configuration - ignore unsupported devices for now and set default dhcp client + install -Dm644 "${startdir}/NetworkManager-klte.conf" \ + "${subpkgdir}/etc/NetworkManager/conf.d/10-klte.conf" + + # Extras, helper scripts that make life of developer/user easier + install -Dm755 "${startdir}/set-brightness" "${subpkgdir}/usr/bin/set-brightness" + install -Dm755 "${startdir}/battery-status" "${subpkgdir}/usr/bin/battery-status" } kernel_mainline() { @@ -42,4 +68,39 @@ nonfree_firmware() { mkdir "$subpkgdir" } -sha512sums="29e7e50db504e75c5179c2b6e8290eda42fba57bb11fa8fc586edb29d6eaa0749554f65012b48b81c73b89c2ba47dc5ffaa8bb74ddafda19fb6353086a48908e deviceinfo" +nonfree_userland() { + pkgdesc="Pulls libhybris (Android) hardware adaptation" + depends="$pkgname-hybris" + mkdir "$subpkgdir" +} + +hybris () { + pkgdesc="libhybris (Android) hardware adaptation" + depends="hybris-base" + install="$pkgname-hybris.post-install" + + mkdir "$subpkgdir" + + # Android mounts (needed for loading firmware and configs from android container) + # Appended to fstab in post-install script + install -Dm644 "${startdir}/fstab.android" "${subpkgdir}/etc/fstab.android" + + # Android udev rules, depend on android users and groups presence + install -Dm644 "${startdir}/70-klte-android.rules" \ + "${subpkgdir}/etc/udev/rules.d/70-klte-android.rules" +} + +hybris_x11() { + pkgdesc="x11 modules for libhybris adaptation" + depends="hybris-base-x11-caf" + install_if="$pkgname-hybris xorg-server" + + mkdir "$subpkgdir" +} + +sha512sums="334b57770c4b0e78e385b3c8a30eb4fad9eea88fed3ddbe7d82341b600feae5418feda6c3afc4ef57bb0a870996c4f249f449cced2a5d952da80158cd7e2c632 deviceinfo +35f3b120152ebe709e11cebc9ced03f21f52768d88bd68ed23ed864fe1dd3b63665c8f74575882e217dd8226ae5d260e5ad2045dc4ab2470c89185f19b81c4a7 fstab.android +f773a9792407c1ad96b11c6673093c9eeff7d538459b7772c5956760a8cbb4de8912b24c77e8812afe056db26fa3e29af09e2a3851828baa0b9a9986bf80790b set-brightness +66db173b9f1075a133efeea8bda94ef08089b7c15acbc1e3aefb9f8510daa7690a0ce2739d20647e096ba69940ac5c4c6699f3b032ec67609ca56f116bb25256 battery-status +a68734d3fe30695d5a9302c92327e8ca564a73d06f0de87371800d1bdf4c541c3721af380b8d44cfa0b4cc1dc8a71586aec3f00bb877ee9dc18f41ba34caaeff 70-klte-android.rules +d508d4e1caa416c7d529c681c13f4a6090467a2110a8e5f0162676d65a6680985704103a800863dfd3215f11ef069f513baa3ce6722e48c2fdbee45cae1139fa NetworkManager-klte.conf" diff --git a/device/device-samsung-klte/NetworkManager-klte.conf b/device/device-samsung-klte/NetworkManager-klte.conf new file mode 100644 index 000000000..e7c43291f --- /dev/null +++ b/device/device-samsung-klte/NetworkManager-klte.conf @@ -0,0 +1,6 @@ +[main] +plugins+=keyfile +dhcp=dhcpcd + +[keyfile] +unmanaged-devices=interface-name:rmnet_usb?;interface-name:rmnet?;interface-name:rev_rmnet? diff --git a/device/device-samsung-klte/battery-status b/device/device-samsung-klte/battery-status new file mode 100755 index 000000000..12ee9ee04 --- /dev/null +++ b/device/device-samsung-klte/battery-status @@ -0,0 +1,2 @@ +#!/bin/sh +cat /sys/class/power_supply/battery/capacity diff --git a/device/device-samsung-klte/device-samsung-klte-hybris.post-install b/device/device-samsung-klte/device-samsung-klte-hybris.post-install new file mode 100755 index 000000000..59d9d0b7c --- /dev/null +++ b/device/device-samsung-klte/device-samsung-klte-hybris.post-install @@ -0,0 +1,17 @@ +#!/bin/sh + +# Append Android mounts to Linux fstab +cat /etc/fstab.android >> /etc/fstab + +# Create android mount points +mkdir -p /data +mkdir -p /system +mkdir -p /cache +mkdir -p /efs +mkdir -p /firmware +mkdir -p /firmware-modem +mkdir -p /external_sd +mkdir -p /misc + +# /vendor symlink (points to nowhere until /system is mounted) +ln -s /system/vendor /vendor diff --git a/device/device-samsung-klte/device-samsung-klte-kernel-downstream.post-install b/device/device-samsung-klte/device-samsung-klte-kernel-downstream.post-install new file mode 100755 index 000000000..2af011afd --- /dev/null +++ b/device/device-samsung-klte/device-samsung-klte-kernel-downstream.post-install @@ -0,0 +1,10 @@ +#!/bin/sh + +# Enable autostart of deferred initcalls (needed to bring Wi-Fi online) +rc-update -q add deferred-initcalls sysinit + +# Explicitly specify wlan device. Without this, p2p0 will be +# selected automatically instead of wlan0, and Wi-Fi will not work. +if ! grep -q "i wlan0" /etc/conf.d/wpa_supplicant ; then + sed -i 's/-Dwext,nl80211/-Dwext,nl80211 -i wlan0/' /etc/conf.d/wpa_supplicant +fi diff --git a/device/device-samsung-klte/deviceinfo b/device/device-samsung-klte/deviceinfo index f170eec40..8b058bffb 100644 --- a/device/device-samsung-klte/deviceinfo +++ b/device/device-samsung-klte/deviceinfo @@ -21,7 +21,7 @@ deviceinfo_dev_keyboard="" # Bootloader related deviceinfo_flash_method="heimdall-bootimg" -deviceinfo_kernel_cmdline_downstream="androidboot.boot_recovery=1" +deviceinfo_kernel_cmdline_downstream="console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 zcache.enabled=1 zcache.compressor=lz4 androidboot.bootdevice=msm_sdcc.1 audit=0 selinux=0 androidboot.selinux=disabled" deviceinfo_kernel_cmdline_mainline="console=ttyMSM0,115200,n8 PMOS_NO_OUTPUT_REDIRECT" deviceinfo_generate_bootimg="true" deviceinfo_bootimg_qcdt_downstream="true" diff --git a/device/device-samsung-klte/fstab.android b/device/device-samsung-klte/fstab.android new file mode 100644 index 000000000..a7c3750af --- /dev/null +++ b/device/device-samsung-klte/fstab.android @@ -0,0 +1,20 @@ +# This file defines mount points that are expected by Android 7.1 +# (Halium-7.1) adaptation; its contents should be appended to device's +# default /etc/fstab file (see postmarketos-base). + +# Android device-specific mount points: + +# Userdata partition (Android apps and user files live here) +/dev/mmcblk0p26 /data ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 + +# This is what is used instead of /system, a Halium-built android system image: +/data/system.img /system ext4 noauto,ro,noatime 0 0 + +# Other: +/dev/mmcblk0p24 /cache ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 0 0 +/dev/mmcblk0p1 /firmware vfat ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337 0 0 +/dev/mmcblk0p2 /firmware-modem vfat ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337 0 0 +/dev/mmcblk0p12 /efs ext4 nosuid,nodev,noatime,noauto_da_alloc,journal_async_commit,errors=panic 0 0 + +# External SD support +/dev/mmcblk1p1 /external_sd vfat noauto,defaults 0 0 diff --git a/device/device-samsung-klte/set-brightness b/device/device-samsung-klte/set-brightness new file mode 100755 index 000000000..c75d53c92 --- /dev/null +++ b/device/device-samsung-klte/set-brightness @@ -0,0 +1,5 @@ +#!/bin/sh +if [ -n "$1" ]; then + echo $1 > /sys/class/leds/lcd-backlight/brightness +fi +cat /sys/class/leds/lcd-backlight/brightness