[Android Software/Hacking General [Developers Only]] fv+:
How to build CM9/ICS for the griffin/TC970 - WI(Very)P

Update 2/20/2012

I was finally able to compile the full ICS/CM9 for the Matsunichi griffin/LaPan TC970.

I managed to create a 'system' image but I am not sure if it works at all.

I update the github repo with all the files I used under 'device/matsunichi/griffin' to create 'system'.

I am also updating the steps below, so anyone should be able to build it.

Many thanks to cas_xp for sharing his 'device/matsunichi/griffin' files with me, so I could use some of his settings/ideas for CM9.

Franco

===============================================================================

First of all this is just beginning - the last line in this post is 'To be continued...'

The purpose of this post is to allow/encourage everyone here to build CM9/ICS for the griffin/TC970, so that everyone can help and we can make some progress together.

Since the griffin/TC970 has the same TI OMAP3 processor and the same WL1271 Wifi chip as the Nook Color, I thought it would be a good idea to start with fattire's "CM9 for NookColor Build Instructions" (http://kan.gd/1bvw), as pointed out by GnatGoSplat in the post #105 (thanks GnatGoSplat for giving me a good start!)

There are more or less the same items listed by fattire, with some changes/modifications for the griffin/TC970.

This is a very initial list; I'll expand it later, depending onthe questions that come up. Also since I am using Linux here, these instructions might require some changes for Windows/Mac.

1. Install the Android SDK with ADB (http://wiki.cyanogenmod.com/wiki/Howto:_Install_the_Android_SDK)

2. Install 'git', a bunch of other packages and 'repo' (instructions here http://wiki.cyanogenmod.com/wiki/Barnes_&_Noble_Nook_Color:_Compile_CyanogenMod_(Linux)):

For 32-bit & 64-bit systems:

git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool

For 64-bit only systems:

g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

mkdir -p ~/bin ~/android/system

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

chmod a+x ~/bin/repo

(possibly add ~/bin to your PATH)

3. Download CM9

cd ~/android/system/

repo init -u git://github.com/CyanogenMod/android.git -b ics

repo sync -j4 ('repo sync -j16', if you are in a hurry)

... wait ....

4. Add the 'android_device_matsunichi_griffin' github repository to receive automatic updates anytime you do 'repo sync', by adding the following lines to the XML file '~/android/system/.repo/local_manifest.xml':

<?xml version="1.0" encoding="UTF-8"?>

<manifest>

<remote name = "gh"

fetch="git://github.com/" />

<project path="device/matsunichi/griffin"

name="fventuri/android_device_matsunichi_griffin"

remote="gh"

revision="ics"/>

</manifest>

after adding these lines, the command 'repo sync' again should pull the few extra files for the griffin/TC970.

The github repository ( https://github.com/fventuri/android_device_matsunichi_griffin) you just added is where I pushed all the files/scripts specific to the griffin/TC970; anyone should be able to branch out of it, and I'll be more than happy to merge the changes in the 'ics' branch.

5. Extract the proprietary/vendor files from the device or from the 'unpacked' firmware image.

Option 5.a - from the device itself:

- make sure you have 'adb' installed and properly configured and that the device is 'rooted' ('adb shell' should return the '#' prompt)

- cd android/system/device/matsunichi/griffin

- ./extract-files.sh

Option 5.b - from an 'unpacked' firmware image

- 'unpack' the file 'griffin.ifw' using the 'unpacker' code attached to the first post

- extract the files from the 'system' filesystem using 'unyaffs' (you can obtain it from here: http://code.google.com/p/unyaffs/downloads/list)

- cd android/system/device/matsunich/griffin

-./extract-files.sh <directory where you extracted system>

6. Extract the kernel, iload (MLO) and iboot (u-boot.bin). Since I haven't found a good way to extract them from the live tablet, the only option you have is to use the 'unpacker' and then run:

- cd android/system/device/matsunichi/griffin

-./extract-kernel.sh

7. set up the Android environment and run 'lunch':

- cd android/system

- . ./build/envsetup.sh (you should see 'matsunichi/griffin' in the list)

- lunch

- choose the selection 'full_griffin-eng'

8. Finally run 'make':

- make

If all goes well, congratulations! You have managed to compile CM9; all the 'goodies' are in 'android/system/out/target/product/griffin'.

Don't try to run them on the actual tablet unless you know better than me what you are doing!

More on these files in the next episode of this saga....

To be continued....