gellmar

Members
  • Content count

    189
  • Joined

  • Last visited


Community Reputation

43 Excellent

About gellmar

  • Rank
    Enthusiast

Previous Fields

  • Your Current Device(s) LG Optimus L3 E400

gellmar's Activity

  1. gellmar added a topic in Samsung Galaxy S 4   

    SIM Unlock
    Greetings.
    How can I unlock the phone from SIM Lock? Bought i9505 in Athens, operator COSMOTE.

    got root, installed Russian stock firmware, but....

    - On the menu with * # 0011 # does not go into Service Mode.
    - Change firmware does not help.

    Can anybody advise an affordable online service for that operator?
    • 0 replies
    • 1336 views
  2. gellmar added a post in a topic CM9 for Lg Optimus L3 (E400)   

    The second - yes, and I am trying to fix it. But I have never tried the first. Any kernel logs on reboots?
    • 0
  3. gellmar added a post in a topic [ROM][Port] AOKP E400M6   

    muitenphale, why don't you use dsixda's kitchen to re-pack the ramfs and fix mount issues inside init.*.rc along the intact zImage? I am sure we need a GUIDE how to port kernels for SDMergE400 ourselves.

    I wanna write it since I cannot scope every ROM we have on the market...
    • 0
  4. gellmar added a post in a topic gellmar's notes on E-400 development   

    Note on in-call speaker mode fix. When one activates the speaker mode when making a call, its volume differs from the general mode negligibly. This was a bug of CM9 setup, which have never been present to the stock ROMs. so it was marked for fix in update 1.4 of my SDMergE400 and gellmar-mod ROMs. I spent abut five days to sort it out (with a three-day holiday, of course!) and now I found out what is wrong, and even can be the source of other possible bugs and improvements.

    First of all, let me describe the Android audio subsystem. The sound in Android is built around the AudioFlinger service which in turn uses hardware/libhardware_legacy and hardware/qcom/media (for Qualcomm MSM-based phones). So I started logcat and got the following log for a speakerphone call:


    D/InCallScreen( 657): toggleSpeaker(): newSpeakerState = true I/AudioHardwareMSM76XXA( 430): Routing audio to Speakerphone W/AudioHardwareMSM76XXA( 430): rpc_snd_set_device(6, 0, 0) .... D/InCallScreen( 657): toggleSpeaker(): newSpeakerState = false I/AudioHardwareMSM76XXA( 430): Routing audio to Handset W/AudioHardwareMSM76XXA( 430): rpc_snd_set_device(6, 0, 0) I started digging around setting volumes and audio routes. My very first attempt to patch was AndroidPoliceManager::setVoiceVolume multiplier in hardware/qcom/audio/msm7x27a/AndroidPolicyManager.cpp. That worked, but I was still not satisfied with the volume, because the stock one was noticeably louder. So I had to revert to stock and grab a logcat: D/PhoneUtils( 502): turnOnSpeaker(flag=true, store=true)... V/AudioHardwareMSM76XXA( 130): AudioStreamOutMSM72xx::setParameters() routing=2 V/AudioHardwareMSM76XXA( 130): set output routing 2 V/AudioHardwareMSM76XXA( 130): [LGE]doRouting(): outputDevices 2 ,mode 2 I/AudioHardwareMSM76XXA( 130): [LGE] ****** routing outputDevices[2] tty[0] I/AudioHardwareMSM76XXA( 130): Routing call to Speakerphone V/AudioHardwareMSM76XXA( 130): [LGE] Final outputDevices 2 new:7 mCur:6 E/AudioHardwareMSM76XXA( 130): [LGE]doAudioRouteOrMute() device 7, mMode 2, mMicMute 0 W/AudioHardwareMSM76XXA( 130): rpc_snd_set_device(7, 0, 0) W/AudioHardwareMSM76XXA( 130): setVoiceVolume(0.666667) called D/AudioHardwareMSM76XXA( 130): setVoiceVolume(0.666667) I/AudioHardwareMSM76XXA( 130): Setting in-call volume to 4 (available range is 0 to 7) D/AudioHardwareMSM76XXA( 130): rpc_snd_set_volume(32, 0, 5) ... D/CallManager( 502): setEchoSuppression(true) D/CallManager( 502): ########### Dump CallManager ############ D/CallManager( 502): CallManager state = OFFHOOK D/CallManager( 502): - Foreground: ACTIVE from Handler{407c5ee8} D/CallManager( 502): Conn: [ incoming: false state: ACTIVE post dial state: COMPLETE] D/CallManager( 502): - Background: IDLE from Handler{407c5ee8} D/CallManager( 502): Conn: [] D/CallManager( 502): - Ringing: IDLE from Handler{407c5ee8} D/CallManager( 502): Phone: Handler{407c5ee8}, name = GSM, state = OFFHOOK D/CallManager( 502): - Foreground: ACTIVE Background: IDLE Ringing: IDLE D/CallManager( 502): ########## End Dump CallManager ########## D/CallManager( 502): End setEchoSuppression(true) D/CallManager( 502): ########### Dump CallManager ############ D/CallManager( 502): CallManager state = OFFHOOK D/CallManager( 502): - Foreground: ACTIVE from Handler{407c5ee8} D/CallManager( 502): Conn: [ incoming: false state: ACTIVE post dial state: COMPLETE] D/CallManager( 502): - Background: IDLE from Handler{407c5ee8} D/CallManager( 502): Conn: [] D/CallManager( 502): - Ringing: IDLE from Handler{407c5ee8} D/CallManager( 502): Phone: Handler{407c5ee8}, name = GSM, state = OFFHOOK D/CallManager( 502): - Foreground: ACTIVE Background: IDLE Ringing: IDLE D/CallManager( 502): ########## End Dump CallManager ########## What do we see here? A lot of... but the most interesting is I/AudioHardwareMSM76XXA( 130): Routing call to Speakerphone V/AudioHardwareMSM76XXA( 130): [LGE] Final outputDevices 2 new:7 mCur:6 E/AudioHardwareMSM76XXA( 130): [LGE]doAudioRouteOrMute() device 7, mMode 2, mMicMute 0 W/AudioHardwareMSM76XXA( 130): rpc_snd_set_device(7, 0, 0) rpc_snd_set_device is a routine that does real routing by switching ioctl's to 7x27a driver. So we get device number 7 in stock and 6 in Cyan. I compared the kernel sources and found that files related to endpoints were identical. So I patched a line in AudioHardware constructor and got the following mapping of endpoints ID vs endpoint name: E/AudioHardwareMSM76XXA( 115): cnt = 0 ept->name = HANDSET_LOOPBACK ept->id = 5 E/AudioHardwareMSM76XXA( 115): cnt = 1 ept->name = HANDSET ept->id = 6 E/AudioHardwareMSM76XXA( 115): cnt = 2 ept->name = HEADSET_LOOPBACK ept->id = 1 E/AudioHardwareMSM76XXA( 115): cnt = 3 ept->name = HEADSET ept->id = 2 E/AudioHardwareMSM76XXA( 115): cnt = 4 ept->name = HEADSET_STEREO ept->id = 3 E/AudioHardwareMSM76XXA( 115): cnt = 5 ept->name = SPEAKER ept->id = 0 E/AudioHardwareMSM76XXA( 115): cnt = 6 ept->name = SPEAKER_IN_CALL ept->id = 7 E/AudioHardwareMSM76XXA( 115): cnt = 7 ept->name = SPEAKER_RING ept->id = 8 E/AudioHardwareMSM76XXA( 115): cnt = 8 ept->name = STEREO_HEADSET_AND_SPEAKER ept->id = 8 E/AudioHardwareMSM76XXA( 115): cnt = 9 ept->name = FM_HEADSET ept->id = 10 E/AudioHardwareMSM76XXA( 115): cnt = 10 ept->name = FM_SPEAKER ept->id = 11 E/AudioHardwareMSM76XXA( 115): cnt = 11 ept->name = BT ept->id = 13 E/AudioHardwareMSM76XXA( 115): cnt = 12 ept->name = TTY_HEADSET ept->id = 15 E/AudioHardwareMSM76XXA( 115): cnt = 13 ept->name = TTY_VCO ept->id = 16 E/AudioHardwareMSM76XXA( 115): cnt = 14 ept->name = TTY_HCO ept->id = 17 E/AudioHardwareMSM76XXA( 115): cnt = 15 ept->name = TTY_HCO_SPEAKER ept->id = 18 E/AudioHardwareMSM76XXA( 115): cnt = 16 ept->name = HANDSET_VR ept->id = 20 E/AudioHardwareMSM76XXA( 115): cnt = 17 ept->name = HEADSET_VR ept->id = 21 E/AudioHardwareMSM76XXA( 115): cnt = 18 ept->name = BT_VR ept->id = 23 E/AudioHardwareMSM76XXA( 115): cnt = 19 ept->name = NO_MIC_HEADSET ept->id = 4 E/AudioHardwareMSM76XXA( 115): cnt = 20 ept->name = HEADSET_WITHOUT_MIC_VR ept->id = 22 E/AudioHardwareMSM76XXA( 115): cnt = 21 ept->name = SPEAKER_LOOPBACK ept->id = 29 E/AudioHardwareMSM76XXA( 115): cnt = 22 ept->name = SPEAKER_AUXMIC ept->id = 30 E/AudioHardwareMSM76XXA( 115): cnt = 23 ept->name = CURRENT ept->id = 32 Everything clear? We have a state of SPEAKER_IN_CALL that operates at fuil possible volume, while SPEAKER limits the volume to prevent your ears to leak :) I changed the routing in do_routing and voila - it works. You can see the patch vommitted in my github repo. Additionally, I'd like to post a mapping of stream numbers that setStreamVolume, startOutput and other functions use: enum stream_type { DEFAULT =-1, VOICE_CALL = 0, SYSTEM = 1, RING = 2, MUSIC = 3, ALARM = 4, NOTIFICATION = 5, BLUETOOTH_SCO = 6, ENFORCED_AUDIBLE = 7, // Sounds that cannot be muted by user and must be routed to speaker DTMF = 8, TTS = 9, #if defined(QCOM_HARDWARE) && !defined(USES_AUDIO_LEGACY) FM = 10, #endif NUM_STREAM_TYPES };

    The volume change for media files (STREAM_MUSIC) is operated via AndroidPolicyManagerBase::setStreamVolume and the in-call voice (routed to handset aka normal operation mode) - by AndroidPolicyManager::setVoiceVolume.

    Also I noticed that Cyanogenmod's msm7x27a AudioHardware.cpp lacks of many endpoints - marked as unnecessary, their absence leads to non-working loudspeaker, FM radio etc. That is why I post so detailed reference here.
    • 5
  5. gellmar added a post in a topic SDMergE400 Mod (gellmaR & cRaZyByte) - Get 1.1GB Space for your apps and data!   

    Just apply 1.3 without wipes and reboot. All data should remain intact
    • 1
  6. gellmar added a post in a topic [Mod] Enable USB mass storage   

    You should also check if vold supports it ( the lunfile names match) and dirty_ratio file is not changed - tested on my LG phones.
    • 1
  7. gellmar added a post in a topic SDMergE400 Mod (gellmaR & cRaZyByte) - Get 1.1GB Space for your apps and data!   

    LG United Moblie drivers on PC set? Turn phone off, battery off, then plug battery in, hold Volume down + Volume up + Power until you go to Emergency mode. Obtain KDZ flasher and KDZ pack from ninjaromeo. Plug the cable, start flasher, select 3GQCT / DIAG and start flashing...
    • 0
  8. gellmar added a post in a topic SDMergE400 Mod (gellmaR & cRaZyByte) - Get 1.1GB Space for your apps and data!   


    Cjeck step4 v1 - does it work for you?
    • 0
  9. gellmar added a post in a topic CM9 for Lg Optimus L3 (E400)   

    logcat -b radio there?
    • 0
  10. gellmar added a post in a topic SDMergE400 Mod (gellmaR & cRaZyByte) - Get 1.1GB Space for your apps and data!   

    Which nightly you are on? If cm9-0505 then it is a buggy build. Several guys reported the same on May builds. On April (pre 21) everything is fine
    • 0
  11. gellmar added a post in a topic [KERNEL][cm9] FIX for BLURRED SCREEN + OVERCLOCK + OTHERS   

    @nikufellow, and how much do you need on so many files? I doubt you can achieve 4mb/sec on stock with such a payload. It depends also on your SD card write speed. Can you install Stockmerge and post screenshot from it?

    Just started a similar case (227 items, 6,65GB total) - the avg speed is about 2.15 MB/sec on CM9. Single 120Mb file on CM9 - 3.55 MB/sec. Now will install StockMerge and report the difference.

    Well, on SMrc2 the speed started at 4.50MB/sec on the same file set but then dropped to 2.80 MB/sec at the end of first APE album (~400 MB). Now it is about 2.50 MB/sec. On smaller files the speed increases to ~3MB/sec Maybe it is a cache coherence issue, I don't know yet.
    • 0
  12. gellmar added a post in a topic CM9 for Lg Optimus L3 (E400)   

    2 mb/sec is not a bug... bug is 300 to 700kb/sec. You can try setting bigger value for ro.vold.umsdirtyratio in build.prop to see any difference
    • 0
  13. gellmar added a post in a topic CM9 for Lg Optimus L3 (E400)   

    well, StanTRC discovered the same bug, but he got an info about no more pmem.

    I should investigate it
    • 0
  14. gellmar added a post in a topic SDMergE400 Mod (gellmaR & cRaZyByte) - Get 1.1GB Space for your apps and data!   

    Set CMUpdater to check for updates manually.
    • 1

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2015. MoDaCo uses IntelliTxt technology.