[Galaxy Tab  Android Development] Technomancer:
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 :p . 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 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-08-05.zip

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 http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120805-UNOFFICIAL-galaxytab.zip, (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.

P1000L/N

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 http://goo-inside.me/gapps/ and install from recvery after flashing update.zip. 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 http://xdaforums.com/showthread.php?t=1240344

You can also change build.prop yourself, you will need to change two lines:

ro.build.tags=test-keys to ro.build.tags=release-keys

and

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 http://github.com/cm7sgt

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 http://github.com/cm7sgt/android_device_samsung_galaxytab/issues

If your bug is new.

Please see if it is upstream (general CM7 not related to Tab) bug, see in CM7 issues tracker http://code.google.com/p/cyanogenmod/issues/list

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 http://github.com/cm7sgt/android_device_samsung_galaxytab/issues

Please use pastie.org 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

GPS: 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.

Changelog:

2012-08-05 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-08-05.zip http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120805-UNOFFICIAL-galaxytab.zip

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

2012-07-28 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-07-28.zip http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120728-UNOFFICIAL-galaxytab.zip

Update to latest from CM7 git.

2012-02-19 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-02-19.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2012-02-19-Beta-GalaxyTab-KANG-signed.zip

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.

2011-11-02 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2011-11-02.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2011-11-02-Beta-GalaxyTab-KANG-signed.zip

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.

2011-10-31 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2011-10-31.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2011-10-31-Beta-GalaxyTab-KANG-signed.zip

update to latest from git. we are little past 7.1.0.

fix key setting for AP mode

new init.rc/init.gt-p1000.rc unified with CDMA device

2011-10-09

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

2011-09-20

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.

2011-08-07

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.

2011-07-20

Update to latest from git.

Merge changes from Sprint GB kernel source release. Merge relevant kernel changes to up to 2.6.35.10.

2011-06-21

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.

2011-06-13

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?

2011-06-06

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).

2011-06-05

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.

2011-06-03

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.

2011-05-30

Fix problems with headphones/headsets and libaudio, kanged common-aries libaudio.

Added OMX libraries and overlay from common-aries.

2011-05-28r2

Fixed setup_fs so it properly formats partitions.

Enabled more tablet tweaks (soft buttons).

Removed format for .android_secure in recovery, should fix wipe.

2011-05-28

Switched to Gingerbread kernel 2.6.35.7 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 http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_CaptivateMTD

You will need the same prerequisites.

Then

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://github.com/cm7sgt/android.git -b gingerbread

since kernel.org 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 https://raw.github.com/android/tools_repo/master/repo > ~/bin/repo

chmod a+x ~/bin/repo

repo init -u git://github.com/cm7sgt/android.git -b gingerbread --repo-url=git://github.com/android/tools_repo.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/envsetup.sh

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

./buildimage

it will grab stuff from out and create ext4 images. Flash with Heimdall.

2. Build update.zip

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

From http://www.codesourcery.com/sgpp/li...q3-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

BEFORE YOU BUILD CM7 TREE

cd device/samsung/galaxytab

./kernel.sh defconfig

./kernel.sh 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.sh kernel

This will build the kernel using the initramfs in recovery/root and update prebuilt kernel image.

(for Latin kernel use kernel_ltn.sh 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.