[ROM][GT-I9506][ks01ltexx] LineageOS 18.1 UNOFFICIAL for the Galaxy S4 LTE-A

Kryga-i9506

Member
Jun 13, 2020
6
4
3
Thanks kyasu for maintaining.

Some hints (or don't repeat my error).
  • When downloading OpenGApps don't get fooled by that green "Download latest version"; be shure to download from folder Home/arm/test/2021mmdd .
  • Follow this FAQ to remove GApps and switch to OpenGApps
Edit: Apparently only a clean installation is successful.
 
Last edited:

SunnyRalf

Member
Oct 17, 2018
6
1
3
lineage-18.1-20210123-UNOFFICIAL-ks01ltexx.zip

New build is available (See the first post).
Sync with the latest LineageOS source.
Fix WiFi Tethering.
Remove GApps. Please use OpenGApps.

Changes:
https://github.com/kyasu/android_device_samsung_ks01ltexx/commits/lineage-18.1
https://github.com/kyasu/android_kernel_samsung_msm8974/commits/lineage-18.1
The new build works fine. I recognized two things:
1. Still the UI hangs up, but now very seldom. Probeably when an Music App connects the Internet, but I'm not shure.
2. I cannot make Mobile Calls. The connection is established, Mobile Data works fine. But after I have dailed, the TelefonApp directly shows "connection stopped"

Thank you - great job :)
 

Kryga-i9506

Member
Jun 13, 2020
6
4
3
2. I cannot make Mobile Calls. The connection is established, Mobile Data works fine. But after I have dailed, the TelefonApp directly shows "connection stopped"
I can confirm this; even reverting to lineage-18.1-20210110-UNOFFICIAL-ks01ltexx-gapps.zip does not help; had to restore a backup of just before updating from lineage-18.1-20210103-UNOFFICIAL-ks01ltexx-gapps.zip to lineage-18.1-20210110-UNOFFICIAL-ks01ltexx-gapps.zip.

Edit 1: I will now update to lineage-18.1-20210110-UNOFFICIAL-ks01ltexx-gapps.zip and report again.

Edit 2: With lineage-18.1-20210110-UNOFFICIAL-ks01ltexx-gapps.zip mobile calls are ok; maybe a faulty Dialer Framework in OpenGApps arm/test/20210110 ?

Edit 3: Did some more tests.
  • clean install of lineage-18.1-20210123-UNOFFICIAL-ks01ltexx.zip (without any GApps): mobile calls ok
  • clean install of lineage-18.1-20210123-UNOFFICIAL-ks01ltexx.zip and OpenGApps (arm/test/20210110): mobile calls ok
So maybe only a clean install is the good way this time?
 
Last edited:
  • Like
Reactions: DiamondJohn

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
Does SystemUI crash for anyone else when pressing 'system settings' button in SystemUI (gear symbol bottom right)?

How to disable the 'rotate suggestion' icon that appears on screen when auto-rotation is disabled? That's annoying as hell.
 
Last edited:

DiamondJohn

Recognized Contributor
Aug 31, 2013
4,775
3,879
243
Sydney
Does SystemUI crash for anyone else when pressing 'system settings' button in SystemUI (gear symbol bottom right)?

How to disable the 'rotate suggestion' icon that appears on screen when auto-rotation is disabled? That's annoying as hell.
I *THINK* the rotate icon is apart of accessibiity features.
 

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
Some people say there's a suboption menu when pressing the textarea below (or holding) systemui icon 'auto-rotate' (since Pie on Samsung stock roms). Any attempt to open any of these suboptions crashes SystemUI here though. Maybe the function is missing.
Unless i missed it there is no entry in 'settings list [--lineage] {secure, system, global}' either.
 

grbgdn

Member
Mar 8, 2020
7
1
3
Does SystemUI crash for anyone else when pressing 'system settings' button in SystemUI (gear symbol bottom right)?

How to disable the 'rotate suggestion' icon that appears on screen when auto-rotation is disabled? That's annoying as hell.
I don't have such problems. Installed lineage-18.1-20210123-UNOFFICIAL-ks01ltexx.zip after full wipe cache, data and system.
 
  • Like
Reactions: DualJoe

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
I've deleted '/data/user_de/0/com.android.systemui' and menus work properly now. But there's no option to disable the on-screen rotate icon.

There's a trick/workaround though. Enable auto-rotate with 0 degree mode only that will keep the screen fixed. For rotation, disable 'auto-rotate' and use the overlay icon to rotate.
Will ask the lineage guys later about the current state.
 
Last edited:

DiamondJohn

Recognized Contributor
Aug 31, 2013
4,775
3,879
243
Sydney
Why is I9506XXSDPL2_I9506XXUDOJ2_bootmodem recommended instead of the newer I9506XXUDRB1_I9506XXUDRA1_bootmodem?
Sorry to @kyasu, i can not speak on his behalf, however, it is common knowledge that switching the bootloader/modem requires a LOT of work and testing for the dev. He is already providing a free ROM.
Does the newer bootloader also work properly?
No, not with a ROM built for a different bootloader/modem. The source specifically expects the interface provided by a specific bootloader/modem.

The other question you did not ask, and is probably not for this thread, is "what advantages would the new bootloader/modem provide?"
 
  • Like
Reactions: Dankal

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
There are some bad reports about that modem. Not sure if its confirmed otherwise.
 
  • Like
Reactions: Dankal

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
@kyasu:
Never mind... it must have been the manifest file transition or something. I thought i had clobbered already. The apks are gone in the out/priv-app folder. I guess it's alright now. Will apply the MicroG patches next. Sorry for any inconvenience. Rom is great.

When compiling your rom i get a bootloop with the error below. Looks like some permissions are missing. I'm using ro.control_privapp_permissions=log to bypass the enforce state (bootloop). I also get a red tinted screen when pulling down notification bar without any errors in log. I'm not sure if that's an intended behavior of some (unwanted) test apps that might have been added unintentionally to the rom build. It looks like i have several testapps that shouldn't be there. Somehow my build seems to differ from your rom. I compile with 'lunch lineage_ks01ltexx-userdebug && m dist'. Any ideas?

Edit: As far as i can tell this are 'testrunner' apps (development/testrunner) that usually should be pushed manually to the device. I will clobber my build system. Maybe it wasn't clean in the first place...


Code:
/system/priv-app/SoundTriggerTestApp
/system/priv-app/VoiceEnrollment
/system/priv-app/UsbHostExternalManagementTestApp

Source tree:
frameworks/base/tests/SoundTriggerTestApp
frameworks/base/tests/UsbHostExternalManagmentTest
frameworks/base/tests/VoiceEnrollment
Code:
# getprop |grep permissions
[ro.control_privapp_permissions]: [enforce]
Show missing permissions:
Code:
$ development/tools/privapp_permissions/privapp_permissions.py

################################################################################
#
#System XML:
#
################################################################################
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.android.hardware.usb.externalmanagementtest">
<permission name="android.permission.MANAGE_USB"/>
</privapp-permissions>

<privapp-permissions package="com.android.test.soundtrigger">
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
</privapp-permissions>

<privapp-permissions package="com.android.test.voiceenrollment">
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
</privapp-permissions>

</permissions>
################################################################################
#
#Product XML:
#
################################################################################
<?xml version="1.0" encoding="utf-8"?>
<permissions>
</permissions>

Code:
01-30 17:03:44.950: E/System(6242): ******************************************
01-30 17:03:44.950: E/System(6242): ************ Failure starting system services
01-30 17:03:44.950: E/System(6242): java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.MANAGE_SOUND_TRIGGER, com.android.test.voiceenrollment (/system/priv-app/VoiceEnrollment): android.permission.MANAGE_VOICE_KEYPHRASES, com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.CAPTURE_AUDIO_HOTWORD, com.android.hardware.usb.externalmanagementtest (/system/priv-app/UsbHostExternalManagementTestApp): android.permission.MANAGE_USB}
01-30 17:03:44.950: E/System(6242):     at com.android.server.pm.permission.PermissionManagerService.systemReady(PermissionManagerService.java:4647)
01-30 17:03:44.950: E/System(6242):     at com.android.server.pm.permission.PermissionManagerService.access$500(PermissionManagerService.java:178)
01-30 17:03:44.950: E/System(6242):     at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.systemReady(PermissionManagerService.java:4730)
01-30 17:03:44.950: E/System(6242):     at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:21649)
01-30 17:03:44.950: E/System(6242):     at com.android.server.SystemServer.startOtherServices(SystemServer.java:2210)
01-30 17:03:44.950: E/System(6242):     at com.android.server.SystemServer.run(SystemServer.java:601)
01-30 17:03:44.950: E/System(6242):     at com.android.server.SystemServer.main(SystemServer.java:417)
01-30 17:03:44.950: E/System(6242):     at java.lang.reflect.Method.invoke(Native Method)
01-30 17:03:44.950: E/System(6242):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-30 17:03:44.950: E/System(6242):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
01-30 17:03:44.950: E/Zygote(6242): System zygote died with exception
01-30 17:03:44.950: E/Zygote(6242): java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.MANAGE_SOUND_TRIGGER, com.android.test.voiceenrollment (/system/priv-app/VoiceEnrollment): android.permission.MANAGE_VOICE_KEYPHRASES, com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.CAPTURE_AUDIO_HOTWORD, com.android.hardware.usb.externalmanagementtest (/system/priv-app/UsbHostExternalManagementTestApp): android.permission.MANAGE_USB}
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.pm.permission.PermissionManagerService.systemReady(PermissionManagerService.java:4647)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.pm.permission.PermissionManagerService.access$500(PermissionManagerService.java:178)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.systemReady(PermissionManagerService.java:4730)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:21649)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.SystemServer.startOtherServices(SystemServer.java:2210)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.SystemServer.run(SystemServer.java:601)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.server.SystemServer.main(SystemServer.java:417)
01-30 17:03:44.950: E/Zygote(6242):     at java.lang.reflect.Method.invoke(Native Method)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-30 17:03:44.950: E/Zygote(6242):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
01-30 17:03:44.951: E/AndroidRuntime(6242): *** FATAL EXCEPTION IN SYSTEM PROCESS: main
01-30 17:03:44.951: E/AndroidRuntime(6242): java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.MANAGE_SOUND_TRIGGER, com.android.test.voiceenrollment (/system/priv-app/VoiceEnrollment): android.permission.MANAGE_VOICE_KEYPHRASES, com.android.test.soundtrigger (/system/priv-app/SoundTriggerTestApp): android.permission.CAPTURE_AUDIO_HOTWORD, com.android.hardware.usb.externalmanagementtest (/system/priv-app/UsbHostExternalManagementTestApp): android.permission.MANAGE_USB}
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.pm.permission.PermissionManagerService.systemReady(PermissionManagerService.java:4647)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.pm.permission.PermissionManagerService.access$500(PermissionManagerService.java:178)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.systemReady(PermissionManagerService.java:4730)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:21649)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.SystemServer.startOtherServices(SystemServer.java:2210)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.SystemServer.run(SystemServer.java:601)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.server.SystemServer.main(SystemServer.java:417)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at java.lang.reflect.Method.invoke(Native Method)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-30 17:03:44.951: E/AndroidRuntime(6242):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
01-30 17:03:44.987: E/IPCThreadState(361): attemptIncStrongHandle(2): Not supported
01-30 17:03:44.987: E/IPCThreadState(361): attemptIncStrongHandle(3): Not supported
01-30 17:03:44.987: E/IPCThreadState(361): attemptIncStrongHandle(1): Not supported
01-30 17:03:45.085: E/Zygote(6123): Zygote failed to write to system_server FD: Connection refused
01-30 17:03:45.085: E/Zygote(6123): Exit zygote because system server (pid 6242) has terminated
01-30 17:03:45.250: E/wificond(6367): Received error message: Operation not supported on transport endpoint
01-30 17:03:45.250: E/wificond(6367): NL80211_CMD_GET_PROTOCOL_FEATURES failed
01-30 17:03:45.333: E/APM::Serializer(6364): deserialize: Could not parse /odm/etc/audio_policy_configuration.xml document.
01-30 17:03:45.350: E/APM::HwModule(6364): refreshSupportedDevices: invalid source devices for voice_rx
01-30 17:03:45.363: E/APM::AudioPolicyEngine/Config(6364): parse: Could not parse document /vendor/etc/audio_policy_engine_configuration.xml
01-30 17:03:45.363: E/libxml2(6364): I/O warning : failed to load external entity "/vendor/etc/audio_policy_engine_configuration.xml"
01-30 17:03:45.363: E/APM::AudioPolicyEngine/Config(6364): parseLegacyVolumeFile: Could not parse document /odm/etc/audio_policy_configuration.xml
01-30 17:03:45.363: E/libxml2(6364): I/O warning : failed to load external entity "/odm/etc/audio_policy_configuration.xml"
01-30 17:03:45.393: E/Netd(6366): Error adding route 0.0.0.0/0 -> (null) dummy0 to table 1002: File exists
01-30 17:03:39.351: E/q6asm_get_audio_client(0): invalid session: -1
01-30 17:03:39.352: E/hdmi_tx_get_audio_edid_blk(0): failed. HDMI is not connected/ready for audio
01-30 17:03:39.352: E/hdmi_tx_get_audio_edid_blk(0): [ 01-30 17:03:39.352     0:    0 E/         ]
01-30 17:03:39.352: E/hdmi_tx_get_audio_edid_blk(0): msm_pcm_volume_ctl_get substream runtime not found
01-30 17:03:45.505: E/audio_route(6364): Control 'SPK Status' doesn't exist - skipping
01-30 17:03:45.508: E/audio_route(6364): Control 'SPK Status' doesn't exist - skipping
01-30 17:03:45.508: E/audio_route(6364): Control 'SLIM RX1 MUX' already exists in path 'speaker-and-dock'
 
Last edited:

DualJoe

Senior Member
Oct 12, 2011
2,065
950
193
de
I've tested the new MicroG patches. They work flawlessly, speed is awesome, no more crashing apps due to missing gapps (if you do not want gapps). Even though the patches itself are very small the resulting files are not. An incremental flashable zip would exceed 100MB. As xposed slows down the device significantly the direct patches are a much better approach. I will keep this. Its great for older phones.

Kyasu, if you think this is a good idea as well you'll find the patches here. It doesn't interfere with regular gapps installation.

Permission_controller2.png
microG_Services_Core.png
 
Last edited:

corvus.corax

Senior Member
Jul 1, 2013
663
216
73
Athens
Is there a way to extract or find an independent copy of the email app that comes with LOS? I am keeping my S4, but I bought an S21 and the built-in samsung email app isn't nearly as good.