• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

LineageOS 17.1 for SM-T580 (gtaxlwifi)

Search This thread

the_leech

New member
Apr 13, 2012
2
0
@TALUAtXDA: New release 20200915 doesn't work for me. I downloaded this version twice and installed it without any error. After reboot i always stuck in a boot loop. I also formatted my tablet before i installed version 20200915 but without luck.
Version 20200814 works for me without any problems. did anyone have the same problem?
 

odoll

Senior Member
Feb 12, 2017
214
56

odoll

Senior Member
Feb 12, 2017
214
56
Re: Low audio / sound volume though control set to maximum

is it typical for wifi to revert to disabled after every reboot?

No, not for me

In this release, the microphone gains have been increased. [...] You can change the microphone gains yourself by editing the file /system/vendor/etc/mixer_paths_0.xml as I've done in my change here: https://github.com/TALUAtGitHub/and...mmit/b3128a3ee573cb2c47b243ed5ef03789a79c6386

As I still find the speaker volume too low I tried to do the same for those using TALUAtXDA's above hint as a guidance, but it looks I need some more help.

i) My first issue is that I'm not sure which lines I have to change in mixer_paths_0.xml to increase the speaker volume. While browsing through the file my best guest is that it would be "Speaker Playback Volume" and with that in mind I modified all instances in a copy of´the file from

<ctl name="Speaker Playback Volume" value="31"/>
to
<ctl name="Speaker Playback Volume" value="36"/>

for a test (see attached file)

ii) However my second issue is that I can't edit the original file /system/vendor/etc/mixer_paths_0.xml nor get it replaced with my modified version.
When having booted into Recovery Mode - mounting the system partition - I tried to replace it with TWRP copying the modified file mixer_paths_0.xml from either download or the SDcard to it's destination path /system/vendor/etc/, but just to find that the file size of mixer_paths_0.xml in /system/vendor/etc/ was 0 bytes after that action!?
How would you modify the file?
 

Attachments

  • mixer_paths_0.xml
    68.1 KB · Views: 5

JCordero31

Senior Member
Apr 3, 2008
185
124
Bronx
This is LineageOS 17.1 for the WiFi-only version of the Samsung Galaxy Tab A 10.1" (2016).

I started these builds because the LineageOS builds from @Valera1978 had 2 particular significant bugs in them that were always being mentioned in posts in that thread: display backlight brightness not changeable from full brightness and the touchscreen appearing to not respond after putting the tablet to sleep. Those bugs had existed for quite a long time. @followmsi has some changes in his device tree that fixed those 2 bugs.

Now, my builds are really a continuation of Valera's builds after Valera discontinued work on this device.

Over Valera's old builds, my builds have many improvements and additional features:
  • SELinux is set to enforcing by default for better security.
  • Secure ADB (RSA key verification for ADB) is enabled by default, and ADB isn't enabled by default and isn't enabled on boot.
  • Encryption is fully working.
  • USB tethering works.
  • Support for using USB for MIDI is enabled.
  • Support for screen mirroring using miracast has been added back after being removed by Google using the changes here: https://review.lineageos.org/q/topic:"ten-aosp-wfd"
  • Freeform windows work properly with this abandoned change: https://review.lineageos.org/c/LineageOS/android_frameworks_base/+/275189
  • The kernel has many updates from Linux 4.4, 3.16 and android-3.18, including security and vulnerability fixes, improvements to downstream drivers and additional features (including CPU and GPU voltage control (documentation is further on in this thread), the BFQ IO scheduler and some USB serial drivers updated from Linux v4.4 and enabled (The enabled drivers are the generic, WCH CH341 (also supporting the CH340), SiLabs CP201X, Prolific PL2303 and FTDI SIO USB serial drivers. You can use Termux with tsu and screen to interface with supported USB serial devices via these drivers. They'll be available at /dev/ttyUSB[0-255], though most likely /dev/ttyUSB0.))
  • The userspace lmk (low memory killer) is used.
  • There is support for signature spoofing, notably for microG.
  • sswap has been removed and ZRAM is used instead.
  • The Settings -> Privacy -> Trust -> Restrict USB option works.
  • The Mali graphics blob has been updated to r28p0 from r22p0.
  • OpenCL is working.
  • Assisted GPS works.

Note: I won't build for the LTE variant. These builds are only for the WIFi only variant. I don't have enough disk space to build for both variants and I don't own the LTE variant. Don't try to install these builds on the LTE variant, it won't work.
Downloads:
Latest build from 20200915 (security patch level 20200905): https://drive.google.com/file/d/1pQmrhrzxzNUxDirb-6AyXW8TmkXCCol7/
Some previous releases: https://drive.google.com/drive/folders/1N56WWqP6FG8W_KyWiuUqia80clb8ShtP
Directory for these builds: https://drive.google.com/open?id=1UiUlSbfj3agDvt-4f_YLIS0Xyuz5RtFC

Changelog:
Release for 20200915:
  • Latest updates from LineageOS, including the 20200905 Android security updates.
  • Increase microphone gains.
  • Many more updates from Linux v4.4 and android-3.18 and a few improvements to the kernel.
Previous releases:
Release for 20200821:
  • Latest updates from LineageOS.
  • A few more updates from Linux v4.4 and android-3.18 and improvements to the kernel.
  • Revert 2 changes to the kernel related to hotplugging - should fix an issue where the device doesn't wake up after a while of deep sleeping in certain cases, and a hard reset is needed.
Release for 20200814:
  • Latest updates from LineageOS, including the 20200805 Android security updates.
  • Update the Mali graphics blob to r28p0 from r22p0.
  • Make a few changes for GPS that fix Assisted GPS, and switch to different XTRA servers with HTTPS.
  • Fix OpenCL.
  • Symlink libGLES_mali.so to libOpenCL.so, libOpenCL.so.1 and libOpenCL.so.1.1 instead of copying - saves a significant amount of space in /system and makes the installation zip slightly smaller.
  • Change media volume control to be in 25 steps rather than 15 steps.
  • More updates from Linux v4.4 and android-3.18 to the kernel and some improvements.
Release for 20200711:
  • Latest updates from LineageOS.
  • Android security updates from 20200705, manually applied to skip the wait for them to be merged. ('repopick -t android-10.0.0_r40')
  • Disable window rounded corner animations.
  • Reduce ZRAM size to 512MB.
  • Enable debug.sf.disable_backpressure.
  • A few more updates to the kernel from Linux v4.4 and android-3.18.
  • Port over/import zsmalloc, zram, zswap, zbud and zpool from Linux v4.4.
  • Fix the issues with hanging/freezing that were present in the previous release.
Release for 20200703:
  • Latest updates from LineageOS.
  • Enable support for using USB for MIDI.
  • Fix/workaround issues with USB tethering.
  • Remove sswap and use ZRAM.
  • Latest update from @Valera1978 - "update audio_policy_configuration.xml from SM-A600FN q stock"
  • Many more updates to the kernel from v4.4, android-3.18 and a few from v3.16.
  • Disable the Exynos hotplug governor again. (in the kernel)
Release for 20200608:
  • Latest updates from LineageOS including the 20200605 Android security updates.
  • Use userspace lmkd.
  • Enable Always On Display. (Thanks to @followmsi)
  • Address a few more SELinux denials.
  • power_profile: change names as per pie naming changes.
  • Switch to [email protected]g. (Thanks to @followmsi)
  • Fix freeform window moving/resizing doesn't work (In my new fork of LineageOS' android_frameworks_base repository).
  • Add back support for Miracast using the changes from https://review.lineageos.org/q/topic:%22ten-aosp-wfd%22 (In my new fork of LineageOS' android_frameworks_av repository).
  • More updates to the kernel, including many updates from Linux v4.4 and v3.16 and general updates. There are also improvements to downstream drivers.
Release for 20200512:
  • Latest updates from LineageOS including the 20200505 Android security updates.
  • Address more SELinux denials.
  • Remove the ro.enable_boot_charger_mode property and revert "gtaxl: workaround for offline charging".
  • Remove some useless services for non-existent binaries in init files.
  • Hide sRGB toggle in developer options.
  • Use the latest stock Android 8.1 build fingerprint and update private build description to T580XXU4CSA1.
  • More updates to the kernel, including many updates from Linux 4.4 and to the kernel-based wireguard implementation.
Release for 20200411:
  • Latest updates from LineageOS including the 20200405 Android security updates.
  • Update the cpu.speeds array in the power profile for 1.69GHz, 449MHz and 343MHz frequencies.
  • Make the power profile aware of the big.LITTLE cluster.
  • Address more SELinux denials and remove duplicate rules.
  • Use an up-to-date Samsung hardware repository based on LineageOS' repository, and make changes to the device tree for it. ((Thanks to @followmsi for changing the sepolicy to accommodate for modem/macloader having been moved to /vendor and mentioning that the Exynos hidl power HAL has to be used after the old power HAL was removed)
  • Enable secure ADB and set persist.sys.usb.config to none.
  • Use pool.ntp.org for the NTP servers.
  • ramdisk: cleanup the init files and fstab for readability.
  • ramdisk: init.samsungexynos7870.rc: only start gpsd after booting - fixes GPS when encrypted.
  • More updates to the kernel, including many updates from Linux 4.4, general updates (such as updates to the wireguard kernel module) and fixes.
  • Use sdfat for exFAT support.
  • Add toggle for disabling newly added USB devices.
Release for 20200309:
  • Latest updates including 20200305 security patches
  • Upgrade android.hardware.keymaster to 4.0.
  • lineage-gtaxlwifi_defconfig: disable CRYPTO_FIPS to get encryption partially working.
  • sdfat: update to version 2.3.0.
  • Update the BFQ IO scheduler to v8r12 using a port.
Release for 20200303:
  • wireless: add back Samsung's 'temporary' workaround due to qcacld-2.0 page allocation errors. Looks like this is actually necessary. Works around issues with WiFi not being possible to be enabled after some time again due to page allocation failures that still exist.
  • Revert duplicate "signal/ptrace: Don't leak unitialized kernel memory with PTRACE_PEEK_SIGINFO". We already had this commit as in Linux v3.18, the content of this reverted commit are useless.
Release for 20200301:
  • Fix a few SELinux denials. (including app_zygote denials, sepolicy in post 5 no longer needed for this build at all and also shouldn't be used anymore as more denials beyond just the app_zygote denials have been fixed)
Release for 20200229:
  • Initial release.

Documentation on how to undervolt the CPU and and undervolt the GPU:
Warning: I'm not responsible for any damage. Anything you do is at your own risk!
Note: everything in this section requires root access. If you don't have root access, you can use root over ADB. All commands should be run using some type of shell.
This documentation isn't the best, but it should be good enough. This section had documentation on how to overclock the GPU and undervolt various busses, but those features don't appear to actually work.

CPU voltage control:

This feature allows changing the voltage on the big and LITTLE clusters. To get the current voltages...
...of the first cluster (cluster 0), view the contents of the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table. You can use cat to do this:
Code:
cat /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table
...of the second cluster (cluster 1), view the contents of the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table.
Code:
cat /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table
To set voltages...
...for the first cluster, write voltages in microvolts (uV) in the format "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" to the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table. You can use echo to do this:
Code:
echo "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" > /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table
...for the second cluster, write voltages in microvolts (uV) in the format "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" to the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table.
Code:
echo "<1.69GHz voltage> <1.586 voltage> <and so on until 343MHz...>" > /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table
These interfaces are in microvolts (uV), and 1 milivolt (mV) is 1000 uV. Your desired voltage can be found by adding or subtracting the voltage you'd like to make it higher or lower by to the current voltage. These interfaces allow changing voltages in steps of 1 uV. The maximum voltage is 1.5V and the minimum is 0.2V for both clusters.

GPU voltage control:
To get the current voltages, view the contents of the file /sys/devices/11400000.mali/volt_table.
Code:
cat /sys/devices/11400000.mali/volt_table
To change voltages, write voltages in the format "<frequency in MHz> <voltage for that frequency>" to the file /sys/devices/11400000.mali/volt_table.
Code:
echo "<frequency in MHz> <voltage for that frequency>" > /sys/devices/11400000.mali/volt_table
This has to be done for every frequency you'd like to change the voltage for. Yet again, this interface is in microvolts (uV), and 1 milivolt (mV) is 1000 uV. Your desired voltage can be found by adding or subtracting the voltage you'd like to make it higher or lower by to the current voltage.



Issues and workarounds (if any):
Issue 1: adoptable storage is reported to not function correctly.
Partial workaround to issue 1: format and use your micro SD card with the exFAT filesystem.

There could be more issues due to SELinux denials. If something doesn't work, test it with SELinux set to permissive:
Code:
setenforce 0
If the issue is no longer reproducible, it's due to SELinux denials. Get logs by running:
Code:
dmesg | grep "avc: denied" > dmesg_selinux_denials
logcat | grep "avc: denied" > logcat_selinux_denials
while SELinux is permissive after doing whatever triggered the denials in a shell and post the files 'dmesg_selinux_denials' and 'logcat_selinux_denials'. It would also be preferable to report what triggered the denials. In some rare cases, SELinux has to be set to enforcing to get certain denials, which would unfortunately mean that every denied action isn't logged and it takes multiple tries to get every denied action causing issues. Don't report any random denials that don't cause any issues. I won't address some denials (such as proc_version denials, which should be denied and those cause no real issues) and I'll only address denials that cause unintended issues.

If an issue isn't caused by SELinux denials, get a logcat and dmesg (driver messages) log. How to get both is well documented.


Sources:
manifests - https://github.com/TALUAtGitHub/gtaxlwifi-manifests on branch lineage-17.1
device tree - https://github.com/TALUAtGitHub/android_device_samsung_gtaxlwifi on branch lineage-17.1
kernel sources - https://github.com/TALUAtGitHub/android_kernel_samsung_exynos7870 in branch lineage-17.1
vendor - https://github.com/TALUAtGitHub/android_vendor_samsung_gtaxlwifi on branch lineage-17.1
hardware - https://github.com/TALUAtGitHub/android_hardware_samsung on branch lineage-17.1
android_frameworks_base fork - https://github.com/TALUAtGitHub/android_frameworks_base
android_frameworks_av fork - https://github.com/TALUAtGitHub/android_frameworks_base

Thanks to:
@Valera1978 - for the initial work for this device itself
@followmsi - for fixes to various issues and other improvements
LineageOS - for the Android distribution itself
...and everyone else who's worked on anything (such as the Linux kernel, the interfaces I could use and Android itself).

Everything works great except in games....i get major lag especially in monopoly by marmalade any way to oc gpu?
 

seamo123

Senior Member
Jun 8, 2012
697
84
At the moment I'm running Resurrection Remix with Android 7.1.2, if I flash this Lineage (Android 10) ROM will downgrading back to Android 7.1.2 be an easy matter?

Just wanna be sure there's a way back! ??
 

[[EU]Tomas]

Senior Member
Nov 15, 2012
173
43
London
xda-developers.com
Rom works like a charm, haven't noticed any issues, apart from one thing:
I don't know if it's ROM related, but every single time I put tablet to sleep, and wake up again, CPU clock speeds drastically drop and lock at lower numbers on 1-4th cores most of times. Have to manually raise it back up with 3rd part software or restart the tablet.
I even tried setting up active CPU governor as performance, still speed drops down to lowest whenever wake tablet from sleep.
Any tips or solutions on fixing this?

(Right screenshot is when first booted tablet after restart, all proper, performance governer work fine, min freq is 1690 as well)
(Left screenshot after put tablet to sleep and wake again, first 4 cores drop speed to 902, even though settings still say 1690 is set as min)
 

Attachments

  • Screenshot_20201011-142135_EX_Kernel_Manager.png
    Screenshot_20201011-142135_EX_Kernel_Manager.png
    128.7 KB · Views: 122
  • Screenshot_20201011-141816_EX_Kernel_Manager.png
    Screenshot_20201011-141816_EX_Kernel_Manager.png
    131 KB · Views: 124
Last edited:

kurolox

Member
Nov 3, 2017
6
0
I've been using it for a few days and it works flawlessly so far.

The only thing that I'm missing is that it doesn't come with flipflap. Is there any chance that you could add it to the build?

Thanks for the work!
 

TALUAtXDA

Senior Member
Nov 8, 2018
379
651
New release for 20201022

Changelog:
  • Latest updates from LineageOS, including the 20201005 Android security updates.
  • Enable config_setColorTransformAccelerated - LiveDisplay colour calibration and reading mode is now available. (Thanks to @followmsi for finding this fix.)
  • Add FlipFlap for flip covers. (Note that FlipFlap only works if the timeouts in Settings -> Connected devices -> Connection preferences -> Smart cover are set to 'immediately')
  • More updates to the kernel from Linux v4.4 and the 3.18 Android common kernel.
  • Apply/backport some changes to zram and the lz4 compression algorithm from mainline Linux for faster compression and decompression, and add a backport of the zstd compression algorithm from the 4.9 Android common kernel which can be used as the compression algorithm for zram (lz4 is still the default compression algorithm).

Download: https://drive.google.com/file/d/1h8I9iL51A0JvLPJN8IVkj_l7rJB40Zg8/

Sorry for not releasing a new build for a while, I haven't had the time to do so, but now I finally have some. Enjoy.
 
Last edited:

odoll

Senior Member
Feb 12, 2017
214
56
Re: New release for 20201022

thx and not a big deal, but after every reboot my Wifi is switched off! Anybody else?
 
Last edited:

luedgagu

New member
Jun 17, 2019
1
0
Los Realejos
Hello there guys!
I finished installing TALUAtXDA's Lineage OS 17.1 for SM-T580...
I've been testing its performance and features... So far so good. No issues at all. I'm pretty satisfied with the ROM's stability and functionality. Obviously, I'll continue to test it, and I will be report any important, unexpected issues.
My congrats to TaluAtXda for his time and effort in putting this ROM together.
 

Bootywizard

New member
Oct 25, 2020
2
0
PS4 gamepad not working

DS4 gamepad doesn't work with this rom at all.

I installed this rom today to get native android gamepad support because stock rom android 8 doesn't have native gamepad support.

Under Android 8 the gamepad buttons are mapped incorrectly, thus playing in geforce now is impossible.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 43
    This is LineageOS 17.1, which is based on Android 10, for the WiFi-only variant of the Samsung Galaxy Tab A 10.1" (2016), codenamed gtaxlwifi. LineageOS doesn't need much of an introduction - It's a well-known custom firmware/Android distribution.

    I started these builds because the LineageOS builds from @Valera1978 had 2 particular significant bugs in them that were always being mentioned in posts in that thread: display backlight brightness not changeable from full brightness and the touchscreen appearing to not respond after putting the tablet to sleep. Those bugs had existed for quite a long time. @followmsi has some changes in his device tree that fixed those 2 bugs.

    Now, my builds are really a continuation of Valera's builds after he unfortunately discontinued work on this device due to an (understandable) lack of interest.

    Over Valera's old builds, my builds have many improvements and additional features, such as the following:
    • SELinux is set to enforcing by default for better security.
    • RSA key verification for ADB is enabled by default, and ADB isn't enabled by default or on boot.
    • Encryption is fully working.
    • USB tethering works.
    • Support for using USB for MIDI is enabled.
    • Support for screen mirroring using miracast has been added back after being removed by Google using the changes here: https://review.lineageos.org/q/topic:"ten-aosp-wfd"
    • Freeform windows work properly with this abandoned change: https://review.lineageos.org/c/LineageOS/android_frameworks_base/+/275189
    • The kernel has many updates from Linux 4.4, 3.16 and the 3.18 Android common kernel, including security and vulnerability fixes, improvements to downstream drivers and additional features (including CPU and GPU voltage control (documentation is further on in this thread), the BFQ IO scheduler and some USB serial drivers updated from Linux v4.4 and enabled (The enabled drivers are the generic, WCH CH341 (also supporting the CH340), SiLabs CP201X, Prolific PL2303 and FTDI SIO USB serial drivers. You can use Termux with tsu and screen to interface with supported USB serial devices via these drivers. They'll be available at /dev/ttyUSB[0-255], though most likely /dev/ttyUSB0.))
    • The kernel is also compiled using clang after having applied the many necessary changes to it to do so.
    • The userspace lmk (low memory killer) is used.
    • There is support for signature spoofing, notably for microG.
    • sswap has been removed and ZRAM is used instead.
    • The Settings -> Privacy -> Trust -> Restrict USB option works.
    • The Mali graphics blob has been updated to version r28p0 from r22p0.
    • Support for OpenCL is working.
    • Assisted GPS works.
    • LiveDisplay color calibration and reading mode is available.
    • FlipFlap has been added. (Only works if the timeouts in Settings -> Connected devices -> Connection preferences -> Smart cover are set to 'immediately')
    • As many vendor blobs as possible have been updated from Samsung's stock T580XXS5CTD1/T580XXS5CTK1 (there are no changes to the vendor blobs between those versions) and A520FXXUGCTI9 firmwares.
    • The BSP libraries are built from more up to date, less hacky sources, based on Lineage's SLSI BSP sources, which are publicly available.
    • An issue where videos that are recorded have a duration that is lengthened by the time spent in deep sleep has been worked around.
    Very important note for those upgrading from the releases from 20210523 and 20210413 in this post: https://forum.xda-developers.com/t/lineageos-17-1-for-sm-t580-gtaxlwifi.4059571/post-85106105

    Note: I won't build for the LTE variant. I don't have enough disk space to build for both variants and I don't own the LTE variant. However, builds for the WiFi-only variant will apparently boot and work on the LTE variant, only without mobile networking (of course), GPS and vibration, so since I've allowed installation on the LTE variant, you can try to use my builds on it if you can go without those things.

    Note 2: Builds from 20210413 and newer are not tested by myself, since I've moved onto LineageOS 18.1. Nevertheless, they should still boot and work fine.

    Downloads:
    Latest build from 20210530 (security patch level 20210505):
    https://drive.google.com/file/d/14ZCYYcT5b6E9zWiFNgwUP3Kxlvf-dyVn
    Some previous releases: https://drive.google.com/drive/folders/1N56WWqP6FG8W_KyWiuUqia80clb8ShtP
    Directory for these builds: https://drive.google.com/open?id=1UiUlSbfj3agDvt-4f_YLIS0Xyuz5RtFC

    Changelog:

    Release for 20210530:
    • Latest updates from LineageOS.
    • File-based encryption has been disabled after I left it enabled by mistake.
    Previous releases:
    Release for 20210523:
    • Latest updates from LineageOS, including the 20210505 Android security updates.
    • Some changes have been imported to libbt-vendor from https://github.com/LineageOS/android_hardware_qcom_bt on branch lineage-18.1-caf (same as branch lineage-17.1-caf).
    • The rampatch_tlv_tf_1.1.tlv firmware for Bluetooth has been updated from Samsung's stock T585XXS6CTJ7 firmware.
    • There are some updates from the 3.18 Android common kernel and Linux 4.4 to the kernel.
    • A workaround that was used to get USB tethering and Bluetooth tethering to work is no longer used, and has been replaced with a proper fix (enabling CONFIG_NETFILTER_XT_TARGET_CT in the kernel).
    Release for 20210413:
    • Latest updates from LineageOS, including the 20210405 Android security updates.
    • There are some updates from the 3.18 Android common kernel and Linux 4.4 to the kernel.
    Release for 20210313:
    • Latest updates from LineageOS, including the 20210305 Android security updates.
    • There are some updates from the 3.18 Android common kernel and Linux 4.4 to the kernel, many changes to the rcu, locking and btrfs code from 4.4, and a few changes from Samsung's M105GDXU6CUA1 kernel to the kernel.
    • The exynos part of the BSP has a few changes from Lineage's 18.1 branch for HWC and memtrack.
    Release for 20210207:
    • Latest updates from LineageOS, including the 20210205 Android security updates.
    • SELinux denials that caused the torch feature to not work have been addressed.
    • The issue where videos that are recorded have a duration that is lengthened by the time spent in deep sleep has been worked around - It looks like Samsung did something wrong in the camera HALs for Exynos 7870 devices.
    • There are some more updates from the 3.18 Android common kernel and Linux 4.4 to the kernel, and a few changes from Samsung's M105GDXU6CTL3 kernel.
    Release for 20210116:
    • Latest updates from LineageOS, including the 20210105 Android security updates.
    • The custom camera provider HAL has been removed, and the camera provider HAL has been binderized - this fixes camera glitches when there is motion.
    • Quota support has been enabled on userdata, so that storage usage statistics can be gotten more quickly.
    • The Widevine DRM blobs from the Pixel 3 XL's last Android 10 firmware are now used.
    • The MFC (Multi Format Codec) firmware has been updated from Samsung's M105FDDU3CTK3 firmware, and the camera.vendor.universal7870.so library has been updated from Samsung's latest stock firmware (version T580XXS5CTK1).
    • There are some more updates from Linux v4.4 and the 3.18 Android common kernel to the kernel.
    Release for 20201223:
    • Latest updates from LineageOS.
    • Address hal_graphics_composer_default SELinux denials on video_device - fixes issues with video playback with SELinux set to enforcing. (Thanks to @Kostareka for providing logs with the SELinux denials)
    Release for 20201221:
    • Latest updates from LineageOS, including the 20201205 Android security updates.
    • I've prepared new BSP sources, based on Lineage's SLSI BSP sources, and the BSP libraries are now built from those sources. (Thanks to @Valera1978 for providing his old BSP sources! Without them, this wouldn't have been possible.)
    • Samsung's proprietary audio libraries, adapted by @Valera1978, are now used, to workaround an issue where audio will be outputted to both the 3.5mm audio jack and the speakers quietly when something is connected to the audio jack.
    • The build fingerprint has been changed to an older Android 8.1 fingerprint for the Google Pixel C. (For information on why we can't use the fingerprint from the stock firmware, see: https://github.com/TALUAtGitHub/android_device_samsung_gtaxlwifi/issues/1 )
    • Installation on the LTE variant (SM-T585, codenamed gtaxllte) is now allowed - apparently, builds for the WiFi-only variant boot and work on the LTE variant, only with no mobile networking (of course) and GPS.
    • There are a few minor cleanups.
    • Version 2 of the AOSP bluetooth audio HAL has been enabled.
    • FIFO UI scheduling has been enabled.
    • The camera libraries have been updated from Samsung's latest stock firmware, version T580XXS5CTK1.
    • There are a few other miscellaneous improvements.
    • There are some updates to the kernel from the Android 3.18 common kernel and Linux v4.4, and there are updates to some of the drivers from Samsung's M105GDXU5CTI3 kernel.
    Release for 20201121:
    • Latest updates from LineageOS, including the 20201105 Android security updates.
    • The sepolicy has been improved - many unnecessary SELinux rules have been removed and a few SELinux denials have been addressed.
    • The init.power.rc script is now actually used to set some parameters for the interactive CPU governor to make it less aggressive.
    • The GNSS and sensors HAL are now compiled from source in the device tree with necessary modifications. (Thanks to @followmsi for some very useful information regarding this!)
    • As many vendor blobs as possible have been updated from Samsung's T580XXS5CTD1 and A520FXXUGCTI9 stock firmwares, the gpsd shim has been removed as it's no longer necessary after updating gpsd from T580XXS5CTD1 and a few unused vendor blobs have also been removed.
    • cbd/cpboot-daemon has been removed, because it, along with the modem_v1 driver in the kernel, no longer works with the latest bootloader and spams the kernel log with error messages, I have very little idea of what it does for the WiFi-only variant and it's unnecessary.
    • Made a few other miscellaneous improvements.
    • Many more updates to the kernel from Linux v4.4 and the 3.18 Android common kernel, some miscellaneous improvements and many changes to the f2fs filesystem driver from newer Android common kernels and mainline Linux.
    • The kernel is now compiled using the clang compiler after having applied the many necessary changes to it to do so.
    Release for 20201022:
    • Latest updates from LineageOS, including the 20201005 Android security updates.
    • Enable config_setColorTransformAccelerated - LiveDisplay colour calibration and reading mode is now available. (Thanks to @followmsi for finding this fix.)
    • Add FlipFlap for flip covers. (Note that FlipFlap only works if the timeouts in Settings -> Connected devices -> Connection preferences -> Smart cover are set to 'immediately')
    • Fix a typo in the power profile.
    • More updates to the kernel from Linux v4.4 and the 3.18 Android common kernel.
    • Apply/backport some changes to zram and the lz4 compression algorithm from mainline Linux for faster compression and decompression, and add a backport of the zstd compression algorithm from the 4.9 Android common kernel which can be used as the compression algorithm for zram (lz4 is still the default compression algorithm).
    Release for 20200915:
    • Latest updates from LineageOS, including the 20200905 Android security updates.
    • Increase microphone gains.
    • Many more updates from Linux v4.4 and android-3.18 and a few improvements to the kernel.
    Release for 20200821:
    • Latest updates from LineageOS.
    • A few more updates from Linux v4.4 and android-3.18 and improvements to the kernel.
    • Revert 2 changes to the kernel related to hotplugging - should fix an issue where the device doesn't wake up after a while of deep sleeping in certain cases, and a hard reset is needed.
    Release for 20200814:
    • Latest updates from LineageOS, including the 20200805 Android security updates.
    • Update the Mali graphics blob to r28p0 from r22p0.
    • Make a few changes for GPS that fix Assisted GPS, and switch to different XTRA servers with HTTPS.
    • Fix OpenCL.
    • Symlink libGLES_mali.so to libOpenCL.so, libOpenCL.so.1 and libOpenCL.so.1.1 instead of copying - saves a significant amount of space in /system and makes the installation zip slightly smaller.
    • Change media volume control to be in 25 steps rather than 15 steps.
    • More updates from Linux v4.4 and android-3.18 to the kernel and some improvements.
    Release for 20200711:
    • Latest updates from LineageOS.
    • Android security updates from 20200705, manually applied to skip the wait for them to be merged. ('repopick -t android-10.0.0_r40')
    • Disable window rounded corner animations.
    • Reduce ZRAM size to 512MB.
    • Enable debug.sf.disable_backpressure.
    • A few more updates to the kernel from Linux v4.4 and android-3.18.
    • Port over/import zsmalloc, zram, zswap, zbud and zpool from Linux v4.4.
    • Fix the issues with hanging/freezing that were present in the previous release.
    Release for 20200703:
    • Latest updates from LineageOS.
    • Enable support for using USB for MIDI.
    • Fix/workaround issues with USB tethering.
    • Remove sswap and use ZRAM.
    • Latest update from @Valera1978 - "update audio_policy_configuration.xml from SM-A600FN q stock"
    • Many more updates to the kernel from v4.4, android-3.18 and a few from v3.16.
    • Disable the Exynos hotplug governor again. (in the kernel)
    Release for 20200608:
    • Latest updates from LineageOS including the 20200605 Android security updates.
    • Use userspace lmkd.
    • Enable Always On Display. (Thanks to @followmsi)
    • Address a few more SELinux denials.
    • power_profile: change names as per pie naming changes.
    • Switch to [email protected]g. (Thanks to @followmsi)
    • Fix freeform window moving/resizing doesn't work (In my new fork of LineageOS' android_frameworks_base repository).
    • Add back support for Miracast using the changes from https://review.lineageos.org/q/topic:%22ten-aosp-wfd%22 (In my new fork of LineageOS' android_frameworks_av repository).
    • More updates to the kernel, including many updates from Linux v4.4 and v3.16 and general updates. There are also improvements to downstream drivers.
    Release for 20200512:
    • Latest updates from LineageOS including the 20200505 Android security updates.
    • Address more SELinux denials.
    • Remove the ro.enable_boot_charger_mode property and revert "gtaxl: workaround for offline charging".
    • Remove some useless services for non-existent binaries in init files.
    • Hide sRGB toggle in developer options.
    • More updates to the kernel, including many updates from Linux 4.4 and to the kernel-based wireguard implementation.
    Release for 20200411:
    • Latest updates from LineageOS including the 20200405 Android security updates.
    • Update the cpu.speeds array in the power profile for 1.69GHz, 449MHz and 343MHz frequencies.
    • Make the power profile aware of the big.LITTLE cluster.
    • Address more SELinux denials and remove duplicate rules.
    • Use an up-to-date Samsung hardware repository based on LineageOS' repository, and make changes to the device tree for it. ((Thanks to @followmsi for changing the sepolicy to accommodate for modem/macloader having been moved to /vendor and mentioning that the Exynos hidl power HAL has to be used after the old power HAL was removed)
    • Enable secure ADB and set persist.sys.usb.config to none.
    • Use pool.ntp.org for the NTP servers.
    • ramdisk: cleanup the init files and fstab for readability.
    • ramdisk: init.samsungexynos7870.rc: only start gpsd after booting - fixes GPS when encrypted.
    • More updates to the kernel, including many updates from Linux 4.4, general updates (such as updates to the wireguard kernel module) and fixes.
    • Use sdfat for exFAT support.
    • Add toggle for disabling newly added USB devices.
    Release for 20200309:
    • Latest updates including 20200305 security patches
    • Upgrade android.hardware.keymaster to 4.0.
    • lineage-gtaxlwifi_defconfig: disable CRYPTO_FIPS to get encryption partially working.
    • sdfat: update to version 2.3.0.
    • Update the BFQ IO scheduler to v8r12 using a port.
    Release for 20200303:
    • wireless: add back Samsung's 'temporary' workaround due to qcacld-2.0 page allocation errors. Looks like this is actually necessary. Works around issues with WiFi not being possible to be enabled after some time again due to page allocation failures that still exist.
    • Revert duplicate "signal/ptrace: Don't leak unitialized kernel memory with PTRACE_PEEK_SIGINFO". We already had this commit as in Linux v3.18, the content of this reverted commit are useless.
    Release for 20200301:
    • Fix a few SELinux denials. (including app_zygote denials, sepolicy in post 5 no longer needed for this build at all and also shouldn't be used anymore as more denials beyond just the app_zygote denials have been fixed)
    Release for 20200229:
    • Initial release.


    Documentation on how to undervolt the CPU and and undervolt the GPU:
    Warning: I'm not responsible for any damage. Anything you do is at your own risk!
    Note: everything in this section requires root access. If you don't have root access, you can use root over ADB. All commands should be run using some type of shell.
    This documentation isn't the best, but it should be good enough. This section had documentation on how to overclock the GPU and undervolt various busses, but those features don't appear to actually work.

    CPU voltage control:

    This feature allows changing the voltage on the big and LITTLE clusters. To get the current voltages...
    ...of the first cluster (cluster 0), view the contents of the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table. You can use cat to do this:
    Code:
    cat /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table
    ...of the second cluster (cluster 1), view the contents of the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table.
    Code:
    cat /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table
    To set voltages...
    ...for the first cluster, write voltages in microvolts (uV) in the format "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" to the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table. You can use echo to do this:
    Code:
    echo "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" > /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table
    ...for the second cluster, write voltages in microvolts (uV) in the format "<1.69GHz voltage> <1.586GHz voltage> <and so on until 343MHz...>" to the file /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster0_volt_table.
    Code:
    echo "<1.69GHz voltage> <1.586 voltage> <and so on until 343MHz...>" > /sys/devices/system/cpu/cpufreq/mp-cpufreq/cluster1_volt_table
    These interfaces are in microvolts (uV), and 1 milivolt (mV) is 1000 uV. Your desired voltage can be found by adding or subtracting the voltage you'd like to make it higher or lower by to the current voltage. These interfaces allow changing voltages in steps of 1 uV. The maximum voltage is 1.2V and the minimum is 0.2V for both clusters.

    GPU voltage control:
    To get the current voltages, view the contents of the file /sys/devices/11400000.mali/volt_table.
    Code:
    cat /sys/devices/11400000.mali/volt_table
    To change voltages, write voltages in the format "<frequency in MHz> <voltage for that frequency>" to the file /sys/devices/11400000.mali/volt_table.
    Code:
    echo "<frequency in MHz> <voltage for that frequency>" > /sys/devices/11400000.mali/volt_table
    This has to be done for every frequency you'd like to change the voltage for. Yet again, this interface is in microvolts (uV), and 1 milivolt (mV) is 1000 uV. Your desired voltage can be found by adding or subtracting the voltage you'd like to make it higher or lower by to the current voltage.



    Known issues and workarounds (if any):
    Issue 1: adoptable storage is reported to not work correctly.
    Somewhat of a workaround to issue 1: format and use your micro SD card with the exFAT filesystem.

    Issue 2: Images and videos that are taken in a resolution with an aspect ratio of 16:9 are actually stretched from 4:3.
    Somewhat of a workaround to issue 2: Use a resolution that has an aspect ratio of 4:3.

    Issue 3: the on-screen navigation bar feature that can be enabled with the option at Settings -> System -> Buttons -> "Enable on-screen nav bar" doesn't work properly.

    Issue 4: Videos recorded using the camera after going into deep sleep appear to have a very long duration. A portion of recorded videos is mostly stuck on one frame, and what was actually recorded is at the end of videos.
    Worked around with this patch: https://github.com/TALUAtGitHub/and...mmit/f79ac375966db9bf6dc2f16be96dd02fb70d81ee / https://review.lineageos.org/c/LineageOS/android_frameworks_av/+/234657 without the flag and ifdef

    To report issues, get a log from logcat and dmesg. If you are unsure of how to get both, there is good documentation out there for how to do so.


    Sources:
    manifests - https://github.com/TALUAtGitHub/gtaxlwifi-manifests
    device tree - https://github.com/TALUAtGitHub/android_device_samsung_gtaxlwifi
    kernel sources - https://github.com/TALUAtGitHub/android_kernel_samsung_exynos7870
    vendor - https://github.com/TALUAtGitHub/android_vendor_samsung_gtaxlwifi
    hardware - https://github.com/TALUAtGitHub/android_hardware_samsung
    android_frameworks_base fork - https://github.com/TALUAtGitHub/android_frameworks_base
    android_frameworks_av fork - https://github.com/TALUAtGitHub/android_frameworks_base
    BSP sources -
    The BSP sources are in 3 parts in these 3 repositories:
    ...all on branches lineage-17.1

    Thanks to:
    @Valera1978 - for all of the previous work for these devices, and for providing his old BSP sources without which the open BSP sources wouldn't have been possible.
    @followmsi - for fixes to various issues and other improvements, for useful information, and for working with me on much of this stuff.
    LineageOS - for the Android distribution itself.
    ...and everyone else who's worked on anything that is in use.
    10
    New release for 20200711

    Changelog:
    • Latest updates from LineageOS.
    • Android security updates from 20200705, manually applied to skip the wait for them to be merged. ('repopick -t android-10.0.0_r40')
    • Disable window rounded corner animations.
    • Reduce ZRAM size to 512MB.
    • Enable debug.sf.disable_backpressure.
    • A few more updates to the kernel from Linux v4.4 and android-3.18.
    • Port over/import zsmalloc, zram, zswap, zbud and zpool from Linux v4.4.
    • Fix the issues with hanging/freezing that were present in the previous release.

    Download: https://drive.google.com/file/d/1oWMS4UhiNEywnOJdpqS6H4BK1nv-bZWh/

    In this release, the issues with hanging/freezing that were present in the previous release have been fixed. If anyone still has any issues with hanging, please get logs (logcat and dmesg) after a hang occurs, report the issue here with the logs and and some type of details of the issue and use this build: https://drive.google.com/file/d/1SDhpnmmr7bFF69GOHrzZ0z6PV5EXq87O/ , which has a kernel with old changes from 20200608 when there weren't any issues and uses sswap/vnswap instead of ZRAM.

    Enjoy.
    10
    New release for 20200814

    Changelog:
    • Latest updates from LineageOS, including the 20200805 Android security updates.
    • Update the Mali graphics blob to r28p0 from r22p0.
    • Make a few changes for GPS that fix Assisted GPS, and switch to different XTRA servers with HTTPS.
    • Fix OpenCL.
    • Symlink libGLES_mali.so to libOpenCL.so, libOpenCL.so.1 and libOpenCL.so.1.1 instead of copying - saves a significant amount of space in /system and makes the installation zip slightly smaller.
    • Change media volume control to be in 25 steps rather than 15 steps.
    • More updates from Linux v4.4 and android-3.18 to the kernel and some improvements.

    Download: https://drive.google.com/file/d/1o_1lBoueXM1DOqm6L3y4mfdMrlw9vKR8/

    In this release, the Mali graphics blob has been updated to r28p0. This fixes the hanging issues with Chromium-based browsers (including Chrome).

    Those who had used @Valera1978's LineageOS 17.1 builds a while ago may remember issues when the Mali graphics blob was updated to r28p0. Valera not only updated the graphics blob, but also replaced many other things, which caused those issues. I've only updated the graphics blob. To see what I mean, you can compare my commit here: https://github.com/TALUAtGitHub/and...mmit/81d3a3e2d23f02e3a2cd5e6061eda5502f16ae63 with Valera's commit here: https://github.com/Valera1978/andro...mmit/7b7db571882130aaa8115adb33d5c2875b8174c5.

    Everything else is self-explanatory. Enjoy.
    8
    New release for 20200703

    Changelog:
    • Latest updates from LineageOS.
    • Enable support for using USB for MIDI.
    • Fix/workaround issues with USB tethering.
    • Remove sswap and use ZRAM.
    • Latest update from @Valera1978 - "update audio_policy_configuration.xml from SM-A600FN q stock"
    • Many more updates to the kernel from v4.4, android-3.18 and a few from v3.16.
    • Disable the Exynos hotplug governor again. (in the kernel)

    Download: https://drive.google.com/file/d/130jbirsEOYM3KjrvUZwWNW-YKOiXdw4R/

    In this release, support for using USB for MIDI has been enabled and USB tethering will now work.

    I've disabled the Exynos hotplug governor again. At first, I thought that all 8 CPU cores were being brought online by it with heavier loads while bringing 4 cores offline when there isn't much load like it's supposed to, but after testing it more thoroughly, it appears that the other 4 cores are actually not brought online by it even with heavy loads unless there is some user interaction. Also, battery life doesn't seem to be any better with it.

    Enjoy.
    7
    Changelog:
    • Latest updates from LineageOS including the 20200605 Android security updates.
    • Use userspace lmkd.
    • Enable Always On Display. (Thanks to @followmsi)
    • Address a few more SELinux denials.
    • power_profile: change names as per pie naming changes.
    • Switch to [email protected]g. (Thanks to @followmsi)
    • Fix freeform window moving/resizing doesn't work (In my new fork of LineageOS' android_frameworks_base repository).
    • Add back support for Miracast using the changes from https://review.lineageos.org/q/topic:%22ten-aosp-wfd%22 (In my new fork of LineageOS' android_frameworks_av repository).
    • More updates to the kernel, including many updates from Linux v4.4 and v3.16 and general updates. There are also improvements to downstream drivers.

    I'm no longer going to mention related commits for changes in changelogs for reasons of readability. If you're interested, you should refer to git histories for the repositories mentioned in the original post.

    Download: https://drive.google.com/file/d/13WQryjF4wJw6OjYL4ZN-O07oy58DLo5l/view?usp=sharing

    In this release, support for Miracast has been added back. For some reason I don't understand (something about HDCP?), Google removed Miracast support in Android 9. The changes used to add back support for Miracast are originally from here: https://review.lineageos.org/q/topic:%22ten-aosp-wfd%22 Screen mirroring with WiFi displays using Miracast will now work.

    Freeform window moving and resizing will now work without crashes and soft reboots through the "Fix freeform window moving/resizing doesn't work" change, originally from https://review.lineageos.org/c/LineageOS/android_frameworks_base/+/275189. That change has been abandoned now, and there hasn't been any fix from AOSP. I've applied that change myself, and we now have fully working freeform windows.

    For those changes, I now have new forks for 2 of LineageOS' git repositories:
    android_frameworks_base: https://github.com/TALUAtGitHub/android_frameworks_base
    android_frameworks_av: https://github.com/TALUAtGitHub/android_frameworks_av
    This means that absolutely everything I use on top of LineageOS' sources is now available as I have it. Previously, I was using LineageOS' android_frameworks_base repository with the signature spoofing permission patch manually applied on top.

    Everything else is self-explanatory. Enjoy.