Jump to content

[Dev/Experimental][ROM] Ideos X3 gingerbread rom runs on Pulse


Guest dr.flo
 Share

Recommended Posts

I don't want to give up on this yet...

I've gained some more knowlegde: This stack dump

I/DEBUG ( 1193): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

I/DEBUG ( 1193): Build fingerprint: 'Huawei/U8510/hwu8510:2.3.5/HuaweiU8510/C364B856:user/ota-rel-keys,release-keys'

I/DEBUG ( 1193): pid: 3370, tid: 3370 >>> com.cooliris.media <<<

I/DEBUG ( 1193): signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr ad330eac

I/DEBUG ( 1193): r0 405749d0 r1 40535468 r2 acaa3fbc r3 00000001

I/DEBUG ( 1193): r4 0000ac90 r5 405749c0 r6 405354a8 r7 405354a8

I/DEBUG ( 1193): r8 405354b4 r9 405354ac 10 405354b0 fp 40535468

I/DEBUG ( 1193): ip aca9e654 sp be92e3b0 lr aca4460b pc ad330eac cpsr 00000010

I/DEBUG ( 1193): cannot get registers: I/O error

I/DEBUG ( 1193): #00 pc 00030eac /data/sys_part/lib/libandroid_runtime.so

I/DEBUG ( 1193): #01 pc 00011df4 /data/sys_part/lib/libdvm.so

I/DEBUG ( 1193): #02 pc 00030d70 /data/sys_part/lib/libandroid_runtime.so

...

can be analyzed using addr2line (arm toolchain):

addr2line -C -f -e libandroid_runtime.so 0x30eac

gives
android::register_android_opengl_classes(_JNIEnv*)

??:0

Where ??:0 would be line number and source file in a debug enabled build. We don't have that but at least we know what function inside libandroid_runtime caused the crash. Since its name is opengl related, I believe it is reasonable to assume the problem is in there.

It is also related to JNI (java native interface?). I need to find out who calls this function register_android_opengl_classes. I did not find any reference to it in the other libs, so (also indicated by use of JNI stuff), the function is most likely called from within java code, either framework itself or gallery app).

---> Who knows how to figure out function calls done by framework?

Edited by dr.flo
Link to comment
Share on other sites

I don't want to give up on this yet...

I've gained some more knowlegde: This stack dump

can be analyzed using addr2line (arm toolchain):

addr2line -C -f -e libandroid_runtime.so 0x30eac

gives
android::register_android_opengl_classes(_JNIEnv*)

??:0

Where ??:0 would be line number and source file in a debug enabled build. We don't have that but at least we know what function inside libandroid_runtime caused the crash. Since its name is opengl related, I believe it is reasonable to assume the problem is in there.

It is also related to JNI (java native interface?). I need to find out who calls this function register_android_opengl_classes. I did not find any reference to it in the other libs, so (also indicated by use of JNI stuff), the function is most likely called from within java code, either framework itself or gallery app).

---> Who knows how to figure out function calls done by framework?

may be this can help? not sure

http://stackoverflow.com/questions/78723/how-to-test-function-call-order

Link to comment
Share on other sites

played a bit with rom.

cool that we have it.

very brave to put libs and framework into /data :)

looks like Gallery3D issue is due to hardware acceleration not working properly. Same for Neocore when it switches modes to run actual tests.

interesting that many libs are interchangeable with cm72 - all graphics, surfaceflinger libs. Likely worth to try further exchange libs until hardware acceleration work. Thankfully it does on cm7.

I hate its luncher - MIUI/iPhone style icons :)

which libs are concerning hadrware acceleration?

Link to comment
Share on other sites

you get opengl working (in neocore) if you

- add egl/egl.cfg

- add egl/libGLES_qcom.so

- replace hw/*gralloc* with ones from cm7.2

- replace libEGL.so with one from cm7.2

but it won't help Gallery app. That's known already.

If you want to play with that rom a little more:

  • You can remove Gallery app and install QuickPick as a replacement. It works.
  • Also you can install Android Music Player (the default gingerbread player, availale on market for other android versions) and remove Huawei Music. Mp3s will play back fine then.

The next step would be to get more video playback functionality. Playing with *stagefright*, *Omx*, *omx*, *opencore* might help... These are all related to multimedia. A source to pick replacement files from would be cm72.

Link2sd works - tested. Native apps2sd also works for apps that allow it. Other 2sd untested.

Edited by dr.flo
Link to comment
Share on other sites

you get opengl working (in neocore) if you

- add egl/egl.cfg

- add egl/libGLES_qcom.so

- replace hw/*gralloc* with ones from cm7.2

- replace libEGL.so with one from cm7.2

but it won't help Gallery app. That's known already.

If you want to play with that rom a little more:

  • You can remove Gallery app and install QuickPick as a replacement. It works.
  • Also you can install Android Music Player (the default gingerbread player, availale on market for other android versions) and remove Huawei Music. Mp3s will play back fine then.

The next step would be to get more video playback functionality. Playing with *stagefright*, *Omx*, *omx*, *opencore* might help... These are all related to multimedia. A source to pick replacement files from would be cm72.

Link2sd works - tested. Native apps2sd also works for apps that allow it. Other 2sd untested.

i did try a lot yesterday playing with libs....but without your information... will try again now today....i could notice that in that rom we can change entire part of libs without affecting(libomx*) and then when you change a single file (ex:libstagefright_author /common)you can²t reboot rom...well i am learning.... ps; i did all my tests yesterday with um840 files

will do test again ..thx for info :)

Link to comment
Share on other sites

some files might depend on android version, so exchanging them from cm72 might be better than from um840.

On the other hand, most of the *Omx* do not seem to depend on android version, as people seem to be using um840 versions on cm7 for hq video.

Link to comment
Share on other sites

yesterday i had problem to dl files on market with this rom...begin to dl then stop while installing.....do i have to clear cache or something to be able to downloadl? it would help me. thx

Link to comment
Share on other sites

yesterday i had problem to dl files on market with this rom...begin to dl then stop while installing.....do i have to clear cache or something to be able to downloadl? it would help me. thx

I did not yet have problems with market on any rom, including this one. I never install more than one app at a time, because I don't trust our pulse to do that right...

Try clearing cache and also go to manage applications -> market -> clear data

Link to comment
Share on other sites

there is no libopencore in cm7.2. From where it is better to find them? cm6? another one? thx...

edit:

if i replace

1/ all libomx* from cm7.2=no change

2/all *omx* +all *Omx*but not h264 (if i do replace h264=no more video, sound only; and more problem)=no change

3/same than 2 +all*stagefright*=no boot

4/same than 2 +all*stagefright*except those 2(*stagefright* and *stagefrighthw*)=boot but no change about video/gallery

so my questions are :which libstagefright* must not be replaced? i think the first one

which *opencore* file must not be replaced?

5/same than4 + i replaced all*opencore* from cm6.1=no boot

6/same than4+ i deleted all *opencore* like in cm7.2=no boot

7/same than4+replaced *opencoremp4*(2) +*opencorehw* from cm6.1=no boot

/same than 4+replaced *opencoremp4*(2) +*opencorehw* from rom um840=no change (no libopencore* in cm7.2):blink:

Edited by desalesouche
Link to comment
Share on other sites

updated rom. download is in first post.

changelog since version 20120219

- improved video playback

- at least partial opengl support: neocore runs.

- replaced crashing stock apps (Gallery, Music) with working alternatives

- integrated su

- updated wifi driver, should now resume connection after sleep

- enabled camera drivers (stock app will crash, most 3rd party apps perform better)

Link to comment
Share on other sites

that rotation thing annoyed me most last time I tested :)

it kind of affects user perception of the rom in general :)

I tried to replace different sensors libs at that time with no luck unfortunately...

Link to comment
Share on other sites

that rotation thing annoyed me most last time I tested :)

it kind of affects user perception of the rom in general :)

I tried to replace different sensors libs at that time with no luck unfortunately...

I would guess it needs akmd2. All our roms that have rotation working use akmd2. This one uses two akmXX that most likely simply do not match our hardware.

Maybe sensors lib from cm7 + akmd2 + ajdustments in ramdisk to start akmd2 would fix rotation. It can't be that difficult. Our akmd2 from eclair seems to work well with froyo and gingerbread, so it seems highly exchangeable.

(akmd2 is related to sensors/rotation, isn't it?)

Link to comment
Share on other sites

about bluetooth rom x3 have this bluetooth hw http://www.broadcom....lutions/BCM4329

so may be the 4 files concerning it in system/etc/bluetooth (BCM4329.hcd/and the 3 init.bcm*) could be deleted...

i tried it doesn't work...but they might be linked/correlated to other part of rom?

Edited by desalesouche
Link to comment
Share on other sites

about bluetooth rom x3 have this bluetooth hw http://www.broadcom....lutions/BCM4329

so may be the 4 files concerning it in system/etc/bluetooth (BCM4329.hcd/and the 3 init.bcm*) could be deleted...

i tried it doesn't work...but they might be linked/correlated to other part of rom?

we don't have Broadcom chip.

Our bluetooth is on main chip msm7200a

My guessing the key is somewhere in ramdisk + maybe hci*init* binary

Link to comment
Share on other sites

pier, what is the source of the sensors lib that you currently compile for cm72?

It should be different than what is in pulse device tree because even compat kernel exposes original u8150 sensors interface (am I right?).

I know that sensors lib doesn't work on x3 rom, but I want to gain some insight in general. The fact that x3 sensors lib is "working" but just with an offset makes me feel like something can be done...

There seem to be some constants for converting orientation (like this). Perhaps these could somehow be found in a dissassembled x3 sensors lib and modified there. Difficult. But to begin with, I would like to play with our working gingerbread sensors lib for kernel .32 in cm72 and see if I can generate rotation offset there by changing constants in source.... If i discover that is is just a numeric constant that needs to be changed, one could try hacking x3 sensors lib (or, if that fails as I'm no assembler expert at all, the offset could be added in "compat-compat"-kernel special build).

Link to comment
Share on other sites

https://market.andro...ard.widget.free

is a functional workaround for not working usb mass storage

edit: but mass storage can be toggled even easier:

turn on:

echo "/dev/block/vold/179:1" > /sys/devices/platform/msm_hsusb/gadget/lun0/file

turn off:
echo "/dev/null" > /sys/devices/platform/msm_hsusb/gadget/lun0/file

Looks like a GScript Lite job to me ;)

Native mechanism doesn't work because gingerbread kernels have a different way of implementing mass storage switch. Ideos x3 rom doesn't come with support for froyo kernel and our kernel doesn't come with support for gingerbread roms.

(It works in cm7 because there some compat mode for older kernels exists, but I did not manage to intergate that into ideos rom. You can exchange vold to get the usb notification icon, but it still won't mount mass storage then).

Edited by dr.flo
Link to comment
Share on other sites

new version is available...

changelog since version 20120227

- usb mass storage (use included app gscript lite to launch script "ums_toggle")

- fixed screen rotation

- internal: cleanup ramdisk (now based on pulse cm7)

If you want mass storage, launch GScript Lite (included in the rom), choose menu / add script, enter anything for "name", tick "needs su" and enter "ums_toggle" as script.

Afterwards you can add this action to your home screen by selecting "add shortcut" -> Gscript Lite -> pick script you just created.

Screen rotation is fixed by replacing libsensorservice.so + sensors.default.so with ones from u8150 cm7.

Ramdisk is now based on cm7. This should help enabling bluetooth in the future, it is most likely only needed to replace some libs / bins with cm7 pulse versions.

Link to comment
Share on other sites

that's nice!

It really improves user experience ;)

The funny thing is that the sensors lib u8150 uses is a froyo one. cm7 libsensorservice can be compiled in compat mode for those devices that needed to pull sensors lib from their froyo roms.

Bluetooth also should be easy to get since we use "good" ramdisk now.

Edited by dr.flo
Link to comment
Share on other sites

I can't wait to try this out..but somewhy i can't download the rom from mediafire. In some days i'll try to download that via desktop and give it a test.

This can be a very promising port i think :)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.