Remove All Ads from XDA

[ROM] [GSM] CM7 Gingerbread Beta 2012-02-19

561 posts
Thanks Meter: 425
By Technomancer, Retired Recognized Developer on 28th January 2011, 12:00 AM
Post Reply Email Thread
Hi everyone,

First, read the readme.txt in the zip file.

You flash it at your own risk. Backup everything. Learn how to use Heimdall. If it eats your dog it's not my problem . Many things are broken - post about it in the thread if nobody posted before. If you have any idea how to fix things, post too or PM me.

Requirements: GSM (Euro, US ATT/TMO tabs), with JQ1 (Gingerbread) unprotected bootloaders that can run Euro JQ1 ROM and gt-p1000_mr.pit partitioning.
Modem versions:
ATT: use I9000UGJK3 modem (this is what I am using)
TMO: try JK5
Euro: reports say that JK5, JPZ modems work
HK: user reports JK5 modem works.
CDMA: This ROM does not support CDMA Tabs.
LTN: experimental kernel included.

The archive with the build with Heimdall is here
Please use heimdall to install. This zip file is not for flashing with CWM. Unzip and read the readme.txt in the zip file. Flash using the Heimdall command line (below).

The update zip for CWM is here, (GSM only, no LTN), please be sure to flash it from recovery that supports EXT4 or flash it once so it updates kernel/recovery, reboot to new recovery and flash it again. If you encounter any problems, use the Heimdall version.

There is experimental P1000L kernel and bootloaders included in LTN directory in Heimdall package. It should work on P1000L and maybe P1000N.
Big thanks to Humberos for patches and testing. Adventureous souls with Latin Tabs please try it and report how it worked for you. You should have Gingerbread bootloaders and partitioning done first, so it should be easy if you are already running Gingerbread on your P1000L/N.

Installation using Heimdall

normal update from previous CM7 version, or a flash from another Gingerbread ROM:
 heimdall flash --kernel zImage --factoryfs factoryfs.ext4
full flash and repartition:
 heimdall flash --repartition --pit gt-p1000_mr.pit --primary-boot boot.bin --secondary-boot sbl.bin --kernel zImage --factoryfs factoryfs.ext4 --cache cache.ext4 --dbdata dbdata.ext4
Please be careful and double check your Heimdall command line when you flash bootladers, you may brick your Tab pretty bad.

If you get stuck on first reboot after install, or your settings aren't saved it means your data partitions need to be reformatted to ext4. This should be handled by setup_fs in init.rc.
If it didn't happen, start adb and run
make_ext4fs /dev/block/mmcblk0p2
make_ext4fs /dev/block/stl10
make_ext4fs /dev/block/stl11
Or try full wipe in recovery.

make_ext4fs is slightly wonky so you could use "/system/bin/mke2fs -t ext4 -m 0" instead (recovery is also using make_ext4fs internally to wipe partitions)

Samsung apps, Swype, Gapps etc
This is an unofficial port of CyanogenMod. I am striving to give us the pure CyanogenMod experience on Galaxy Tab.
So, there are no Samsung apps and don't ask for them.
There is no TouchWiz and don't ask for it.
It comes with ADW Launcher and if you want anything else, there is plenty of launchers in the Market.
If you want Google Apps, get it from the usual place and install from recvery after flashing The Heimdall version has Gapps integrated right now.
There is one stupid annoyance on Google sign-in welcome screen. It asks to slide open the keyboard (which we don't have and for now I can't find this setting). So skip the whole set up and sign in to Google account from Settings->Accounts&Sync.
Swype: there is no Swype. Since Swype has a policy of allowing Swype on modded ROMs as long as the original ROM had Swype integrated, if somebody cares to make flashable zip with Swype I can link it from OP.

Market issues.
Market 3.x has much stricter rules about DPI and device checks. So very often it shows apps as not compatible with CM7 on GalaxyTab.
Just go to Settings->Applications and uninstall updated Market it will go back to 2.x for a while.
Or try tool like OldMarket
You can also change build.prop yourself, you will need to change two lines: to
ro.sf.lcd_density=200 ro.sf.lcd_density=240
reboot, delete Market data from Settings->Applications

Big thanks to junkshow for investigating it.

sources at

How to report bugs
If you think you have found a bug.
- verify you can repeat it, make sure it is not caused by the fact you did not wipe the device by rebooting to recovery and using wipe when you first installed CM7. Particularly when coming from other ROMs that use ext4. When coming from RFS your partitions should have been reformatted on first boot but wiping after install will not hurt.

Please read existing open and already closed issues at
If your bug is new.
Please see if it is upstream (general CM7 not related to Tab) bug, see in CM7 issues tracker
If it is already there, please stop or add a comment there.
If the bug is about generic issue, please try to verify it it also happens on other CM7 devices. If so, you should post it in CyanogenMod issues.
If the bug is Galaxy Tab specific, like, some hardware functionality is missing, some driver not working. Dialogs messed up because of resolution etc, this means it belongs to Galaxy Tab device issue tracer and I can fix it.
In this case please open new issue here
Please use or something like that for posting logs.

SDCARD controversy
By default, the real micro SD is /mnt/sdcard, the internal mmc is /mnt/sdcard/external_sd, like in Galaxy S CyanogenMod builds.
If you don't like it, you can swap the devices, go to Settings -> CyanogenMod settings -> Application and check Use internal storage [ ] checkbox.
Reboot, now internal will be /mnt/sdcard, external will be /mnt/sdcard/external_sd like in Samsung's Android.

In recovery, real sdcard in /sdcard, internal sdcard (embedded MMC) is /emmc.
If you want to flash zip from /emmc just go in recovery "install zip from sdcard" -> "choose zip from internal sdcard" -> choose whatever you want to flash.

Current status:
Voice calls: OK (make sure to use modem.bin compatible with JQ1 RIL)
3G data: OK
Wifi: OK
Bluetooth: OK
Camera: Photos OK, video encoding (movie capture) back OK, front corrupted
Sensors: seem OK
Recovery and initramfs: CWM, partitions get mounted, wipe works, havent tried backup/restore
Video playback: overlay and copybit work, OMX libraries are in and decoding works.

Fixed Bluetooth MAC address issue. Now it is read correctly from EFS. Thanks to ableeker.

Update to latest from CM7 git.

Update to latest from CM7 git. set default DPI to 240 to fix market issues, advanced users can set any DPI they want anyway.
Go back to stock dialer layout because it has changed a lot.

use android socket for wpa_supplicant control interface. anyone upgrading to this version please delete their /data/misc/wifi/wpa_supplicant.conf
thanks to jt1134, removed extra field in mfc interface in kernel which prevented it from working with aries OMX libraries
updated media_profiles.xml to expose 1024x600 and 800x600 resolutions for camcorder. its not perfect but at least video recording works now. front cam produces broken video.

update to latest from git. we are little past 7.1.0.
fix key setting for AP mode
new init.rc/ unified with CDMA device

move download cache to /data/cache_download and system dalvik cache to data, it should fix download issues with large APKs
fix bluetooth keyboard keypad rotation issue
move touchscreen event rotation to kernel to to clean up frameworks/base
use switchable pair and new stacked mounts in vold for /mnt/sdcard and and /mnt/sdcard/external_sd

Update to latest from git.
Merged P1000L/N kernel. P1000L kernel included in build.
Voodoo Sound update to V10. Switch to JHASH3 hash function in kernel.
Disabled NEW_AP in Wifi driver, fixed hotspot mode.

Update to latest from git. Android 2.3.5.
Added BLN kernel driver and LIGHT_ID_NOTIFICATIONS -> /sys/class/misc/backlightnotification/notification_led device to liblights. Big thanks to Neldar.
Fix geolocation/networklocation settings in props and frameworks' config.xml
Update EGL driver and pvrsvrkm kernel driver to latest from EF17 Sprint GB release.

Update to latest from git.
Merge changes from Sprint GB kernel source release. Merge relevant kernel changes to up to

Enable CRT screen off/on animation.
Add virtual flag to capacitive buttons to enable vibration when they are pressed.
Increase HCI baud rate to 3M, hopefully this will help A2DP issues with BT keyboards.

Rotary Lockscreen bitmaps and Twelve Key Dialer portrait and landscape layouts have been fixed by Fabrizio. Big thanks!
Fixed wrong parameter to ril->setCallVolume, hopefully will make call audio better.
Switched to use Samsung's binary brcm_patchram_plus with the same parameters in init.rc. Bluetooth SCO works now. Magic?

Add attribute for available frequencies, fix cpufreq sysfs permissions so CMParts can access it.
Change compile options for kernel to cortex-a8. Enable Tiny RCU.
Fixed calls from other places in the kernel that used olde speed levels and caused frequency spikes to 1.2GHz.
Fixed Low Power Mode (it properly starts /lpm.rc and displays charging animation).

Added 10-point Multitouch to kernel (thanks to The_Double and hoss_n2)
Added overclock (1.4GHz) and undevolt (thanks to Richard Trip and Koxudaxi)
Added Voodoo Sound V9 (thanks to Supercurio and Richard Trip)
Switched to (some) Crespo EGL SOs, hopefully will fix some OpenGL issues.

Add usb_connected switch to kernel, fixes usb mounting and usb connection detection.
Use mke2fs instead of make_ext4 for formatting in OTA and setup_fs. Should be more reliable.
Added download mode to reboot menu.

Fix problems with headphones/headsets and libaudio, kanged common-aries libaudio.
Added OMX libraries and overlay from common-aries.

Fixed setup_fs so it properly formats partitions.
Enabled more tablet tweaks (soft buttons).
Removed format for .android_secure in recovery, should fix wipe.

Switched to Gingerbread kernel recently released by Samsung.
Use JQ1 binary drivers for OpenGL, sensors, lights, copybit, overylay, camera etc, so they all work!
Portrait is default orientation now, ro.sf.hwrotation=90 is set and touchscreen events are rotated in input layer so they match.

<cut short, more in readme.txt>

Big thanks to noobnl, coolya, codeworkx, rotohammer, KhasMek, deodexed, captainkrtek, lilstevie, a_snowman, frusso, humberos, koxudaxi, spacemoose, oldmacnut and others for help, advice, testing etc etc.

DEVS ONLY HERE ---------------------------------------

How to build CYanogenMod 7 for Galaxy Tab GT-P1000
First, please read this article

You will need the same prerequisites.


Get repo as described there. I put mine in /usr/local/bin

Sync Android tree. You need to use manifest from cm7sgt github.
(If you have more/less than 4 cores modify your -j4 accordingly)

Create a directory for your Android, you will need oer 10GB of free space. It helps a lot to put it on SSD.

repo init -u git:// -b gingerbread

since gits are still down, until they are back up you need to sync repo tool from github, so use this command line, thanks to Disgustipated for pointing it out.
curl > ~/bin/repo
chmod a+x ~/bin/repo
repo init -u git:// -b gingerbread --repo-url=git://

repo sync -j4

Grab Rom Manager as described.

You can't (no script) and don't need to copy proprietary files, everything is already included in vendor git.

Setup your android build environment and choose device to build:
. build/
lunch cyanogen_galaxytab-eng
make -j4

There, it should build with no issues. Sometimes it will complain about API changes, run make update-api then.

From here you have two options.

1. Build Heimdall images. You will need kernel with loop support, losetup, ext4 tools (mkfs.ext4).
cd device/samsung/galaxytab/tools
it will grab stuff from out and create ext4 images. Flash with Heimdall.

2. Build
make -j4 bacon

How to build kernel
First, you will need the arm toolchain from CodeSourcery. You need arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2


Unpack it in /opt/toolchains. as root
mkdir -p /opt/toolchains
cd /opt/toolchains
tar -xjvf arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

Then in your CM7 tree
cd device/samsung/galaxytab
./ defconfig
./ modules

This will configure the kernel and build and copy modules to prebuilt directories. The kernel build directory is out/target/product/galaxytab/kernel_build

Build your android tree normally so initramfs is created.

Then again
cd device/samsung/galaxytab
./ kernel
This will build the kernel using the initramfs in recovery/root and update prebuilt kernel image.

(for Latin kernel use script and use kernel_ltn file it produces)
Now you need to run make on your android tree again so boot.img is updated.

And proceed to buildimage or make bacon as usual.
Attached Thumbnails
Click image for larger version

Name:	screenshot-1318228875621.jpg
Views:	97813
Size:	54.3 KB
ID:	745255  
The Following 90 Users Say Thank You to Technomancer For This Useful Post: [ View ] Gift Technomancer Ad-Free
28th January 2011, 12:07 AM |#3  
Flag Belo Horizonte
Thanks Meter: 6
P1000L tabs too?

I can test for you.
28th January 2011, 12:14 AM |#4  
Technomancer's Avatar
OP Retired Recognized Developer
Flag SF Bay Area
Thanks Meter: 425
Originally Posted by ivannw

P1000L tabs too?

I can test for you.

AFAIK P1000L hardware is different so it will need different kernel
28th January 2011, 12:15 AM |#5  
TheGrammarFreak's Avatar
Senior Member
Thanks Meter: 689
How do we check which bootloader we have?
28th January 2011, 12:19 AM |#6  
Technomancer's Avatar
OP Retired Recognized Developer
Flag SF Bay Area
Thanks Meter: 425
Originally Posted by TheGrammarFreak

How do we check which bootloader we have?

If you installed Euro JJ4 ROM you probably have JJ4 bootloader.
It will probably also work with stock ATT and TMO bootloader but I cannot guarantee that. I have JJ4. People have reported issues using Euro ROMs on ATT bootloaders, I believe the same issues will show up in my CM7.
The Following User Says Thank You to Technomancer For This Useful Post: [ View ] Gift Technomancer Ad-Free
28th January 2011, 12:22 AM |#7  
sebol723's Avatar
Thanks Meter: 3
Great news. I have polish rom maybe i help. galaxy tab jm6
28th January 2011, 12:23 AM |#8  
Senior Member
Flag GTA
Thanks Meter: 9
That is amazing work!

Well done.
28th January 2011, 12:34 AM |#9  
Senior Member
Thanks Meter: 14
Which issue r u tlaking abt? I have recent att tab went straight to jme no issue. Lemme know if i could hrlp testing. Ubuntu & heimdall ready. I actually pulled your old cm6 and cp kernel-tab and what not to cm7 but failed at lunch cyanogen...

Sent from my GT-P1000 using XDA App
28th January 2011, 12:36 AM |#10  
Technomancer's Avatar
OP Retired Recognized Developer
Flag SF Bay Area
Thanks Meter: 425
Originally Posted by quattr0

Which issue r u tlaking abt? I have recent att tab went straight to jme no issue.

some white lines while booting etc. if JME works for you my stuff should work too.
The Following 2 Users Say Thank You to Technomancer For This Useful Post: [ View ] Gift Technomancer Ad-Free
28th January 2011, 01:49 AM |#11  
Senior Member
Thanks Meter: 14
Originally Posted by TheGrammarFreak

How do we check which bootloader we have?

I'm no expert but this seems obvious (for me). If you have a linux box, do a "strings boot.bin" on a protected bl (extract from JMF downloaded from samfirmware for instance), you will see these lines

PBL: Error.. sbl verification failed..
PBL: booting stop!

My at&t backup boot.bin does not have the above 2 lines.

Just my guess.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes