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

Need help building a SM-T555 (gt510lte) LineageOS ROM

Search This thread
Mar 31, 2021
14
8
Dear all,

I am trying to build a LineageOS 17.1 ROM for the Galaxy Tab A 9.7 (gt510lte) SM-T555.

Using the repos of @retiredtab and aala27's repos I managed to build a config that resulted in a buildable LineageOS that I could install and that shows the Lineage boot animation but crashes/reboots after a while.
Fyi, my forks for the GT510LTE (SM-T555) I currently maintain here: https://github.com/blizzard4591?tab=repositories

Questions to @retiredtab:
- What is your current local_manifest/roomservice? I could not locate this in your Github and used one posted by aala27 in a different thread, but it might be "off".
- Did you extract the required proprietary files by hand from stock ROMs or is there an automated way? I have "SM-T555_1_20190103084053_we4a668guy_fac" with T555XXU1CQHA/T555XXU1CRG1 that I know works on my T555.
- The repo "vendor-samsung-gt5note10wifi" in your Github only contains a branch for Lineage 18.1, is that intentional?

Sadly, I am a total noob in the area of building Lineage, so I might miss some obvious things!

I am willing to put in some time and effort to make this work, but I just do not know enough to do it efficiently.
If you can spare the time for a few hints, I believe I can make some progress!

Cheers

Update 1:
My image is working, i.e. it boots and gives a stable system.
Problem: Bluetooth does not work and crashes a lot, I have no clue what the problem is.
Problem: Audio is not working, I see a lot of "audio_route: unable to find path 'low-latency-playback speaker'
The system settings dialog is missing the "Android Patchlevel" information - is this expected? I am building using "repo sync, breakfast gt510lte, brunch gt510lte" - is this correct? I am just an idiot.

Update 2:
Bluetooth and Audio are working, SELinux is not, so permissive it is for now.
Builds available on request.
 
Last edited:

retiredtab

Senior Member
Nov 16, 2017
829
405
- What is your current local_manifest/roomservice? I could not locate this in your Github and used one posted by aala27 in a different thread, but it might be "off".
It was there before, but I think after the switch to Xenforo on Dec 1, 2020, it might have gotten lost. It's there now and what I use to generate 17.1 for T550.

- Did you extract the required proprietary files by hand from stock ROMs or is there an automated way? I have "SM-T555_1_20190103084053_we4a668guy_fac" with T555XXU1CQHA/T555XXU1CRG1 that I know works on my T555.
No, I just used what's in at https://github.com/Galaxy-MSM8916. Having said that, I found that for the SM-T350, it was missing some very important files so I grabbed those from stock.

- The repo "vendor-samsung-gt5note10wifi" in your Github only contains a branch for Lineage 18.1, is that intentional?
gt5note10wifi is for the P550, not T550. You shouldn't be using that as the *.mk files won't copy the correct blobs for your device.

Update 1:
My image is working, i.e. it boots and gives a stable system.
Problem: Bluetooth does not work and crashes a lot, I have no clue what the problem is.
The system settings dialog is missing the "Android Patchlevel" information - is this expected? I am building using "repo sync, breakfast gt510lte, brunch gt510lte" - is this correct?
Congrats on getting a bootable stable system. For bluetooth, you are probably missing a bluetooth blob. Look in your adb logcat (see below) for red messages that are bluetooth related. It might say something like "missing libbt-nv.so".

Missing Android Patchlevel means you don't have a property declared in your *.mk file. Right now, I can' t remember what it is, but I will look for it.

Instead of brunch, I do

Code:
TARGET_BUILD_TYPE=debug TARGET_BUILD_VARIANT=eng make -j2 bacon

This makes an engineering build that starts adb logcat immediately. That way, you can see all the messages as soon as the device boots. It helps a lot in troubleshooting stuck at boot animation problems.

The -j2 indicates how many CPU cores I have. If you have more, say 4, then -j4.

Once you solved all your problems and if you want to share your ROM, then do a brunch which is userdebug by default (for me, I just do a make -j2 bacon).

For adb logcat, I find

Code:
 adb logcat -C | nl

helpful. It color codes the log so anything in red (error) needs attention. Nl numbers the log so it's easier to remember where you error messages are vs a timestamp.
 
Last edited:

retiredtab

Senior Member
Nov 16, 2017
829
405
Problem: Audio is not working, I see a lot of "audio_route: unable to find path 'low-latency-playback speaker'
Try not to edit your initial post because I didnt' see the audio problem. Just make a new one so that I see new responses.

The audio problem is likely you don't have the correct definition in mixer_paths.xml. aala27 had the exact same problem. It's likely this


For SM-T550, the line inside mixer_paths.xml looks like

Code:
    <path name="low-latency-playback speaker">
        <ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia5" value="1" />
    </path>

You can see above, I have a path name that matches 'low-latency-playback speaker' exactly. Your mixer_paths.xml probably doesn't have this defined so you get no audio.
 

retiredtab

Senior Member
Nov 16, 2017
829
405
BTW, all the info I'm giving wasn't available via search engine when I first started. It's extremely frustrating to troubleshoot when I first started. Even now, I have problems with audio over bluetooth and stuttering audio over bluetooth for two platforms that both worked perfectly on the previous last major revision on Android.
 
Mar 31, 2021
14
8
Thank you so much; I know how hard this kind of initial research is!

Regarding the audio issues:
I tried that already, as you can see in https://github.com/blizzard4591/android_device_samsung_gt510lte/tree/lineage-17.1/configs/audio I used the config files from my stock image (I had assumed they would work, but they do not - why?) and then added said speaker there, but no luck, it still has the same error message. What am I misunderstanding?

Regarding Bluetooth:
Thanks to you tip, I added the libbt-nv.so module, but this did not change the situation.

I am now building a debug/eng build, but in the log I still see no messages of missing drivers/firmware/SOs. You can find my Logcat attached - could you take a look and tell me whether I am missing something? Should there be messages?
How did you find out that you were missing BLOBs?
 

retiredtab

Senior Member
Nov 16, 2017
829
405
I tried that already, as you can see in https://github.com/blizzard4591/android_device_samsung_gt510lte/tree/lineage-17.1/configs/audio I used the config files from my stock image (I had assumed they would work, but they do not - why?) and then added said speaker there, but no luck, it still has the same error message. What am I misunderstanding?
You need to check the actual rom image to see if the mixer_paths.xml is correct. Do
Code:
adb pull /system/vendor/etc/mixer_paths.xml
and compare if the two are the same.
Regarding Bluetooth:
Thanks to you tip, I added the libbt-nv.so module, but this did not change the situation.
I only guessed at what might be missing. The logs will tell who what's missing.
You can find my Logcat attached - could you take a look and tell me whether I am missing something?
I see no log attached. Zip the log and then attach it.
 
Mar 31, 2021
14
8
You need to check the actual rom image to see if the mixer_paths.xml is correct. Do

Code:
adb pull /system/vendor/etc/mixer_paths.xml
and compare if the two are the same.
Yes, the file was incorrect, I guess the path
Code:
 $(LOCAL_PATH)/configs/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
did not resolve to where it should, I changed that, once the build is done I will check.

I see no log attached. Zip the log and then attach it.
Interesting, I can see it, but I attached it as ZIP!
 

Attachments

  • logcat3.zip
    87.8 KB · Views: 3

retiredtab

Senior Member
Nov 16, 2017
829
405
The log you attached is missing all the bootup sequence. You need to start adb logcat as soon as the device boots.

Audio
=====

Your mixer_paths.xml should be in /vendor/etc. /system/vendor is usually a link to /vendor. From my P550.

Code:
$ adb shell
gt5note10wifi:/ # ls -al vendor
lrw-r--r-- 1 root root 14 2008-12-31 17:00 vendor -> /system/vendor

If you are using the 17.1 msm8916-common repo, see lines 80 to 83


may be overwriting your stock mixer_paths. I would comment out lines 80 to 83 as a test.

Bluetooth
=========

You have tons of errors with your bluetooth. If you view your logcat in color, these are all in red.

Code:
04-01 13:19:22.910  1212  1212 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-01 13:19:22.911  1212  1212 F DEBUG   : LineageOS Version: '17.1-20210401-UNOFFICIAL-gt510lte'
04-01 13:19:22.911  1212  1212 F DEBUG   : Build fingerprint: 'samsung/gt510ltexx/gt510lte:7.1.1/NMF26X/T555XXU1CQI8:user/release-keys'
04-01 13:19:22.911  1212  1212 F DEBUG   : Revision: '8'
04-01 13:19:22.911  1212  1212 F DEBUG   : ABI: 'arm'
04-01 13:19:22.912  1212  1212 F DEBUG   : Timestamp: 2021-04-01 13:19:22+0200
04-01 13:19:22.912  1212  1212 F DEBUG   : pid: 866, tid: 1203, name: bt_hci_thread  >>> com.android.bluetooth <<<
04-01 13:19:22.912  1212  1212 F DEBUG   : uid: 1002
04-01 13:19:22.912  1212  1212 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
04-01 13:19:22.912  1212  1212 F DEBUG   : Abort message: '[0401/131922.772914:FATAL:hci_layer_android.cc(119)] Check failed: btHci != nullptr.

When it crashes hard like above, there's no way bluetooth will work.

Again, if you are using the 17.1 msm8916-common repo, it's missing the bluetooth entries for manifest.xml and msm8916.mk.

For the manifest.xml you need something like
Code:
     <hal format="hidl">
        <name>android.hardware.bluetooth</name>
        <transport arch="32+64">passthrough</transport>
        <version>1.0</version>
        <interface>
            <name>IBluetoothHci</name>
            <instance>default</instance>
        </interface>
    </hal>

For msm8916.mk, you need

Code:
# Bluetooth
PRODUCT_PACKAGES += \
    [email protected]
 
Mar 31, 2021
14
8
[Sorry for the delay]
Okay, I think I ironed out most of the issues.
What is confirmed working:
- WLAN
- Bluetooth
- Audio
- GPS (though the initial fix took 30min+...)

What does not work
- SELinux


WLAN:
I see a messages like
wificond: No Offload Service available
wificond: Offload HAL not supported

wificond: Failed to get NL80211_ATTR_EXT_FEATURES
Is that an issue? I don't know...


I see a lot of messages from the PowerHAL:
QTI PowerHAL: Failed to acquire lock.
I already tried https://review.statixos.com/c/android_device_essential_mata/+/1626/1 but that apparently was not enough.

SELInux:
I added the policies by https://github.com/VirsysElectron/android_device_samsung_gt510wifi and made them work, but it seems they are not really working.
Example:
I/init ( 233): type=1400 audit(0.0:4): avc: denied { mounton } for path="/firmware-modem" dev="mmcblk0p25" ino=27 scontext=u:r:init:s0 tcontext=u:eek:bject_r:tmp_root_mount_file:s0 tclass=dir permissive=1

I/e2fsck ( 253): type=1400 audit(0.0:5): avc: denied { read } for name="mmcblk0p13" dev="tmpfs" ino=7580 scontext=u:r:fsck:s0 tcontext=u:eek:bject_r:efs_block_device:s0 tclass=blk_file permissive=1
I/e2fsck ( 253): type=1400 audit(0.0:6): avc: denied { open } for path="/dev/block/mmcblk0p13" dev="tmpfs" ino=7580 scontext=u:r:fsck:s0 tcontext=u:eek:bject_r:efs_block_device:s0 tclass=blk_file permissive=1
I/e2fsck ( 253): type=1400 audit(0.0:7): avc: denied { write } for name="mmcblk0p13" dev="tmpfs" ino=7580 scontext=u:r:fsck:s0 tcontext=u:eek:bject_r:efs_block_device:s0 tclass=blk_file permissive=1
I/e2fsck ( 253): type=1400 audit(0.0:8): avc: denied { ioctl } for path="/dev/block/mmcblk0p13" dev="tmpfs" ino=7580 ioctlcmd=127c scontext=u:r:fsck:s0 tcontext=u:eek:bject_r:efs_block_device:s0 tclass=blk_file permissive=1
I/init ( 1): type=1400 audit(0.0:9): avc: denied { relabelfrom } for name="rmt_storage" dev="debugfs" ino=6571 scontext=u:r:init:s0 tcontext=u:eek:bject_r:debugfs_rmt:s0 tclass=dir permissive=1
I/init ( 1): type=1400 audit(0.0:10): avc: denied { relabelfrom } for name="rmts" dev="debugfs" ino=6574 scontext=u:r:init:s0 tcontext=u:eek:bject_r:debugfs_rmt:s0 tclass=file permissive=1
I declare
/firmware-modem(/.*)? u:eek:bject_r:tmp_root_mount_file:s0
in device/samsung/gt510lte/sepolicy/file_contexts, but it is not applied:
dr-xr-x--- 3 system drmrpc u:eek:bject_r:vfat:s0 16384 1970-01-01 01:00 firmware-modem

And I really do not know enough about SELinux to effectively engage this.
@retiredtab: How did you solve SELinux in your builds for the T550?
 

retiredtab

Senior Member
Nov 16, 2017
829
405
- GPS (though the initial fix took 30min+...)
That seems like a really long time. Did you go outside to do the GPS reading? Sometimes it makes a difference if you are in or outside. You should do an adb logcat while testing out GPS. It might show some clues as to why it takes so long.

With the P550 and using GPStest from


I get a lock in 48 seconds by the window.

What does not work
- SELinux
You need to read posts 202 and beyond at


I list the tools that you can use to help build selinux policies. As I wrote in the other thread, do you blindly trust the policies generated by the tools? I'm not an expert so I don't know and it's highly dependent on each hardware device.

I built an image with selinux enforcing as a test sometime in March and while it works, I'm not confident and ready to release that. In addition, each device will require it's own set of selinux policies. What might work for the P550 may not work on the T555 due to differences in hardware (LTE, S-pen).

Building the correct selinux policies is an iterative exercise. Wipe everything on your device, format data. Install the ROM only. You grant the initial batch of policies, reboot, look at logs, grant some more and repeat until they are gone. You should do this with the ROM only. Don't load gapps, games, apps, etc and then run selinux.

Is that an issue? I don't know...
I see them in my own builds and so far there's been no problem.

I see a lot of messages from the PowerHAL:
Same as above.
You will find through experience and more building that what works for one platform may not work for another. It's highly dependent on the device and code specific to that device.

SELInux:
I added the policies by https://github.com/VirsysElectron/android_device_samsung_gt510wifi and made them work, but it seems they are not really working.
In order to boot selinux enforcing, you need to remove line 140 from


Also, I'm not an expert in selinux, but I don't know why you would permit untrusted_app.te, untrusted_app_25.te and untrusted_app_27.te?
 
Last edited:
Mar 31, 2021
14
8
That seems like a really long time. Did you go outside to do the GPS reading? Sometimes it makes a difference if you are in or outside. You should do an adb logcat while testing out GPS. It might show some clues as to why it takes so long.

With the P550 and using GPStest from


I get a lock in 48 seconds by the window.
I think it was just the initial, first fix, and yes, I was not in the best position. Now that it knows where and when it is, a new fix even inside takes a couple of seconds. I used the same tool, also from F-Droid :)
You need to read posts 202 and beyond at


I list the tools that you can use to help build selinux policies. As I wrote in the other thread, do you blindly trust the policies generated by the tools? I'm not an expert so I don't know and it's highly dependent on each hardware device.

I built an image with selinux enforcing as a test sometime in March and while it works, I'm not confident and ready to release that. In addition, each device will require it's own set of selinux policies. What might work for the P550 may not work on the T555 due to differences in hardware (LTE, S-pen).

Building the correct selinux policies is an iterative exercise. Wipe everything on your device, format data. Install the ROM only. You grant the initial batch of policies, reboot, look at logs, grant some more and repeat until they are gone. You should do this with the ROM only. Don't load gapps, games, apps, etc and then run selinux.
I had to load Magisk and LiveBoot to even get the early-boot log. Using ADB logcat I was unable to get a log from "system start" - the adb process would hang and wait for the device to be fully booted. Even afterwards, no messages from boot. I had USB debugging enabled, default USB conf "file transfer", etc.
Any ideas what I am doing wrong?

I see them in my own builds and so far there's been no problem.


Same as above.

You will find through experience and more building that what works for one platform may not work for another. It's highly dependent on the device and code specific to that device.


In order to boot selinux enforcing, you need to remove line 140 from


Also, I'm not an expert in selinux, but I don't know why you would permit untrusted_app.te, untrusted_app_25.te and untrusted_app_27.te?
Good catch - I simply copied the policies from VirsysElectron to start, but since they do not really work, I don't think I will continue much on this path. I share your opinion on old drivers and the greater picture. I had hoped the old policies would work for most of the basics, but they do not.
 
Last edited:

retiredtab

Senior Member
Nov 16, 2017
829
405
I had to load Magisk and LiveBoot to even get the early-boot log.
For an eng build, there's no need for Magisk and LiveBoot to get an adb logcat. Part of the eng parameters is that it enables adb right away.

For developing selinux policies, you leave it in permissive first, develop the policies as I stated and then when you think you are done, then enable selinux enforcing. More at


Good catch - I simply copied the policies from VirsysElectron to start,
And that's the problem right there. It's so easy to kang or copy someone else's work today (legal or illegal) that some don't bother to check if it's right in the first place. I'm not saying VirsysElectron code is wrong, he may have a good reason why those files are generated.

I also fall into that boat. I use the public open source repos, but there's no way that I have the expertise or time to check everything in the repo for errors, security vulnerabilities, code correctness, etc.
 
Last edited:
Mar 31, 2021
14
8
For an eng build, there's no need for Magisk and LiveBoot to get an adb logcat. Part of the eng parameters is that it enables adb right away.
No, that is the problem - it did not. I am using eng-builds and, as I described, adb did not work, and I have no clue why.

For developing selinux policies, you leave it in permissive first, develop the policies as I stated and then when you think you are done, then enable selinux enforcing. More at

I read that and some other introductions to SELinux, I get the general idea and concept - but as shown in my example, the labeling rule
/firmware-modem(/.*)? u: object_r :tmp_root_mount_file:s0
is not applied, I did not find anything that would tell me why or how to debug such an issue.

And that's the problem right there. It's so easy to kang or copy someone else's work today (legal or illegal) that some don't bother to check if it's right in the first place. I'm not saying VirsysElectron code is wrong, he may have a good reason why those files are generated.
I started writing my own policies from scratch (its somewhere in the repo history), but I first wanted to get my bearings, see how things work - ideally from a known, working starting point - which was a good idea, as otherwise the issue mentioned above regarding the labeling rule that does not get applied would have cost me much more sanity than just questioning someone else's code :D
 
Last edited:

Schaagi

Member
Jun 30, 2015
27
2
Switzerland
Hello RandomAndroidTinkerer
I also own a T555, currently with TWRP 3.3.1 and LineageOS 16.0 from Virsys( 20191231). It's very stable, except the SIM didn't work.
Am of course interested in your image and would like to test it out. Which TWRP version do you use ?

Friendly greetings
Schaagi
 
Last edited:

retiredtab

Senior Member
Nov 16, 2017
829
405

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    Dear all,

    I am trying to build a LineageOS 17.1 ROM for the Galaxy Tab A 9.7 (gt510lte) SM-T555.

    Using the repos of @retiredtab and aala27's repos I managed to build a config that resulted in a buildable LineageOS that I could install and that shows the Lineage boot animation but crashes/reboots after a while.
    Fyi, my forks for the GT510LTE (SM-T555) I currently maintain here: https://github.com/blizzard4591?tab=repositories

    Questions to @retiredtab:
    - What is your current local_manifest/roomservice? I could not locate this in your Github and used one posted by aala27 in a different thread, but it might be "off".
    - Did you extract the required proprietary files by hand from stock ROMs or is there an automated way? I have "SM-T555_1_20190103084053_we4a668guy_fac" with T555XXU1CQHA/T555XXU1CRG1 that I know works on my T555.
    - The repo "vendor-samsung-gt5note10wifi" in your Github only contains a branch for Lineage 18.1, is that intentional?

    Sadly, I am a total noob in the area of building Lineage, so I might miss some obvious things!

    I am willing to put in some time and effort to make this work, but I just do not know enough to do it efficiently.
    If you can spare the time for a few hints, I believe I can make some progress!

    Cheers

    Update 1:
    My image is working, i.e. it boots and gives a stable system.
    Problem: Bluetooth does not work and crashes a lot, I have no clue what the problem is.
    Problem: Audio is not working, I see a lot of "audio_route: unable to find path 'low-latency-playback speaker'
    The system settings dialog is missing the "Android Patchlevel" information - is this expected? I am building using "repo sync, breakfast gt510lte, brunch gt510lte" - is this correct? I am just an idiot.

    Update 2:
    Bluetooth and Audio are working, SELinux is not, so permissive it is for now.
    Builds available on request.
    2
    Hi, I applied for an uploader account at AndroidFileHost, once this is granted I will upload a current build.
    2
    Thank you for your build. I also succeeded installing your build lineage-17.1-20210419-UNOFFICIAL-gt510lte-eng. I like the slightly better performance thanks to 1.6 Ghz overclocked cpu. What didn't worked was the gps-feature (tested with GPStest) - after minutes there could be located only one satellite. But besides that, this build is ok.
    Yes, as mentioned, the first fix takes a while (30+mins), but afterwards it was in the seconds for me.

    FINALLY, RIL/Radio is working!
    Sensors as well, even binderized for hwbinder. Vibrator working. Audio working...
    Lineage 18.1 for the SM-T555: https://www.androidfilehost.com/?fid=2188818919693788112
    1
    1
    Developper options have been already activated but the call of the developer menu is not possible.
    An eng build for whatever reason doesn't bring up the developer menu in 17.1, but works in 18.1.