Android Oreo 8.0 / Lineage 15.0 Dev Discussion

Search This thread

(°_o)

Senior Member
Jun 23, 2014
177
161
0
Currently on hold due to working on Nougat first.

I've got a booting or should I say bootlooping build of Lineage 15.0 for I9000. (galaxysmtd)

I've had to use crazy hacks like adb binary from 7.1 in ramdisk.
Just to get `adb logcat` working.

For now it's stuck at bootlogo. I've attached the logcat here.
I'm looking into it to figure out what needs to be done.

Sources:
manifests and patches I've used.
https://github.com/galaxys1-resurrected/local_manifests
https://github.com/galaxys1-resurrected/android_patches
Kernel:
https://github.com/galaxys1-resurrected/android_kernel_samsung_aries
Device Tree:
https://github.com/galaxys1-resurrected/android_device_samsung_aries-common
https://github.com/galaxys1-resurrected/android_device_samsung_galaxysmtd

Thanks:
@rINanDO for backporting kernel side of things to 3.0
@xc-racer99 and @Coldwindofnowhere for getting the device upto android 7.1
And all others who had worked from beginning till now on this device.
 

Attachments

  • logcat.txt
    158 KB · Views: 160
Last edited:

a1shakes

Senior Member
Jun 4, 2012
194
52
0
Is there anyone still working on this?

I was curious if anyone this was still being developed? I'm totally newbie in the android scene but have some knowledge of operating systems and am interested in resurrecting my i9000.

I went through the logs and a couple of things jumped out:
1) Surface flinger returning non zero exit status because it needs OpenGL ES v2.0 or greater. I believe i9000's GPU PowerVR SGX540 supports OpenGL ES 2.0, so this issue could be solved.
2) Media extractor crash: /system/bin/mediaextractor: libminijail[1291]: prctl(PR_SET_NO_NEW_PRIVS): Invalid argument, whatever the heck it means.
3) activity_recognition HAL is deprecated, so ActivityRecognitionHardware class's init does not do anything.

For 3 , I got to android_hardware_location_ActivityRecognitionHardware.cpp's source where it comments out activity_recognition.h with the following comment:
Code:
// #include <hardware/activity_recognition.h>
// The activity recognition HAL is being deprecated. This means -
//    i) Android framework code shall not depend on activity recognition
//       being provided through the activity_recognition.h interface.
//   ii) activity recognition HAL will not be binderized as the other HALs.

I believe more work has been done since this post based on git commits lasting upto Nov'17. Would be great if someone could post logs for an updated build. I feel that android oreo with go optimizations would be a really good fit for i9000 and uphold this device's legendary support. I mean a device running from eclair all the way to oreo would be amazing.

Even if this might not work out, I would like to thank @(°_o), @xc-racer99 , @Coldwindofnowhere and @rINanDO for bringing i9000 upto nougat. I believe even i9000's nexus sibling nexus s does not have a working nougat rom.
 
Last edited:

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
I was curious if anyone this was still being developed? I'm totally newbie in the android scene but have some knowledge of operating systems and am interested in resurrecting my i9000.

I went through the logs and a couple of things jumped out:
1) Surface flinger returning non zero exit status because it needs OpenGL ES v2.0 or greater. I believe i9000's GPU PowerVR SGX540 supports OpenGL ES 2.0, so this issue could be solved.
2) Media extractor crash: /system/bin/mediaextractor: libminijail[1291]: prctl(PR_SET_NO_NEW_PRIVS): Invalid argument, whatever the heck it means.
3) activity_recognition HAL is deprecated, so ActivityRecognitionHardware class's init does not do anything.

For 3 , I got to android_hardware_location_ActivityRecognitionHardware.cpp's source where it comments out activity_recognition.h with the following comment:
Code:
// #include <hardware/activity_recognition.h>
// The activity recognition HAL is being deprecated. This means -
//    i) Android framework code shall not depend on activity recognition
//       being provided through the activity_recognition.h interface.
//   ii) activity recognition HAL will not be binderized as the other HALs.

I believe more work has been done since this post based on git commits lasting upto Nov'17. Would be great if someone could post logs for an updated build. I feel that android oreo with go optimizations would be a really good fit for i9000 and uphold this device's legendary support. I mean a device running from eclair all the way to oreo would be amazing.

Even if this might not work out, I would like to thank @(°_o), @xc-racer99 , @Coldwindofnowhere and @rINanDO for bringing i9000 upto nougat. I believe even i9000's nexus sibling nexus s does not have a working nougat rom.

Unfortunately, no one is really actively working on Oreo. As you've found out, it's an issue with the graphics drivers that is holding everything back. No device (that I've found) that uses a PowerVR graphics chip (we use the PowerVR SGX 540) has working graphics drivers on Oreo. There were rumours that someone had found newer working blobs, but weren't able to release them publicly due to intellectual property laws that they were trying to figure out (but this was months ago).

Our GPU does support sufficient enough OpenGL, but only using BGRA8888 as opposed to RGBA8888. BGRA hasn't officially been supported in Android since ~4.2, but there's been a hack used to make things work. Come Oreo, things have changed and the hack no longer applies cleanly. However, I think the really issue is that the gralloc blobs was extended by PowerVR (see https://github.com/xc-racer99/andro...6.0/exynos3/s5pc110/include/hal_public.h#L119) but with the binderized HALs/VNDK/other low-level Oreo changes something has broken. I had a go at trying to work around things, but failed too.

There are a few ways I can think of getting working graphics:
1) Someone finds some updated blobs for the PowerVR SGX 540 for ARM (I've found x86 ones, but they don't work for obvious reasons)
2) Someone hacks around the source code so that the blobs work - but I'm not sure if it's PowerVR "extension" of the gralloc interface that is causing issues or not...
3) We simply use software rendering, but this would be so slow with our ancient CPU that I haven't bothered to try
4) We work on porting a newer kernel so we have the Samsung DRM kernel driver, use the Linux PowerVR blobs coupled with drm_gralloc/drm_hwcomposer and maybe a wrapper like https://github.com/TexasInstruments/dri3wsegl and somehow cobble together working support :)

In terms of the mediaextractor crash, that's due to the kernel missing seccomp support. There's a whole bunch of different backports, some more successful than others. Due to our ancient kernel, backporting is no longer very easy...

If we could somehow get the graphics drivers working, we'd have a pretty good base as there are free implementations of all HALs/drivers except for GPS and TV-Out (and, of course, graphics....).
 

nailyk

Senior Member
Oct 3, 2015
1,503
2,955
0
Are you really working on porting oreo on the i9000?
How do you deal with the small amount of ram?
Are you using the 'low end device' oreo feature?
 

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
Are you really working on porting oreo on the i9000?
How do you deal with the small amount of ram?
Are you using the 'low end device' oreo feature?

No, no one (that I know of) is actively working on Oreo for the first-gen Galaxy S devices. There were attempts, the kernel got in good enough shape that everything wasn't immediately crashing, but due to the graphics driver issues described a couple posts ago nobody has managed to get a fully booting build.
 
  • Like
Reactions: nailyk

nailyk

Senior Member
Oct 3, 2015
1,503
2,955
0
No, no one (that I know of) is actively working on Oreo for the first-gen Galaxy S devices. There were attempts, the kernel got in good enough shape that everything wasn't immediately crashing, but due to the graphics driver issues described a couple posts ago nobody has managed to get a fully booting build.

Thanks for fast anwser. Yes, the graphic driver problem exist on another of my exynos device.
Anyway I wasn't able to boot the 7.1 (not able to boot something else than 2.3.6 :D)
Will attempt to see that post you are talking about but am probably not smart enough to deal with graphics drivers ;)

Thanks for your time.
 

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
Thanks for fast anwser. Yes, the graphic driver problem exist on another of my exynos device.
Anyway I wasn't able to boot the 7.1 (not able to boot something else than 2.3.6 :D)
Will attempt to see that post you are talking about but am probably not smart enough to deal with graphics drivers ;)

Thanks for your time.

If you're serious about trying to mess with graphics drivers, it might be interesting to check out the blobs from https://www.renesas.com/pt-br/produ...ion-boards/renesas-starter-kit-for-rzg1e.html as it's an ARM-based device with the SGX540. It's possible that they're new enough to not run into the same issues as the older blobs (but equally possible that even the kernel part is closed source). The binary blobs are only semi-SoC specific as I've managed to use the OMAP blobs with only having hardware decoding being broken.
 
  • Like
Reactions: JuniorCaesar
Apr 18, 2015
19
1
23
28
deh e barez
freebitco.in
Is it for real???
I9000 !!:D
 

Attachments

  • androidoreolockup.jpg
    androidoreolockup.jpg
    21.9 KB · Views: 224

MYEUHD

Member
Feb 28, 2017
39
27
0

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
Apparently, some new SGX540 and SGX544 DDK blobs for OMAP4 have appeared:
https://gerrit.unlegacy-android.org/#/c/Unlegacy-Android/proprietary_vendor_ti/+/10525/
https://gerrit.unlegacy-android.org/#/q/topic:omap-ddk-1.14+(status:open+OR+status:merged
In fact, (Barnes and Noble's) hummingburd and ovation are both based on SGX544 and have gotten an Oreo ROM (using the new blobs).
https://forum.xda-developers.com/showpost.php?p=77526206&postcount=2490

Yep, I've seen the blobs, they've been there for awhile now. Just haven't had a chance to run a build with the blobs to see if they work. It's on my to-do list when I find the time :)
 
  • Like
Reactions: MYEUHD

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
Yep, I've seen the blobs, they've been there for awhile now. Just haven't had a chance to run a build with the blobs to see if they work. It's on my to-do list when I find the time :)

Alright, I've had a chance to look at the blobs now. I have a build, but unfortunately it looks as if we need to adjust our hwcomposer as well :( We use a relatively old hwc 1.0 but the new gralloc blob doesn't appear to keep the framebuffer open which is a requirement for a hwcomposer this old. There is a prebuilt blob that is used by omap4 devices but it doesn't work on s5pc110 due to the fact that it uses some DSS stuff which is OMAP-specific. Still plenty of work to do, without even trying to figure out all the Oreo/Pie changes (I'm testing on KitKat as that's the build environment I have setup right now).
 
  • Like
Reactions: MYEUHD

MYEUHD

Member
Feb 28, 2017
39
27
0
Alright, I've had a chance to look at the blobs now. I have a build, but unfortunately it looks as if we need to adjust our hwcomposer as well :( We use a relatively old hwc 1.0 but the new gralloc blob doesn't appear to keep the framebuffer open which is a requirement for a hwcomposer this old. There is a prebuilt blob that is used by omap4 devices but it doesn't work on s5pc110 due to the fact that it uses some DSS stuff which is OMAP-specific. Still plenty of work to do, without even trying to figure out all the Oreo/Pie changes (I'm testing on KitKat as that's the build environment I have setup right now).

We need a newer hwc anyway, as Pie requires at least hwc 1.3:
In 9.0, to get graphics to work, device is required to support HWC2 (or use either HWC2on1 or HWC2onFb adapters).
Yes, HWC has to be at least 1.3, to work with one of aforementioned adapters. With one of those adapters it will work like it was HWC 2 (but actually not exactly same).

As a reference, the galaxy S3's hwc was updated from 1.0 to 1.4: Thread
hardware/samsung
 
  • Like
Reactions: xc-racer99

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
We need a newer hwc anyway, as Pie requires at least hwc 1.3:

As a reference, the galaxy S3's hwc was updated from 1.0 to 1.4: Thread
hardware/samsung
Was unaware of the fact. Are you volunteering to make the patches? :D

I've uploaded my changes to https://github.com/xc-racer99/proprietary_vendor_samsung/tree/ddk-1.14 https://github.com/xc-racer99/android_hardware_samsung/tree/ddk-1.14 https://github.com/xc-racer99/android_kernel_samsung_aries/tree/ddk-1.14 https://github.com/xc-racer99/android_device_samsung_telusgalaxys4gmtd/tree/ddk-1.14 https://github.com/xc-racer99/android_device_samsung_aries-common/tree/ddk-1.14 but I think this might be the last I work on this as I don't really have the motivation to work on it anymore. Note the patches are against a custom version of Unlegacy Android 4.4 so you'll need to cherry pick the changes to your ROM of choice if desired.

The changes build, the EGL appears to initialize, but I always get
Code:
E/libEGL  (  471): validate_display:254 error 3008 (EGL_BAD_DISPLAY)
And in dmesg:
Code:
[    8.509291] init: computing context for service '/system/vendor/bin/pvrsrvinit'
[    8.509601] init: starting 'pvrsrvinit'
...
[    8.601890] PVR_K: UM DDK-(4081762) and KM DDK-(4081762) match. [ OK ]
...
[    8.765955] init: process 'pvrsrvinit', pid 99 exited
...
[   55.560021] PVR_K:(Error): PVRSyncIOCTLCreate: Failed to find unused fd (-24)
[   55.563491] PVR_K:(Error): PVRSyncIOCTLCreate: Failed to find unused fd (-24)
[   55.597577] s3cfb s3cfb: [fb0] video memory released

Whether the issue is in the HWC or the gralloc blob that we've stolen from OMAP, I have no idea.
 
  • Like
Reactions: mirhl and MYEUHD

xc-racer99

Senior Member
Aug 28, 2013
667
1,063
0
Will try to do my best!
BTW, do I really need jdk-7 to compile kitkat? or does it simply work with jdk-8??
You really do need jdk-7... I used the "reference implementation" available at http://jdk.java.net/java-se-ri/7 and made sure the java executables were in the PATH before the java I actually have installed.

Note that my Unlegacy Android trees will not work for the i9000 (well, they might, but you'd need to install u-boot as well at a bare minimum...)
 
  • Like
Reactions: MYEUHD

Top Liked Posts

  • There are no posts matching your filters.
  • 6
    Currently on hold due to working on Nougat first.

    I've got a booting or should I say bootlooping build of Lineage 15.0 for I9000. (galaxysmtd)

    I've had to use crazy hacks like adb binary from 7.1 in ramdisk.
    Just to get `adb logcat` working.

    For now it's stuck at bootlogo. I've attached the logcat here.
    I'm looking into it to figure out what needs to be done.

    Sources:
    manifests and patches I've used.
    https://github.com/galaxys1-resurrected/local_manifests
    https://github.com/galaxys1-resurrected/android_patches
    Kernel:
    https://github.com/galaxys1-resurrected/android_kernel_samsung_aries
    Device Tree:
    https://github.com/galaxys1-resurrected/android_device_samsung_aries-common
    https://github.com/galaxys1-resurrected/android_device_samsung_galaxysmtd

    Thanks:
    @rINanDO for backporting kernel side of things to 3.0
    @xc-racer99 and @Coldwindofnowhere for getting the device upto android 7.1
    And all others who had worked from beginning till now on this device.
    4
    I was curious if anyone this was still being developed? I'm totally newbie in the android scene but have some knowledge of operating systems and am interested in resurrecting my i9000.

    I went through the logs and a couple of things jumped out:
    1) Surface flinger returning non zero exit status because it needs OpenGL ES v2.0 or greater. I believe i9000's GPU PowerVR SGX540 supports OpenGL ES 2.0, so this issue could be solved.
    2) Media extractor crash: /system/bin/mediaextractor: libminijail[1291]: prctl(PR_SET_NO_NEW_PRIVS): Invalid argument, whatever the heck it means.
    3) activity_recognition HAL is deprecated, so ActivityRecognitionHardware class's init does not do anything.

    For 3 , I got to android_hardware_location_ActivityRecognitionHardware.cpp's source where it comments out activity_recognition.h with the following comment:
    Code:
    // #include <hardware/activity_recognition.h>
    // The activity recognition HAL is being deprecated. This means -
    //    i) Android framework code shall not depend on activity recognition
    //       being provided through the activity_recognition.h interface.
    //   ii) activity recognition HAL will not be binderized as the other HALs.

    I believe more work has been done since this post based on git commits lasting upto Nov'17. Would be great if someone could post logs for an updated build. I feel that android oreo with go optimizations would be a really good fit for i9000 and uphold this device's legendary support. I mean a device running from eclair all the way to oreo would be amazing.

    Even if this might not work out, I would like to thank @(°_o), @xc-racer99 , @Coldwindofnowhere and @rINanDO for bringing i9000 upto nougat. I believe even i9000's nexus sibling nexus s does not have a working nougat rom.

    Unfortunately, no one is really actively working on Oreo. As you've found out, it's an issue with the graphics drivers that is holding everything back. No device (that I've found) that uses a PowerVR graphics chip (we use the PowerVR SGX 540) has working graphics drivers on Oreo. There were rumours that someone had found newer working blobs, but weren't able to release them publicly due to intellectual property laws that they were trying to figure out (but this was months ago).

    Our GPU does support sufficient enough OpenGL, but only using BGRA8888 as opposed to RGBA8888. BGRA hasn't officially been supported in Android since ~4.2, but there's been a hack used to make things work. Come Oreo, things have changed and the hack no longer applies cleanly. However, I think the really issue is that the gralloc blobs was extended by PowerVR (see https://github.com/xc-racer99/andro...6.0/exynos3/s5pc110/include/hal_public.h#L119) but with the binderized HALs/VNDK/other low-level Oreo changes something has broken. I had a go at trying to work around things, but failed too.

    There are a few ways I can think of getting working graphics:
    1) Someone finds some updated blobs for the PowerVR SGX 540 for ARM (I've found x86 ones, but they don't work for obvious reasons)
    2) Someone hacks around the source code so that the blobs work - but I'm not sure if it's PowerVR "extension" of the gralloc interface that is causing issues or not...
    3) We simply use software rendering, but this would be so slow with our ancient CPU that I haven't bothered to try
    4) We work on porting a newer kernel so we have the Samsung DRM kernel driver, use the Linux PowerVR blobs coupled with drm_gralloc/drm_hwcomposer and maybe a wrapper like https://github.com/TexasInstruments/dri3wsegl and somehow cobble together working support :)

    In terms of the mediaextractor crash, that's due to the kernel missing seccomp support. There's a whole bunch of different backports, some more successful than others. Due to our ancient kernel, backporting is no longer very easy...

    If we could somehow get the graphics drivers working, we'd have a pretty good base as there are free implementations of all HALs/drivers except for GPS and TV-Out (and, of course, graphics....).
    2
    We need a newer hwc anyway, as Pie requires at least hwc 1.3:

    As a reference, the galaxy S3's hwc was updated from 1.0 to 1.4: Thread
    hardware/samsung
    Was unaware of the fact. Are you volunteering to make the patches? :D

    I've uploaded my changes to https://github.com/xc-racer99/proprietary_vendor_samsung/tree/ddk-1.14 https://github.com/xc-racer99/android_hardware_samsung/tree/ddk-1.14 https://github.com/xc-racer99/android_kernel_samsung_aries/tree/ddk-1.14 https://github.com/xc-racer99/android_device_samsung_telusgalaxys4gmtd/tree/ddk-1.14 https://github.com/xc-racer99/android_device_samsung_aries-common/tree/ddk-1.14 but I think this might be the last I work on this as I don't really have the motivation to work on it anymore. Note the patches are against a custom version of Unlegacy Android 4.4 so you'll need to cherry pick the changes to your ROM of choice if desired.

    The changes build, the EGL appears to initialize, but I always get
    Code:
    E/libEGL  (  471): validate_display:254 error 3008 (EGL_BAD_DISPLAY)
    And in dmesg:
    Code:
    [    8.509291] init: computing context for service '/system/vendor/bin/pvrsrvinit'
    [    8.509601] init: starting 'pvrsrvinit'
    ...
    [    8.601890] PVR_K: UM DDK-(4081762) and KM DDK-(4081762) match. [ OK ]
    ...
    [    8.765955] init: process 'pvrsrvinit', pid 99 exited
    ...
    [   55.560021] PVR_K:(Error): PVRSyncIOCTLCreate: Failed to find unused fd (-24)
    [   55.563491] PVR_K:(Error): PVRSyncIOCTLCreate: Failed to find unused fd (-24)
    [   55.597577] s3cfb s3cfb: [fb0] video memory released

    Whether the issue is in the HWC or the gralloc blob that we've stolen from OMAP, I have no idea.
    1
    Are you really working on porting oreo on the i9000?
    How do you deal with the small amount of ram?
    Are you using the 'low end device' oreo feature?

    No, no one (that I know of) is actively working on Oreo for the first-gen Galaxy S devices. There were attempts, the kernel got in good enough shape that everything wasn't immediately crashing, but due to the graphics driver issues described a couple posts ago nobody has managed to get a fully booting build.
    1
    @xc-racer99 Do you still have the AOSP 7.1 source code on your computer?
    I've got the .repo folder, but don't have the individual files expanded as I don't have the disk space :D Could run a repo sync and look at things but don't have the disk space for a full build.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone