[Galaxy Tab  Android Development] spacemoose1:
Android 3.x Honeycomb for the Samsung Galaxy Tab

Download Rom: CDMA - GSM | Source Repository | Development Log | Donate

​

(6/19/11) : Special Request: I was waiting to be certain, and now I am: There will be no more development on the Alpha 2 series, it is complete, (as complete as a second alpha release can be anyhow.) All efforts from now on will be geared towards preparing the next release which has already been in the works for nearly a week now.

In the meantime, I'm going to collect links and prepare a big post for the Alpha 2 series over the next day or so. My request is this:

If you have written or read a post in this or another thread that you feel added functionality or style to the 2.5 release, please PM me a link to the post(s) so that I may include it/them in the list. Anything from wallpapers to hacks, it's all relevant. I want to collect this information in one post so that anyone wishing to to use this software may benefit from the work that we

ALL

have done to make this project worthwhile.

In other news: There are quite a few things going on with development for both devices, but I'm not ready to tell you about them just yet (too many changes to list until I'm positive about their status.) Let's just say that everything is going quite well. There is no ETA or planned release date, rest assured though, it won't be an extraordinarily long wait.

(6/17/11) : Work is proceeding slowly but it is proceeding. 3G is theoretically functional now on the GSM (my CDMA tab is out of commission for a couple of days, long story,) but those changes should transfer to the CDMA without issue. It still has to be integrated and tested, but it looks like it's going to work. Also making progress on audio issues, the headphone jack now works. Still have a lot of things slated for Alpha 3: more audio fixes, hd video, gps, sensors etc etc. Expect it to take some time. It will be worth the wait.

On a related note, I've started pulling in parts of 3.1 to a test build. It won't make it to Alpha 3 due to serious gfx issues, but it's looking better than it did a month ago.

(6/15/11) : The new kernel for Alpha 3 is up on github, feel free to test it if you wish. It should be backwards compatible with 2.5. I'll begin testing with various oc/uv apps and report back on what works. Feel free to do the same if you wish.

Starting on 3G fix for CDMA now. 3G for GSM should come shortly after.

(6/13/11) #3: Right now I'm working on a new kernel for Alpha 3. It will be a Voodoo Lagfix CwM kernel OC'd up to 1400mhz and should be compatible with various over-clocking apps. I hate to force over-clocking on you, so this will give you some choices. I'll test it with some OC apps and let you know which ones work.

(6/13/11) #2: jjhiza has compiled a very nice list of known working apps (with pics) for the 2.5 release here. Drop by and spam his thanks button!

(6/13/11): I had to take a couple of days off of this project to recharge and reorganize. Starting today, I'm back and ready to get Alpha 3 going. But there are a couple of changes I need to tell you about.

First, the thread is splitting. There is far too much going on for one thread to contain it. This thread will stay a CDMA only thread, while a new GSM thread will open.

Second, that thread will be managed by ssserpentine. He will also be handling the distribution, packaging and eventually the kernel development for the GSM as well. This way I'm freer to focus on the development of the base rom for both devices. So expect a new thread with a new GSM release to pop up any minute now. ssserpentine will do a good job of getting things out to you, he's super resourceful and dedicated to making HC a more awesome experience.

So, CDMA people... We got our thread back!

(6/11/11) : Many thanks to chriskader who has posted another great video review. This is A2.5 in action:

(6/11/11) : GSM owners, I'm sorry to say that I have to put you off once again. The new kernel works and the crash issues have been resolved but I can't get vold to behave and the sd card simply refuses to mount at boot. The files in the repository are current though, so feel free to download and install them that way if you would like to test. You can mount the SD from a command line (adb shell) and activate UMS after boot using the following commands:

mount -t vfat /dev/block/mmcblk1p1 /mnt/sdcard/

echo /dev/block/mmcblk1p1 > /sys/devices/platform/s3c-usbgadget/gadget/lun1/file

Hopefully this issue will be resolved soon.

Edit: Also had a tester report the return of the screen sleep-state crash (power button), but the issue was resolved by flashing froyo, and then installing HC. He used the overcome 1.6 instructions. It ended his crash issues and returned his lock-screen. Just FYI.

(6/10/11) #2 : The CDMA release for Alpha 2.5 is now available at the CDMA link above. It's 2.5 because I don't have all of the things I have planned for Alpha 3 in it, but it was worthy of its own release. Here are some of the changes you'll find within:

A fully working tablet marketplace.

Maps, places and streetview.

Gmail.

Working audio (it needs work, but it's there.)

The latest version of voodoo sound integrated into the kernel.

The voodoo sound control app.

A couple of widgets from the Asus Transformer.

A setup wizard that allows you to select your language at startup.

A tablet keyboard apk that makes text entry easier.

UMS access, just plug it in to any PC and your SD should auto-mount.

Multitouch.

And a handful of stability and speed fixes.

Enjoy! The release for GSM devices should be up a bit later, I'll post here when it is available.

(6/10/11) : Just a heads up: If everything goes well in testing, the new release for BOTH devices should be out tonight.

(6/9/11) #2 : Audio works!

(6/9/11) : The next release is ready to go... except for sound. This release is much faster, less buggy and includes a full set of working apps along with full market access, working sd mounts with UMS and a few other goodies. The only thing I'm waiting on is audio, and it's proving to be a tough one. I'll let you you as soon as it works.

(6/7/11) #2 : GSM owners: Ok... I think I've got it. No crashes now for about 20 minutes. But I can't release yet for two reasons... number one, I had to revert to an SDK image with only my hacks to enable a simple boot, so it may take me a day or two to re-patch to current and get it out (I have to patch everything in small bits until I find the culprit--and that's about 99999999999 patches.). So, if you're running the repo build, kiss it goodbye for a couple of days--or less.

The second reason is... my next release is only a day or two away. Lots of fixes and fun stuff in it. But there isn't much point in uploading Alpha 2 for GSM when the next day I'll be putting out the next one. I hope that I can push it to both devices, but you CDMA folks will at least get it on day one.

More tomorrow.

(6/7/11) : Bad news. Just spent another twenty something hours on the GSM crash... and got nowhere. I know the problem isn't in the kernel. I pulled kernel source from Samsung, from all over github and from here on XDA, but each compile gave the same result. Since the crash occurs when the power button is pressed to either put the display to sleep or to wake it up, but not when the device puts itself out... Well I don't know yet. Symlinked driver folders in every possible way, dug through libs, rewrote init.rc a billion times... Meh. Haven't slept in ages, going to do that now. I think coming at it with a fresh and rested mind will help. it's just this one silly issue holding us up now. I'll bet it's a typo. Maybe I'll get it after some sleep.... Sorry folks.

(6/6/11) : Twenty-two hours later and we have a working GSM kernel and the system just booted in for the first time. I'm having some issues with the cache mount that causes a crash about thirty seconds in, but that shouldn't be a big deal to correct. I will probably release sometime in the late afternoon or early evening (after I get some sleep... finally...) Thanks for being patient.

(6/5/11) : It's 4am, I have an entire pot of coffee brewed and about ten hours of Motown queued up in grooveshark. I'm starting on the GSM build now. See you on the other side.

Until then, some folks have made videos of Alpha 2 in action, check it out:

From chriskader, a pretty thorough review:

From neo4uo, a video review of Aplha 2 in a pre-release state as pulled from github:

(6/4/11) #2 : And the download link is active, mirrors to follow shortly. Have fun!

(6/4/11) : So back in early March I released my first build, Alpha 1. It was a crash happy lag beast with no internet connection and was a pain in the ass to install. Nothing worked and it served no real purpose, but it was the first HC port on the Tab, and it was undeniable proof that HC would run on our tab despite what we were told.

After taking some time off, I returned to my craptacular HC port and crammed in bits of the new 3.1 release and tried like mad to patch it into a workable state. Only a few days into this process, I realized that any improvements I made would almost be random chance considering how long I had been away from it and how messy it had gotten.

So I deleted it.

Two weeks ago I started with a fresh 3.0 SDK image, determined to do it right and lay the foundation to get it finished. Now I am proud to present to you, Honeycomb SGT Alpha 2.

With this release, I have managed to get wifi working, the SD card is now read by the system, the touch-screen is calibrated and rotates with the aid of an included app, a couple of the sensors are functioning, the new install package and EXT4 conversion script is as smooth as butter, and now I have a repository that will remain continually up to date so you can follow along or dive in.

The system is more stable, much faster and generally more usable.

That's a far cry from what was working in Alpha 1... which was nothing.

But there is still a long way to go, (hopefully we can at least get to "daily driver" over the next couple of weeks).

So enjoy. I know it isn't the most useful thing you can do with your tab right now, but at least you can see where it's going.

My current development road-map is as follows:

I intend to build a working kernel for the GSM tab, and push it out so that both the GSM and CDMA builds will be at the same stage of development from then on.

As soon as that's done, I'm tackling 3G and audio.

After that, the graphics.

And after that, bluetooth, sensors and whatever else I didn't fix along the way already.

I have no date planned for the next release, but I'm working at it hard and it will come as soon as I can make it.

The CDMA link above should be active shortly after this post.

(6/3/11) : Almost there... Just a few more hours while I squeeze in some things...

(6/1/11) #2 : The system build in the repository is now at about 50% of current, meaning that it's close to the state that Alpha 1 was in back in March. This means that it is now bootable... in theory... but it doesn't reflect the current state of Alpha 2. I guess what I'm saying is... if one enjoys living dangerously, one could install the current repo state for kicks. But unless you really know what you're doing, it's probably not a good idea (and therefore I won't be personally providing instructions on how to do so until the repo reflects a stable build.) Just don't say I didn't warn you. In any case, it should only take another day or two to get to 100%.

(6/1/11) : I'm running a little behind for personal reasons, but I do have some testing news. The system runs nicely, but I need to fix a few things. I had some stuff on my /data that enabled a few fixes and those things aren't getting copied over during install to a new device, so I stopped testing for the moment. It should be a quick fix though, just need a script or two. In the meantime, I've been slowly pushing files to the system build repo, but only those that I'm fairly certain won't change shortly. I'm making every effort to get the repo current so anyone can download for testing if they wish. I'll let you know when it is flashable. For the next 24 hours, you can watch the repo change (if you're just bored) as I try to get work done. I'm still planning to release by Friday, as testing thus far has revealed nothing catastrophic or damaging to devices so I can make fixes on the fly and release patches as I go rather than making you wait to play with HC.

(5/30/11) #2 : By the way, I pushed the real kernel source for the CDMA tab to the github repository a bit ago, so it's current if you want to mess around with it. There are some good tutorials out there on how to build and hack kernel code if it sounds like your kind of thing.

(5/30/11) : Nothing earth-shattering to report. Just porting changes over to the GSM build today. I'm hoping to release them both at the same time, but assembling the kernel for the GSM may take longer than you CDMA folks want to wait for a release. We shall see. For the immediate future:

I've had a lot of offers to test... far too many to respond to. I hear you all, and I appreciate the offers, but I can't handle more than a couple of testers at a time. In the future, all testing will be done by anyone that wants to download the current state from the repo (still hoping to make this a community effort as we go forward, even though I've had it on solo lockdown since March.) I'm hoping to push the current build out to testers tomorrow, fix whatever catastrophe crops up during testing, and add a few finishing touches. I'll also be working on the GSM version at the same time. Ideally, I expect to release what I've got either Thurs or Fri. From then on, every change I make will immediately be pushed to the repo where you can work with it as it evolves.

That's all I've got today. I'll report on testing as it goes.

(5/28/11) #2 : Just got wifi working in the gui! It scans and connects to open networks. I couldn't connect to a protected network because I caused a graphics issue that prevents the keyboard from displaying so I can enter a password (next issue to fix). I'm sure it will connect to one though. Now I need a couple of days to run through some other fixes (including the new keyboard prob) and clean up and a couple of days to get testers to give it a go. Then I'll release the CDMA version. The GSM version should come a couple of days after that. So, the release of Honeycomb Alpha 2 featuring WIFI is less than a week away!

(5/28/11) : The last few days of work have paid off. Wifi now works. (It currently has to be invoked from a terminal and its buggy but fixing that is the next step.) The cdma build has a new kernel based on 2.6.32.9 and a ramdisk based on Koush's original ext4 & cwm recovery ramdisk. It works much better now. The next step is to enable toggling wifi in the GUI. Then I'll clean up the build, pass it along to a couple of test volunteers and release it. After that, I'll merge the changes into the GSM build and release it as well. I'll provide a more detailed post soon, but for now I'm still buried in work.

(5/23/11) : Just got a visit from FedEx. Coffee pot is brewing, Pandora is blasting some tunes and the laboratory doors are locked and guarded by chimpanzees with machine guns... I'll be back in a few days.

(5/22/11) : Nothing much to report. New CDMA tab comes in tomorrow, GSM tab on Wednesday. I've got everything in order to get some serious work done this week, so I expect a release sometime next week (29th - 4th). No clear idea on what exactly will be working at that stage, but it will be a major improvement. It's likely that wifi will work... I have six dummy builds devoted solely to wifi testing and I think the data that I collect will give me some definitive answers and I'll be able to fix it (if I haven't already). I also have some potential fixes for graphics issues, 3G, GPS, audio and various assorted technical bits. No promises, but I think this will be a good week for development.

Also, notice that I've placed a link bar at the top of this post. The links will be active soon... but at the moment all of the files at the source link are place-holder files, testing detritus and other people's good work. The actual source will be uploaded on the same day as the next release, (again, expect it between the 29th and the 4th). From that point on, I will upload changes daily in order to keep everything current for those that are following along, contributing or codenapping for other projects.

Don't be surprised if there isn't another update for a few days. I plan to bury myself in this project and will likely shut myself off to the world until I can emerge with some sort of good news to share. So until then, farewell and go play some Portal 2.

(5/20/11) : By day he is a mild mannered news reporter, but by night, snprkllr76 is GSM Tab loaning super hero. This guy just made development smooth as butter for you GSM Tab owners, thank him kindly!

Meanwhile, in a dark and musty laboratory in a shady part of town: I've been throwing together test builds for the arrival of a tab. I feel good about it. This time without a test device has given me a chance to build the most epic testing run evar. I expect that many things won't pan out, but I'll bet a few problems will be solved, (or at least closer to it.) I'm really hoping wifi is done... it has become the bane of my existence. The new tab should be in tomorrow or Monday... more news when I have it.

(5/19/11) : I've been getting a lot of PMed questions on how to start up a project like this. I can't tell you here exactly what to do, (that's a huge question with no short answer,) but I can give you some idea of the kind of things that I do and a few good google searches can fill in the blanks. To some of you this is going to be

intolerably boring

, because you already know it, or you have better things to think about, but for the folks who PM me:

A 4 hour segment of a day in the life of a Spacemoose:

So today I decided to do some light work, just getting some things in order for testing when the new tab arrives. I start out by extracting a copy of the system.img that is packed with the SDK. I want a fresh base to work with on each problem so that I can isolate the issue without interference from other fixes. If the results are good, I can merge them later (and deal with any fallout then). Looking in my freshly extracted /system folder, (ahhh, so fresh, so clean,) the first thing I see is the build.prop. I open it. The first line that I know needs fixing... rild.libpath.

So, the build.prop file in /system contains instructions that tell Android how to behave at boot. The line I'm interested in, rild.libpath, points to a RIL file. RIL stands for Radio Interface Layer... think of it as sort of a middle-man with a rulebook that stands between the system's software and the radio hardware. I suspect that the default ril pointed to by rild.libpath isn't going to work on our device, though, (at least not fully.). That means that I need one specifically written for this radio, and I keep a library of Samsung files from all official releases for our device just for this purpose.

So I copied in libsec-ril.so, the Samsung ril binary, and pointed rild.libpath to it. Now I need to see what other files this one depends on to work. I do that by opening the file in my hex editor and making note of all other file names that appear in the code. In this case, I need liblog.so, libcutils.so, libutils.so, libril.so, libnetutils.so, libsqlite.so, libhardware_legacy.so, libbinder.so, libc.so, libstdc++.so and libm.so. Then I double check to make sure that these files are in my /system/lib directory. Sure enough, they already are. The thing is though, that doesn't mean that they will work with the file I copied in. My ril file comes from an older build of Android, so it may contain outdated code that wont work here. But rather than dig through every one of those files, I'm going to assume that it has its dependencies met for now. I can debug later for more answers if it has issues.

While I'm digging around inside the ril file, I also make note of listed paths, like "/dev/tty_device", so I can make sure that these paths/files are getting created when the corresponding code/module is activated at boot. It's always a good idea to know where everything is located, because you don't always get that info during the debugging process. Now, going back to build.prop, I need to edit the next line, rild.libargs, to tell the ril what arguments to use when it kicks on. By default, it is set to "-d /dev/ttyS0", and build.prop files from the older builds have it the same, so I'll keep that argument until I have a reason to change it.

At this point, I can make sure that I have notes on what I've done, and then package and flash. (Of course, I have no tab for a few days, so that's out).

After reboot, I can run logcat or pull one of several logs. To look specifically at the radio, I can run "logcat -b radio". Then I can determine what other files need to be copied in, what existing files might need editing, what lines in build.prop or init.rc might need to be added and so on. Then I try to fix whatever I find, and reboot+debug again. I continue this process until I hit a wall, then I google what I can, dig through AOSP source, or look into other working systems for comparison. And that's basically the process. It can be a soul-sucking, time eating experience, or it can be an excuse to put on some tunes, crack open a beer and hack away. Just depends on what you decide to get out of it.

Hope that helps.

(5/18/11 #2) : Thanks to fattiemcdoogles, (the new CEO of Awesomesauce Inc.,) a tab is on its way to my doorstep as we speak. If you pass Fattie McD on the street, bow in thanks (or at least spam the thanks button.) Also, thanks to everyone else who made generous offers, it is much appreciated.

So, all is well.

Until said tab arrives, I will be stripping down the 3.1 SDK to its core, and hex-editing like mad. In other news... I spent the afternoon examining the P1000 kernel for comparison, and I've discovered that porting to both the P1000 and the SCH-I800 shouldn't be any problem (the WIFI only tab is still up in the air, I know it has some hardware variance that I can't yet account for). I still wont be able to test on the P1000, but I have a few volunteers willing to brave it for me, so I'm going to attempt both at the same time.

I'll check in as often as possible, but for the next few days, any changes I make will be based purely on speculation, so take it with a grain of salt.

Back to work!

(5/18/11) : Worst day ever. I was reflashing my "roto backup" files so I could test the ext4 conversion process in the new kernel from a stock install--something I've done a billion times before--when it decided to brick the hard way. I'm guessing the bootloader corrupted. Whatever the case, I can't recover it from this state, so until I can get a loaner or get repair from Samsung, I can't really make any more progress (any work that I did would just be guesswork with no way to test it.) So if anyone has a JTAG unit sitting around, or doesn't mind putting their tab in harm's way with no guarantee by loaning it to me (CDMA or GSM, I don't really care, hell, one of each would get two working HC's out), let me know via pm. Otherwise, I'm going to send it off to Samsung and hope they get it back to me someday. Sorry folks, I know you were excited about the progress that I was making, but sometimes these things just happen. I'll let you know if I secure another device, or send mine off for repair as soon as I know more.

(5/17/11) : Quick update... The kernel boots, but needs a few quick fixes, I'll let you know when I push the working code to repo.

(5/16/11) : The ramdisk is up on repo, ready to compile and test.

(5/15/11) : Spent today assembling a code base for the new kernel. You can take a look here. It hasn't been tested yet, but it's based on functional source (more reversion than anything else so far). I am currently building a new ramdisk and module driver set and will upload it as soon as it comes together. Feel free to collaborate/contribute via github.

(5/14/11) : Nothing major to report. Spent all day hacking libhardware_legacy.so until I finally got a clean boot and the wifi drivers began to load... and then they continue loading for ever and ever etc. Wish I could just insmod /etc/wifi/chucknorris.ko and be done with wifi... But at least I know what I'm doing tomorrow.(5/11/11): Project rebooted.

(You can help support this project by donating, so far I've logged eleventy billion hours and I plan on logging eleventy billion more. Ultimately, I'll put in the work either way, but donations help keep the lights on.)