[CM] Port of CM7 with kernel 2.6.35.14 & EXT4, without RFS [Alpha 3][19-04-2013]

Big UpdateFirst alpha release for CM7.2 Samsung Galaxy Y (GT-S5360) Alpha 3
Screenshots:
  
 


Installation instructions are simple:

If you are not working with my kernel:
- Flash my provided boot1.tar file to you're phone using odin (You can download the boot1.tar from here)

If already on my kernel:
- Download the cyanogenmod3.zip file from my dev-host: here (Older releases can be found later in the post!)
- Download the Google Apps from here
- Copy the cyanogenmod.zip and the downloaded gapps file to somewhere on your SD-Card
- Boot in CMW by holding (Volume UP + Select) button while powering up.
- In CWM go to Mounts and Storage first and format /system, /data and /cache.
- Go back to main menu in CWM and choose install zip from sdcard and choose zip from sdcard.
- Apply cyanogenmod.zip
- After installation also apply the gapps-... from here
- Do a wipe data/factory reset from the CWM main menu and reboot the phone
- Be patient while the phone boots for the first time, the phone needs to build up the dalvik cache.
- When fully booted happy testing , and don't forget to report you're findings and bugs.

What works:
- Audio
- Bluetooth (Partially: Not usable yet, but the device is able to scan for other devices and is also found by other bluetooth devices)
- Camera (Partially: Can take pictures but unable to record film material For more info look at: "known bugs")
- Display "Hardware Accelerated" (Also with some small bugs and glitches, look at "Known bugs")
- GPS
- Input
- Lights
- Network interfaces (Mobile internet)
- Power management
- Radio (Phone "Incoming and Outgoing calls")
- Sensors
- Storage
- Vibrator
- Wifi

What doesn't work:
- Media (media_profiles.xml is still missing but need some modifications first before I will include this, because camera is not yet implemented so a MediaServer crash will occur when this is included).

Known bugs: 
- Display: Sometimes there appear to be some glitches. This is known, and due to the usage of a released test binary. I'm currently working myself to reverse engineer the test binary released by BroadCom and the proprietary binary included in the GT-S5360 to come up with a hopefully fixed driver.
- Camera: Still has the white screen bug in the preview of what you're taking a picture of. This is not easily fixable, but will do my best. Movie recording is not yet possible as codecs still need to be included in my build.

Troubleshooting:
Sometimes the Google Apps are giving some troubles with Force Quitting etc., a solution for this is to boot to recovery, clear the cache and dalvik cache and after this do a Fix permissions from the Advanced menu. When rebooting the boot process will take a little longer because the dalvik cache needs to be rebuild.

When anybody has some problems getting it to install through my instructions feel free to ask help in this topic.

Downloads:
- CyanogenMod 7 Alpha 1 Release: http://tinyw.in/VJll
- CyanogenMod 7 Alpha 2 Release: Build Removed (No incoming calls)
- CyanogenMod 7 Alpha 2.1 Release: http://tinyw.in/r4Xs
- CyanogenMod 7 Alpha 2.2 Release: http://tinyw.in/AB92
- CyanogenMod 7 Alpha 3 Release: http://tinyw.in/1G7T

Changelog for Alpha 2:
Bugs Fixed:
- Not all apps had a ldpi overlay. This has been fixed in the last build I forgot to set the overlay in my full_totoro.mk
- USB Mount didn't work in android. This has also been fixed, I forgot to add the string "file" in the path to the lun file. USB mounting now works as it should work.
- Somebody pointed out that MAC address in the settings wasn't set correct. I researched this problem and it was indeed a bug in my build. This has been fixed now by including the get_macaddrs script in /system/bin. The MAC address wasn't correct because the RIL didn't pass through the MAC address.

Added functionality:
- Compcache has been added to this build. Standard it isn't enabled. To enable this you have to go to: Settings -> CyanogenMod -> Performance -> Compcache. You can choose to allocate 10, 18 or 26 percent. The most recommended value I believe is 18%, but using compcache also has some downfalls. See here for more information: http://en.wikipedia.org/wiki/ZRam
- Wireless Hotspot. This has been tested by me, and I can confirm this function is working perfectly. USB Tethering will be supported hopefully next week.

Changelog for Alpha 2.1:
Bugs Fixed:
- Small fix, I changed the system.prop this week, and in the process forgot to put the ro.telephony.ril_class=samsung option back in the system.prop which results in no incoming calls.

Changelog for Alpha 2.2:
Bugs Fixed:
- Big breakthrough, Headset Support Working. A name in the /system/lib/modules folder of the file brcm_headsetsw.ko had to be bcm_headsetsw.ko. This was why the kernel didn't swich to headset. This was a bug which had slipped my eye as the module name is wrong when compiled from kernel source. This is now completely fixed. And as far as I know this phone doesn't have the Headset Volume Bug. At least not on my phone. Credits go to bluestarfish who pointed this out.

Changelog for Alpha 3:
Bugs Fixed:
- Reverted my system.prop so the tweaks from my first build are included again. Also added some extra tweaks which should reduce the graphics glitches.
- Unsure if GT-S5360L is now able to boot. I haven't got this phone myself, so I can't test it. If it's not working sent me a PM I'll add you on GTalk so we can communicate more easy and fix.

Added functionality:
- Camera: You are able to take pictures, only movie recording is still not possible. This will be a project for later as I'm very busy with bluetooth at the moment.
- Bluetooth: Bluetooth is able to scan for devices and is able to be located by other devices. Pairing or sending from/ to the device is still not possible. Hopefully this will get fixed next week.

Credits:
- Myself :P
- Bluestarfish
- WhiteXP
- Squadzone
- Cyanogen

If you appreciate my work please hit thanks or donate me one beer:P by clicking the "donate to me" button. I'm investing a great deal of time in this project to make this a very stable product.

Greetings Psycho Game, and have a nice weekend everybody. My sources will be released to my Github next week, so I ask everybody to be patient for that .


Everything below here is old information, you can still read it though to get an idea of the project:
As I already said in another thread about a CWM included kernel I'm also working on a version of CyanogenMod myself with another approach than WhiteXP's build.
The problem is not anymore the availability of the drivers, because BroadCom released their drivers to the public.
In my opinion the next bottleneck is the Kernel. I didn't own a Galaxy Y myself at first (until 2 day's ago), but I recently bought one to make it easier to test different configurations.
My main phone is a Samsung Galaxy S Plus which already has a realy stable CM9 version, but also the kernel is already updated to version 3 from 2.6.35.14.
This is also my goal ultimatly, but the Galaxy Y uses RFS filesystem in combination with FSR. These are closed source modules from Samsung, which make it difficult to update kernels.
There is a known hack that you can alter the version in the makefile of the kernel to 2.6.35.7 while it realy is patched up to 2.6.35.14, but i'm not very fond of such hacks.
I'm a daily linux user already since the year 2000 or so, and build many kernels for Linux computers from source. I can say I have good knowledge of the compilation proces and what's going on in the kernel.
Now back to what i'm doing at the moment:
I already converted the complete galaxy y to EXT4 file system, incl. the EFS partition, and yes I still have my IMEI data etc. so this is considered done [status: Complete]
Next step is getting rid of the RFS & FSR kernel modules, which are proprietary (RFS has been removed, only FSR remains for later. [status: WIP -> stalled]
At the moment I'm busy updating the kernel to version 2.6.35.14 the proper way, so I have a stable base kernel to build CM on [status: Complete]
After this I will add CWM recovery to the updated kernel, and make sure everything works as it should, like ADB in recovery mode, formatting, and all these things. (Only ADBD has to be fixed) [Status: 99% Complete]
When CWM recovery functions as it should work, the proces of building CWM into the Galaxy Y can begin [Status: WIP -> Stalled until kernel stable].
CM already compiles fully without much warnings, but still isn't ready to be released until all predecended steps have been completet.
At the moment I'm also uploading all sources of the kernel into github, so everybody can revieuw the proces i'm doing, and also point out mistakes maybe and give suggestions.

Update 1: Yes already an update. It's more difficult to work you're way around the FSR kernel modules. What I now want to do is convert the BML block layer (which uses the FSR modules) to MTD which is an opensource version of a Flash Transition Layer. I know this is possible, because it's also done on the Samsung Epic 4G. The only downside of this is that I cannot use the promised ext4 anymore on the final product, but I'm forced to use YAFFS2 filesystem (which is luckily also opensource).

Update 2 (1 Feb. 2013): Hello everybody. After almost a week I have another update on the Kernel modifications. I stalled the removal of the fsr module parts for now and started with the inclusion of the ClockWorkMod recovery in the kernel. The way I included the CWM recovery is other than Merruk and WhiteXP did. I left the stock recovery in place, and added the CWM on top of it. Standard it boots in the CWM recovery, but if for some reason you would need the stock recovery you can also call it. Just by leaving a file called .stock_recovery in the root of the /cache partition. So in short it contains 2 recovery's in one image. To make it all fit the InitramFS and kernel have been compressed using the lmza method. This allows for a smaller resulting boot.img file, but comes with a little extra boot time. When android has booted you don't notice any difference. Appart from this it's a stock kernel with ext4 included, and the rfs filesystem modules removed, so it's a ext4 kernel only! The completely changed initramfs can be found on my github over here: https://github.com/PsychoGame/totoro...amfs_files.git so everybody can study what I've done.

Update 3 (8 Feb. 2013): Hello everybody. Again an update of my kernel, and a weekly build to test in the weekend . There have been some changes in this release, the most major change has been that the kernel has been patched from 2.6.35.7 to 2.6.35.14. Also a little change in the recovery.fstab stopped the nandroid backup from making a useless recovery.img. Also I now know for sure that it's possible to do a full nandroid restore. As long as the FSR modules still function also the boot.img backup will be restored. The only thing still not working is the Android Debugging Bridge in the recovery self. This seems to be a harder to tackle problem then I thought before. It seems that adbd is not working properly so it doesn't see the device. The new kernel can be obtained from here:
boot.tar (08/02/2013)
With this new 2.6.35.14 kernel you also need to have all other updated compiled modules which are available here:
Version14Modules.zip
These files should be placed in /system/lib/modules
This is not a CWM installable package at the moment because I'm a little bit busy at the moment, so this means you have to copy the files manually to the directory.
I recommend using ES File Explorer in which you need to have full read/write acces to the disk.
When anybody needs some extra help please let me know.
There are two small bugs at the moment:
- ADB still not working inside recovery
- Sometimes the touchscreen has a little problem getting out of it's sleep state. I don't know how to describe it, but will look into this problem very soon. It's not a harmfull bug.

Question to other developers: Hopefully there are other kernel developers among us as well. If you think you can contribute to this as well, then please PM me. At the moment I hope everyone together including myself will look into implementing MTD into out device.

The kernel source is uploaded to https://github.com/PsychoGame/androi...ung_totoro.git Updated

This is a little update on the things I have in mind.
If you like it, please post a comment, that also lifts my spirit in the lots of things that have to be done.

Installation Instructions

It's wise to make a EFS backup first to be sure you're IMEI data etc. is safe at all times. It's not only wise for this project but other projects as well. A good tool for this is Galaxy ToolBox. This tool saves the backup on you're SD card which you should keep safe on you're computer

Here are the installation instructions of the first kernel release:

Known bugs:
- Adb is not working in the CWM at this moment. I'm pretty sure it's a simple problem, but will solve that later on. It's not very annoying as anyting else is in my opinion functioning.

In my walktrough I will cover the steps for installing my kernel on a fresh install of Android.
There are a ton of walkthroughs already on the subject of flashing android to the Galaxy Y (GT-5360) through odin.
I didn't test it yet on a working installation, but I'm pretty sure this should work in there also.

Step 1: First of all, download the needed files
cwm-madteam-galaxY.zip
boot.tar (01/02/2013)
boot.tar (08/02/2013)
Version14Modules.zip
Odin 1.85 Used
update-signed.zip (Su Binary)

Step 2: Make a nandroid backup of you're device using Madteam's ClockWorkMod.

Step 3: Enter download mode (Holding down button + Select) + Power button until the phone seems to boot. In download mode flash my supplied boot.tar by putting it in the PDA field in Odin. No .pit file is required, and just leave anything default and click the (flash button).

Step 4: Enter CWM recovery (holding up + select) + Power button until the phone boots, and go to mounts and storage and one by one do (format /data, format /system and format /cache).

Step 5: Also in the menu Mounts and storage click on mount USB storage while the mobile is connected to the computer with the USB cable, or use a cardreader to open you're miniSD card. On the miniSD card there is a folder which is called clockworkmod which contains the backup you just made in the folder backup. Here you should change as an example (system.rfs.tar to system.ext4.tar), and also do this for the data.rfs.tar. Also inside nandroid.md5 these filenames have to be changed accordingly to resp. system.ext4.tar and data.ext4.tar.

Step 6: Reboot the ClockWorkMod Recovery and in the backup and restore menu click on "advanced restore" and choose you're nandroid backup. Choose only to restore (System and Data.)

Step 7: Just reboot and enjoy you're Galaxy Y with CWM included in kernel. As far as I tested everything is working as it should be, if you come across something that doesn't work please report this.

Step 8: Copy the modules supplied in Version14Modules.zip to /system/lib/modules/

If you flashed a fresh android rom you should Root it again using the update-signed.zip I supplied above this article (Before you install the update-signed.zip you have to mount the /system partition in the "Mounts and storage menu" first the mount is forgotten in the installer script.)

I hope you'll enjoy this little beginning, there's a lot more to come. I'll be gone for the weekend, so after the weekend I will be able to respond to any bugs and problems everyone came across.

Greetings

Psycho Game