[Samsung Galaxy SL i9003] loSconosciuto:
Here is where I'll post my CM10 builds.

qwerty was the name I gave to the kernel I used to post here before I started to post entire ROM builds.

This is based on the amazing dhiru1602's work, big thanks to him.

Dowloads:

Google Drive

You can't resume downloads with GDrive. If you prefer other hosting websites, you can use the direct link of my builds to remotely upload them somewhere else. Dev-Host allows you to do that and allows you to resume downloads. Feel free to mirror my files.

Sources:

Device, kernel, vendor

Misc changes/instruction to build this ROM. The patches not available on Github are here.

Please, read carefully the whole post.

There are two different versions of the ROM. One is using the kernel 3.0, the other the kernel 2.6.35. Read the known bugs and flash the one you prefer.

I did some changes to this CM-10, I updated it and added some extra features such as inbuilt SD swap (Settings > Storage > Use external storage), possibility to show the navbar without rebooting (System > Power menu > navbar and enable it from the power menu. It doesn't work perfectly, keyboards and notification panel can go behind it) possibility to limit the number of background apps and other handy options.

I also backported some performance patches and misc fixes from CM-10.1 and some apps: Trebuchet, Apollo, Gallery (camera), Clock, CM File Manager and Superuser.

Known bugs:

Backlight issues for some users: the screen backlight will automatically turn on when it's supposed to stay off.

Audio/video sync issues while recording videos at 720p, along with frames and fps drops.

Rare reboots. If they happen, post the content of /proc/last_kmsg.

Known bugs:

Missing HW composer.

WiFi doesn't work perfectly. Some users report continuous disconnections or problems connecting to netowroks. Try to use a static IP in case you have problems.

Native USB tethering doesn't work. Use a third party app (tested: android-wired-tether).

The inbuilt Wi-Fi hotspot can be used only once, sometimes more, and after that a reboot is required to use it again. You can though use this modified version of android-wifi-tether, reboots are not required.

HD video playback suffer low framerate issues.

The 720p preview framerate is intentionally limited, especially while recording. The recorded video is (almost) fine.

There are sometimes lags in the preview while video calling with the front facing camera

Poor bluetooth headset sound quality. (I don't own a bluetooth headset, hence it's very hard for me to find the problem) - flash libaudio-BT-NR-fix.zip.

Release changes:

Look for the name of the zip in this thread to find its changes. This is no more updated.
...
20130425: Camera HAL updates. Removed background apps limit. Use the modified dev settings to choose the number of background apps.
20130416: Camera HAL: experimental changes
20130407: Partially working WiFi tethering (perfect with [I]android-wifi-tether[/I])
20130402: Several kernel changes, UMS regression fixed
20130329: Video pillarbox. Regression: UMS requires adb
20130326: Optimized build
20130320: SSID fetch fixed
20130319: Better wpa_supplicant support: WiFi scan and disconnecting bug fixed. Missing WiFi signal intensity fixed.

Stock ROM / CM7 / CM9 / CM10 Alpha3 (or older):

Stock ROMs only: Make sure you have CWM. Flash a custom kernel otherwise

Download the zip of the ROM and save it into the internal SD or the external one (*)

Reboot to recovery

Flash the downloaded zip

optional: Flash mobiledata_off.zip if you want mobile data off during the first setup

optional: Flash Google Apps (for Android 4.1.2, many things will break otherwise)

Reboot

(*) While flashing, the device will reboot and you'll see a different recovery after that.

If the zip is inside the internal SD, the flash will re-start automatically after the reboot.

If the zip is inside the external SD, you have to re-start the flash manually re-flashing the zip. If you don't do that, only recovery will work until you flash the zip.

CyanogenMod 10:

Download the zip of the ROM and save it into the external SD or the internal memory

Reboot to recovery

Flash the downloaded zip

optional: Flash Google Apps (if you have already flashed them once, you can skip this step)

Reboot

Data wipes are mandatory only if you are not using CM10, it's not required otherwise.

It doesn't matter if you are going to flash the version with the 3.0 kernel and you are using the other, it should work.

CyanogenMod 10.1/10.2:

Download the zip of the ROM and save it into the external SD or the internal memory

Reboot to recovery

Flash the downloaded zip

optional: Flash Google Apps

optional: Flash mobiledata_off.zip if you want mobile data off during the first setup

Wipe data/factory reset

Reboot

Downgrades are probably not expected, that's why you need to do a data wipe.

Important note:

The modem is always replaced with XXLE4 modem when this ROM is flashed over a stock ROM, CM9 or CM10 Alpha 3 (or older).

You can easly replace it. Take modem.bin from the tar of a stock ROM, place it in /radio overwriting the existing one and reboot. This is required only once, modem.bin is never replaced while updating the ROM. I9003L must do this, I9003 users can use the included modem, but it's better to use the modem made for your region.

The latest versions of Instagram are not working due to a problem with related to the GPU binary blob. Instagram 3.4.0 is the latest working version. Probably every device using the same binary blob is affected (Optimus Black for example). You can download a modified version from here that will allow you to login.

The latest versions of Skype do not work properly, the preview is stretched and wrongly rotated. Use Skype 2.9.0.315 or see this post.

LEDs are not supposed to blink when a new notifcation arrives. They'll light up, but they won't blink. Making them blink would prevent the device from entering deep sleep.

(3.0 kernel) Once the battery is fully charged, it will start discharging and it won't be recharged automatically if at least 90 minutes have passed. You can forcefully charge it by unpluggin and re-pluggin the cable. This is an intended behaviour, charging the battery continuosly to keep it at 100% can shortnmyself toer its life.

This ROM allows you to force two apps to stay in memory. See this post for more info.

I made possible to toggle the navbar state directly from the powermenu modifying the existing expanded desktop feature, however it's not working perfectly. The navbar can go over the notification panel and the keyboard while in landscape. However it works as expected if you enable the navbar by setting qemu.hw.mainkeys or modding framework-res.apk. I have no intention to "fix" this as I can't see the utility of the navbar on our device.

(3.0 kernel) For some reason when the screen is turned off during a call by the proximity sensor, if enough time has passed it won't be turned on automatically. You can wake the screen immediately by pressing the home button or the power button or you can increase the backlight timeout from the settings. That will make the proximity sensor work for longer (I'm not sure, but I think the proximity sensor stops working exactly after this timer has expired). this problem is maybe solved.

FM radio is available through third party apps, such as Spirit FM

"Native" 3G video calls are not supported and most likely never will, flash a stock ROM if you need them. GTalk, Skype and all the other apps works though.

(3.0 kernel) if you lost your IMEI, WiFi will probably not work. See this for more info and instructions to fix the problem. No more required.

(3.0 kernel) part of the RAM is reserved. You'll see that we have 442MB 454MB of RAM, that's fine, the missing RAM is not really lost, it's still used.

If the keyboard keeps crashing, you probably flash the wrong gapps.

The magnetic sensor sometimes reports wrong values. When it happens, the field intensity is very high. This was observed with the 3.0 kernel, but probably the same thing happens with a 2.6.35 kernel.

(3.0 kernel) my SD card (it's probably a cheap SD card) is not working properly and I often have corrupted files. It worked fine with the kernel 2.6.35, so if you often have corrupted files, try a different SD card or use the old kernel.

Weird activity in standby? Read this.

(3.0 kernel) 1.2GHz is not stable on every device. I had to disable SmartReflex because it was causing crashes on my device. This means that the voltage of the OPP5 is locked the value I chose is not universally good. I'd prefer not to increase it more, if you have too many reboots, don't overclock. WARNING: don't tick "Set on boot" unless you are sure your device can handle OC. f you are stuck in a bootloop, flash disable_opp5.zip.

In case the max frequency is 1.1GHz, then SmartReflex is enabled and the option in DeviceParts has no effect.

If you find a bug not listed, please report.

Post as many informations as possible, ways to reproduce it and logs.

You can easily grab (almost) all the logs I need by pressing vol down, vol up and power at the same time ("recent" builds only). LEDs will blink and /storage/sdcard0/logs_qwerty/log_DATE.txt will be created. In case the memory is not ready, you'll find the files in /data/logs_qwerty/log_DATE.txt.

After months of use, I decided to publicly release my kernel.

This is for CyanogenMod 10 Alpha 4.

It's based on the GB kernel sources released by Samsung (GT-I9003_GB_Opensource_Update2.zip), modified (mostly by dhiru1602) to work with CyanogenMod.

Because of my lack of fantasy I named it "qwerty". It sucks, but at least it's easy to remember.

Main features:

XDA_Bam's code and fixes:

◦ 5 OPPs

◦ Booting at stock speed (1000MHz)

◦ Slight undervolt (3%) on all OPPs

◦ Home button double presses fix

◦ Lowered processor transition latency

◦ Stable Bluetooth connections

Modified light sensor driver: [1]

◦ Disabled hardcoded filter. CyanogenMod has its own filters, enable it from the settings.

◦ Dynamic polling interval

◦ Code cleanup

Modified battery driver [2]

CPU Governors:

◦ Ondemand (default)

◦ SmartassV2

◦ Conservative

◦ Performance

I/O schedulers:

◦ Deadline (default)

◦ Noop

◦ CFQ

◦ SIO

Toggable FSync

Fixed always ON LEDs bug when used for notifications only

VPN networks support (not tested)

Slightly increased touchkeys sensitivity (from 45 to 35)

Other minor changes and optimizations

Downloads:

version 4.0: kernel-qwerty-cm-10-galaxysl-v4.0.zip: kernel with custom DeviceParts.apk [3], hostap and tiap_drv.ko [5]

clean-qwerty-cm-10-galaxysl.zip: restore zip with dhiru1602's kernel

UPDATE: USB composite is still a bit messed up. Windows can't recognize the phone when RNDIS (USB tethering) is enabled (working fine with Linux).

If you need RNDIS, flash this kernel release or the previous one.

Additional zips:

powerHAL-cm-10-galaxysl.zip: power HAL for boosting the CPU when ondemand is used [4]

libsensor-cm-10-galaxysl.zip: custom libsensor. Read note [1]

Changelog:

22/04/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/compare/v3.1...v4.0"]v4.0[/URL]
02/04/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/compare/v3.0...v3.1"]v3.1[/URL]
01/03/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/compare/v2.1...v3.0"]v3.0[/URL]
12/02/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/compare/v2.0...v2.1"]v2.1[/URL]
09/02/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/compare/v1.0...v2.0"]v2.0[/URL]
08/02/13: [URL="https://github.com/sconosciuto/android_kernel_samsung_latona/commits/v1.0"]v1.0[/URL] - Initial release

Notes:

[1] I made it compatible with the prebuilt libsensor included in CyanogenMod, but I'm using my own libsensor and maybe I didn't test this kernel with the stock one for long enough. I hence added my libsensor, just in case. If you want to restore the original libsensor, simply remove /system/lib/hw/sensors.latona.so.

[2] You can modify "samsung-battery" wakelock length through DeviceParts. By default it behaves like the original module. If you see "Android System" or anything else eating your battery with no reasons, increase the delay or restore the default one.

[3] DeviceParts.apk (System Settings > Advanced) is included because of some additional settings useful when this kernel is used. I'm not a Java dev, so it's probably not perfect, but it works quite well. I took pieces of code from other devices (mostly Crespo, Aries and S2). The source code is available, suggestions are more than welcome.

[4] Power HAL will make the CPU jump to a certain frequency (I set 800MHz) whenever Android requires it (when the screen is touched for example). Power HAL will also limit the max freq to 800MHz (my choice, not too fast, not too slow) when the screen is off. You can change the boosting freq from my custom DeviceParts. CPU frequencies changes (See XDA_Bam's thread for more info about variable overclocking) are not expected. If you don't like it, simply remove /system/lib/hw/power.latona.so. Few more lines about power HAL here.

[5] hostap and tiap_drv.ko make WiFi tethering possible using this modified version of android-wifi-tether.

Special thanks to dhiru1602 and XDA_Bam for their awesome work.