Cyanogenmod ROM HTC myTouch 4G / Panache (glacier)

Quick Info

Download CyanogenMod

It looks like we don’t have any roms for download for this device. 🙁

Note: Support Status

This device does not support the latest official release of CyanogenMod. This may be due to hardware limitations or simply because development is ongoing. The most recent version supported is based on the gingerbread branch of CyanogenMod.

Special boot modes

  • Recovery: Vol Down & Power

Source code

myTouch 4G / Panache Specifications
Codename: glacier
Also known as: myTouch 4G, Panache
Vendor: HTC
Manufacturer: HTC
Release date: 2010 Nov 3 (USA)
Type: phone
GSM freq: 850 900 1800 1900 MHz GSM/GPRS/EDGE
1700 2100 MHz UMTS/HSPA+
Platform: Qualcomm MSM8255
CPU: 1 GHz single-core Qualcomm Snapdragon S2
RAM: 768MB
Weight: 150 g (5.3 oz)
Dimensions: 122 mm (4.8 in) (h)
62 mm (2.44 in) (w)
10.9 mm (0.43 in) (d)
Screen size: 97 mm (3.8 in)
Resolution: 800×480
Screen density: 246 ppi
Screen type: TFT LCD
Internal storage: 4GB
SD Card: up to 32GB
Bluetooth: 2.1+EDR w A2DP Stereo
Wi-Fi: 802.11b/g/n
Main camera: 5MP w/ LED flash
Secondary camera: 0.3MP
Power: 1400 mAh internal, rechargeable, removable lithium-ion battery
Peripherals: micro-USB, A-GPS, FM Radio, capacitive touchscreen, digital compass, proximity & ambient light sensors, 3-axis accelerometer
CM supported: 7
Latest CM version: gingerbread


Modifying or replacing your device’s software may void your device’s warranty, lead to data loss, hair loss, financial loss, privacy loss, security breaches, or other damage, and therefore must be done entirely at your own risk. No one affiliated with the CyanogenMod project is responsible for your actions. Good luck.

This guide will walk you through the process of taking the HTC Glacier from stock to having the ability to flash a custom recovery image & the latest version of CyanogenMod.

Downgrading to 1.17.531.2

If the HTC Glacier is running a Gingerbread firmware ( (Settings » About Phone) you need to downgrade the device first in order to root. If the HTC Glacier is already running 1.17.531.2 or lower you can skip to the Rooting the HTC Glacier section.

  1. You will need ADB on the computer to proceed thru this process. Follow the Android SDK guide, to get the ADB shell on the computer.
  2. Download fre3vo, misc_version 0.2 & the 1.17.531.2 firmware:
    • fre3vo: Download
      md5: 010e076a4a93be876579711bf8934c70
    • misc_version 0.2: Download
      md5: 1f40aaf88d1bf15775631a58c4361218
    • flashgc: Download
      md5: 86e6e81fad3b3c837ed8bd09b6005651
    • 1.17.531.2 firmware: Download
      md5: 49d07f0ee7de1765a6a84cb12fa53110
  3. Unzip the fre3vo & misc_version packages and save flashgc to the same folder as adb (the /platform-tools folder within the Android SDK folder).
  4. Make sure the filename of the firmware is exactly or it will not work and copy it to the same folder as adb.
  5. Connect the HTC Glacier to the computer via USB.
  6. Make sure USB debugging is enabled on the HTC Glacier by checking Settings » Applications » Development » USB debugging.
  7. Also ensure that Default Connection Type is set to ‘Charge Only, under Settings » Connect to PC » Default Connection Type.
  8. On the computer, open terminal and run the following commands:
    adb push fre3vo /data/local/tmp
    adb push misc_version /data/local/tmp
    adb push flashgc /data/local/tmp
    adb shell
    chmod 777 /data/local/tmp/fre3vo
    chmod 777 /data/local/tmp/misc_version
    chmod 777 /data/local/tmp/flashgc
    /data/local/tmp/fre3vo -debug -start FAA90000 -end FFFFFFFF
    adb shell

    NOTE: You should have the “#” sign instead of the “$”. If you do, you have temporary root, and can continue on. If you have the “$”, then the exploit has failed, refer to xda developers, RootzWiki, or #G2Root for further assistance.
    cd /data/local/tmp
    ./misc_version -s
  9. Now that misc version has been downgraded, the HTC Glacier is ready to have the firmware downgraded. On the computer, open terminal and run the following commands:
    adb push /sdcard/
    adb reboot bootloader
  10. Use Volume up/down keys on the HTC Glacier for navigation and Power key for confirmation. Select Bootloader to flash the 1.17.531.2firmware. This takes a bit of time, be patient, you’ll see a progress bar in the upper right.
  11. After a while, you will be asked if you want to proceed with the update. Select Yes.
  12. Occasionally this will fail, and the image will not be recognized. In this case, the image can be flashed via the fastboot executable as described in this xda developers thread (see section I-4b).
  13. Once finished you can can continue to the next section.

Rooting the device

  1. You will need ADB on the computer to root the HTC Glacier and to flash the necessary files for radio S-OFF. Follow the Android SDK guide, to get the ADB shell on the computer.
  2. Download busybox, the ClockworkMod Recovery, the Engineering HBoot, gfree 1.0, psneuter, root_psn, Superuser package:
    • busybox: Download
      md5: 25c5db694c987995909cc3166d4f01b0
    • ClockworkMod Recovery: Download
      md5: a5aea82ec2ad7b836c9c179fce0d520d
    • Engineering HBoot: Download
      md5: b2c8834905bfa2349f5223077493140a
    • gfree 1.0: Download
      md5: 0bc9fc22bda897c765b02066f8a3c83b
    • psneuter: Download
      md5: 89c2dec8d72d87b4c669f44dd31c8d17
    • root_psn: Download
      md5: c8fe38ef55eb8951def9ff17b2eb99c1
    • Superuser package: Download
      md5: 43d9a40b63e916635d5ad7ca32433fab
  3. Unzip the zip files and copy the contents to the same folder as adb (the /platform-tools folder within the Android SDK folder).
  4. Connect the HTC Glacier to the computer via USB.
  5. Make sure USB debugging is enabled on the HTC Glacier by checking Settings » Applications » Development » USB debugging.
  6. Also ensure that Default Connection Type is set to ‘Charge Only, under Settings » Connect to PC » Default Connection Type.
  7. On the computer, open terminal and run the following commands:
    adb push busybox /data/local/tmp/
    adb push gfree /data/local/tmp/
    adb push hboot-eng.img /data/local/tmp/
    adb push psneuter /data/local/tmp/
    adb push recovery-clockwork- /data/local/tmp/recovery.img
    adb push root_psn /data/local/tmp/
    adb push su /sdcard/
    adb push Superuser.apk /sdcard/
    adb shell
    chmod 755 /data/local/tmp/*

    NOTE: You will drop out of the shell after this command. Restart the shell using:
    adb shell
    cd /data/local/tmp
    ./gfree -f -b hboot-eng.img -y recovery.img
  8. As it is very important that the hboot was installed correctly gfree calculates md5sums of the partition. It will calculate the following 3 checksums
    • md5sum #1 – checksum of partition 18 before the installation
    • md5sum #2 – checksum of the hboot image that should be installed
    • md5sum #3 – checksum of partition 18 after the installation
  9. The messages that you what to see are either/or
    • md5sum #1 == md5sum #2 – the hboot image is already installed -> skipping installation
    • md5sum #3 == md5sum #2 – the hboot image was successfully installed -> OK!
  10. If you get a different error message then DO NOT REBOOT and join #G2Root on Freenode for further help.
  11. If gfree worked correctly continue with:
  12. The HTC Glacier is now rooted with S-OFF, the Engineering HBoot & the ClockworkMod Recovery. Continue to the next section.


If you had to downgrade your phone following the directions in the first section (Downgrading to 1.17.531.2), you should delete the from /sdcard, otherwise you won’t be able to install CM in the following section. Do this:

  1. Connect the HTC Glacier to the computer via USB.
  2. Make sure USB debugging is enabled on the HTC Glacier by checking Settings » Applications » Development » USB debugging.
  3. Make sure your phone is not mounted as a USB disk. Go to Settings » Connect to PC and select USB charge only.
  4. On the computer, open terminal and run the following command:
    adb shell
    rm /sdcard/

Installing CyanogenMod from recovery

Prerequisites-decide now which method you want to use to install CyanogenMod (Sideload method or Push and install method). If you want to use the Sideload method, you will need a SD card and a card reader. If you want to use the push and install method, you will need to make sure your computer’s ADB is still working and can connect to your phone. The sideload method is more universal across devices, whereas the push and install method is more commonly used.

  1. Download one of the CyanogenMod package for your device to your computer. If you are uncertain of what to download read the Release Versioning page.
  2. Optional: Download 3rd party applications packages, like Google Apps which are necessary to download apps from Google Play.
    • If using sideload method, copy the CyanogenMod package (do not extract) and any 3rd party application packages to the root directory of your SD card now. Then insert this card into your phone.
  3. Boot into Hboot by turning phone off then holding Vol Down & Power down for about 5 seconds and then releasing. The first line of text at the top of the screen should now read:
    Note the presence of the words ENG and S-OFF. This means that the gfree command worked in the previous section =)

    • If using the push and install method, connect the phone to your computer through USB at this time.
  4. Use the vol down button to select RECOVERY option and use the power button to select it. The phone should now be in ClockworkMod Recovery (give it a little time).
    It is important to note that the select key in this edition of ClockworkMod (v5.0.2.0) is NOT the power button. Use the silver camera button on the right lower side of the device to select.
  5. Optional (Recommended): Select backup and restore to create a backup of your current ROM.
  6. Select wipe data/factory reset.
  7. Select advanced>Wipe Davik Cache.
  8. Press the back button.
  9. Next, follow the procedures for the method you selected earlier:
    • If using the Sideload method: select install zip from sdcard > choose zip from sdcard and find the file you downloaded in in step 1. The installer does not necessarily display an “Install complete.” message. You can tell the install is complete if there were no fatal error messages and you have regained control over the menu.
    • If using the Push and install method: Open a command prompt (or Terminal on Mac and Linux) and navigate to the directory holding the package(s) you would like to install. On the device, navigate to the mounts and storage menu. If you see /storage/sdcard0 or /sdcard as a mountable volume, go ahead and mount it. If you do not see one of these partitions, then instead mount the /data partition. Take note of which volume you mounted. Now, push the package(s) to your device (also, see tip below):
    – If you mounted /storage/sdcard0, then: adb push /storage/sdcard0/
    – If you mounted /sdcard or /data, then: adb push /sdcard/
    where should be replaced with the package filename. Go back to the main menu and select install zip. Choose to install from the same directory where you pushed the package(s). If you are installing multiple packages, install CyanogenMod first and then install any subsequent packages on top of it.
  10. Once installation has finished, return to the main menu and select reboot system now. The device should now boot into CyanogenMod!


If after rebooting the phone, you see the splash screen of CM looping infinitely, don’t panic and do the following:

  1. Remove the battery (your only way of turning off the device right now). Wait a couple of seconds and put t back in.
  2. Boot into recovery by pressing the Vol Down button and then Power button briefly.
  3. Wipe data/factory reset
  4. Wipe cache
  5. Install rom zip from sdcard following the instructions in the previous section
  6. Reboot

How To Build CyanogenMod For HTC myTouch 4G / Panache (glacier)


These instructions will hopefully assist you to start with a stock myTouch 4G / Panache, unlock the bootloader (if necessary), and then download the required tools as well as the very latest source code for CyanogenMod (based on Google’s Android operating system). Using these, you can build both CyanogenMod and CyanogenMod Recovery image from source code, and then install them both to your device.

It is difficult to say how much experience is necessary to follow these instructions. While this guide is certainly not for the very very very uninitiated, these steps shouldn’t require a PhD in software development either. Some readers will have no difficulty and breeze through the steps easily. Others may struggle over the most basic operation. Because people’s experiences, backgrounds, and intuitions differ, it may be a good idea to read through just to ascertain whether you feel comfortable or are getting over your head.

Remember, you assume all risk of trying this, but you will reap the rewards! It’s pretty satisfying to boot into a fresh operating system you baked at home :) And once you’re an Android-building ninja, there will be no more need to wait for “nightly” builds from anyone. You will have at your fingertips the skills to build a full operating system from code to a running device, whenever you want. Where you go from there– maybe you’ll add a feature, fix a bug, add a translation, or use what you’ve learned to build a new app or port to a new device– or maybe you’ll never build again– it’s all really up to you.

What you’ll need

  • A myTouch 4G / Panache
  • A relatively recent computer (Linux, OS X, or Windows) with a reasonable amount of RAM and about 100 GB of free storage (more if you enable ccache or build for multiple devices). The less RAM you have, the longer the build will take (aim for 8 GB or more). Using SSDs results in considerably faster build times than traditional hard drives.
  • A USB cable compatible with the myTouch 4G / Panache (typically micro USB, but older devices may use mini USB or have a proprietary cable)
  • A decent internet connection & reliable electricity :)
  • Some familiarity with basic Android operation and terminology. It would help if you’ve installed custom roms on other devices and are familiar with recovery. It may also be useful to know some basic command line concepts such as cd for “change directory”, the concept of directory hierarchies, that in Linux they are separated by /, etc.

If you are not accustomed to using Linux– this is an excellent chance to learn. It’s free– just download and run a virtual machine (VM) such as Virtualbox, then install a Linux distribution such as Ubuntu (AOSP vets Ubuntu as well). Any recent 64-bit version should work great, but the latest is recommended.


You want to use a 64-bit version of Linux. A 32-bit Linux environment will only work if you are building CyanogenMod 6 and older. For CyanogenMod 10.1, if you encounter issues with 64bit host binaries, you can set BUILD_HOST_32bit=1 in your environment. This is generally not needed, though, especially with CyanogenMod 10.2 and newer.

Using a VM allows Linux to run as a guest inside your host computer– a computer in a computer, if you will. If you hate Linux for whatever reason, you can always just uninstall and delete the whole thing. (There are plenty of places to find instructions for setting up Virtualbox with Ubuntu, so I’ll leave it to you to do that.)

So let’s begin!

Build CyanogenMod and CyanogenMod Recovery

Prepare the Build Environment


You only need to do these steps the first time you build. If you previously prepared your build environment and have downloaded the CyanogenMod source code for another device, skip to Prepare the device-specific code.

Install the SDK

If you have not previously installed adb and fastboot, install the Android SDK. “SDK” stands for Software Developer Kit, and it includes useful tools that you can use to flash software, look at the system logs in real time, grab screenshots, and more– all from your computer.

Helpful Tip

While the SDK contains lots of different things– the two tools you are most interested in for building Android are adb and fastboot, located in the /platform-tools directory.

Install the Build Packages

Several “build packages” are needed to build CyanogenMod. You can install these using the package manager of your choice.

Helpful Tip

A package manager in Linux is a system used to install or remove software (usually originating from the Internet) on your computer. With Ubuntu, you can use the Ubuntu Software Center. Even better, you may also use the apt-get install command directly in the Terminal. (Learn more about the apt packaging tool system from Wikipedia.)

For both 32-bit & 64-bit systems, you’ll need:

bc bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

In addition to the above, for 64-bit systems, get these:

g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev

For Ubuntu 15.10 (wily) and newer, substitute:

  • lib32readline-gplv2-devlib32readline6-dev

For Ubuntu 16.04 (xenial) and newer, substitute (additionally see java notes below):

  • libwxgtk2.8-devlibwxgtk3.0-dev
  • openjdk-7-jdkopenjdk-8-jdk

Java versions: Different versions of CyanogenMod require different versions of the JDK (Java Development Kit):

  • CyanogenMod 7 – 9: Sun/Oracle Java SE 1.6
  • CyanogenMod 10.1: Sun/Oracle Java SE 1.6 or 1.7
  • CyanogenMod 10.2 – 11.0: Sun/Oracle Java SE 1.6 or 1.7 (OpenJDK 1.7 works fine, but the build system will display a warning)
  • CyanogenMod 12.0 – 13.0: OpenJDK 1.7 (see note about OpenJDK 1.8 below)
  • CyanogenMod 14.1: OpenJDK 1.8

Ubuntu 16.04 (Xenial Xerus) or newer and OpenJDK: Since OpenJDK 1.7 was removed from the official Ubuntu repositories, you have a couple options:

  1. Obtain OpenJDK 1.7 from the openjdk-r PPA
  2. Enable experimental OpenJDK 1.8 support in CyanogenMod 13.0 (not available in earlier version). To enable OpenJDK 1.8 support, add this line to your $HOME/.bashrc file: export EXPERIMENTAL_USE_JAVA8=true.

Also see which lists needed packages.

Create the directories

You will need to set up some directories in your build environment.

To create them:

$ mkdir -p ~/bin
$ mkdir -p ~/android/system

Install the repo command

Enter the following to download the “repo” binary and make it executable (runnable):

$ curl > ~/bin/repo
$ chmod a+x ~/bin/repo

Put the ~/bin directory in your path of execution

In recent versions of Ubuntu, ~/bin should already be in your PATH. You can check this by opening ~/.profile with a text editor and verifying the following code exists (add it if it is missing):

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then

Initialize the CyanogenMod source repository

Enter the following to initialize the repository:

Note: Make sure the cm branch entered here is the one you wish to build and is supported on your device.
$ cd ~/android/system/
$ repo init -u -b gingerbread

Download the source code

To start the download of all the source code to your computer:

$ repo sync

The CM manifests include a sensible default configuration for repo, which we strongly suggest you use (i.e. don’t add any options to sync). For reference, our default values are -j 4 and -c. The -j 4 part means that there will be four simultaneous threads/connections. If you experience problems syncing, you can lower this to -j 3 or -j 2. -c will ask repo to pull in only the current branch, instead of the entire CM history.

Prepare to wait a long time while the source code downloads.

Helpful Tip

The repo sync command is used to update the latest source code from CyanogenMod and Google. Remember it, as you can do it every few days to keep your code base fresh and up-to-date.

Get prebuilt Rom Manager

$ cd ~/android/system/vendor/cyanogen

then enter:

$ ./get-rommanager

You won’t see any confirmation- just another prompt. But this should cause the Rom Manager apps to be loaded and installed into the source code. Once completed, this does not need to be done again.

Prepare the device-specific code

After the source downloads, ensure you are in the root of the source code (cd ~/android/system), then type:
$ source build/
$ lunch

You should see a list of devices, including something like cm_glacier-userdebug. Select it by typing its number. It is possible that lunch does not display your device. In that case try

$ lunch cm_glacier-userdebug


$ lunch full_glacier-userdebug

If all goes well, you should see that glacier-specific directories are downloaded automatically.

Helpful Tip

If you want to know more about what source build/ does or simply want to know more about the breakfast, brunch and lunch commands, you can head over to the Envsetup help page.

Helpful Tip

Instead of typing cd ~/android/system every time you want to return back to the root of the source code, here’s a short command that will do it for you: croot. To use this command, you must first run source build/ from ~/android/system.

Extract proprietary blobs

Now ensure that your myTouch 4G / Panache is connected to your computer via the USB cable and that you are in the ~/android/system/device/htc/glacier directory (you can cd ~/android/system/device/htc/glacier if necessary). Then run the script:

$ ./

You should see the proprietary files (aka “blobs”) get pulled from the device and moved to the ~/android/system/vendor/htc directory. If you see errors about adb being unable to pull the files, adb may not be in the path of execution. If this is the case, see the adb page for suggestions for dealing with “command not found” errors.


Your device should already be running a build of CyanogenMod for the branch you wish to build for the script to function properly.


It’s important that these proprietary files are extracted to the ~/android/system/vendor/htc directory by using the script. Makefiles are generated at the same time to make sure the blobs are eventually copied to the device. Without these blobs, CyanogenMod may build without error, but you’ll be missing important functionality, such as graphics libraries that enable you to see anything!

Turn on caching to speed up build

You can speed up subsequent builds by adding

export USE_CCACHE=1

to your ~/.bashrc file (what’s a .bashrc file?). Then, specify the amount of disk space to dedicate to ccache by typing this from the top of your Android tree:

prebuilt/linux-x86/ccache/ccache -M 50G

where 50G corresponds to 50GB of cache. This only needs to be run once and the setting will be remembered. Anywhere in the range of 25GB to 100GB will result in very noticeably increased build speeds (for instance, a typical 1hr build time can be reduced to 20min). If you’re only building for one device, 25GB-50GB is fine. If you plan to build for several devices that do not share the same kernel source, aim for 75GB-100GB. This space will be permanently occupied on your drive, so take this into consideration. See more information about ccache on Google’s android build environment initialization page.

Helpful Tip

If you are a very active developer, working on many other projects than just Android, you might prefer to keep your Android ccache independent (because it’s huge and can slow down the efficiency of ccache in your other projects). Beginning with CyanogenMod 12.1, you can specify environment variables for the location and size of CyanogenMod’s ccache. Some syntax examples: export ANDROID_CCACHE_DIR="$HOME/android/.ccache" and export ANDROID_CCACHE_SIZE="50G".

Start the build

Time to start building! So now type:

$ croot
$ brunch glacier

The build should begin.

Helpful Tip

If the build doesn’t start, try lunch and choose your device from the menu. If that doesn’t work, try breakfast and choose from the menu. The command make glacier should then work.

Helpful Tip

A second, bonus tip! If you get a command not found error for croot, brunch, or lunch, be sure you’ve done the source build/ command in this Terminal session from the ~/android/system directory.

Helpful Tip

A third tip! If the build to fails while downloading Gello, you’ll need to import a missing certificate into Maven’s truststore. Detailed instructions on how to do that can be found here

If the build breaks…

  • If you experience this not-enough-memory-related error…
ERROR: signapk.jar failed: return code 1make: *** [out/target/product/glacier/] Error 1

…you may want to make the following change to ~/android/system/build/tools/releasetools/

Search for instances of -Xmx2048m (it should appear either under OPTIONS.java_args or near usage of signapk.jar), and replace it with -Xmx1024m or -Xmx512m.

Then start the build again (with brunch).

  • If you see a message about things suddenly being “killed” for no reason, your (virtual) machine may have run out of memory or storage space. Assign it more resources and try again.

Install the build

Assuming the build completed without error (it will be obvious when it finishes), type:

$ cd $OUT

in the same terminal window that you did the build. Here you’ll find all the files that were created. The stuff that will go in /system is in a folder called system. The stuff that will become your ramdisk is in a folder called root. And your kernel is called… kernel.

But that’s all just background info. The two files we are interested in are (1) recovery.img, which contains CyanogenMod Recovery, and (2), which is the CyanogenMod installation package.

Install CyanogenMod

Back to the $OUT directory on your computer– you should see a file that looks something like:


The above file name may vary depending on the version of CM you are building. Your build may not include a version number or may identify itself as a “KANG” rather than UNOFFICIAL version. Regardless, the file name will end in .zip and should be titled similarly to official builds.

Now you can flash the file above as usual via recovery mode. Before doing so, now is a good time to make a backup of whatever installation is currently running on the device in case something goes wrong with the flash attempt. While CyanogenMod Recovery doesn’t have a backup feature, there are other custom recoveries available that do. You can also use something like Titanium Backup (root required) as an alternative.

Success! So….what’s next?

You’ve done it! Welcome to the elite club of self-builders. You’ve built your operating system from scratch, from the ground up. You are the master/mistress of your domain… and hopefully you’ve learned a bit on the way and had some fun too.

Now that you’ve succeeded in building CyanogenMod for your device, here are some suggestions on what to do next.

Also, be sure to take a glance at the Dev Center on this wiki for all kinds of more detailed information about developer topics ranging from collecting logs, understanding what’s in the source code directories, submitting your own contributions, porting CyanogenMod to new devices, and a lot more.

Congrats again!

Content of this page is based on informations from, under CC BY-SA 3.0 licence.