keepcalculator

06 Numbers and Powers

HTC One V ICS ROM on Desire S HD: What Works

Card No. 06·17105 · Updated · Standard formula, shown below

You can port an HTC One V Ice Cream Sandwich ROM to an HTC Desire S HD, but it is not a direct install—it requires repacking the ROM with a compatible kernel and updater script. The result gives you Android 4.0.4 with Sense 4.0 on a phone that officially stopped at Android 2.3.5, but you will lose some features and risk instability.

Background: Why the One V ROM Is a Good Base

The HTC One V (codename primo) and the HTC Desire S HD (often just the Desire S, codename saga) share the same Qualcomm MSM8255 Snapdragon processor and Adreno 205 GPU. That hardware similarity is the main reason a port is feasible—the CPU and GPU drivers are nearly identical. The One V was released with Android 4.0.3 and Sense 4.0, while the Desire S shipped with Android 2.3.3 and Sense 2.1. HTC never released an official ICS update for the Desire S in most regions, so enthusiasts turned to ports from the One V.

The One V ROM is smaller and less demanding than the Sensation or One X ROMs, which makes it a better fit for the Desire S’s 512 MB RAM. The screen resolution is also the same (480×800), so the framework and SystemUI resources need minimal resizing.

What a Port Actually Involves

Porting is not just copying files. The One V ROM expects a different kernel, partition layout, and radio interface. A typical port for the Desire S HD includes:

  • Kernel swap: The One V kernel will not boot on the Desire S. You must use a custom kernel built for the Desire S (like those from the saga development community) that supports ICS.
  • Updater script edit: The installer script checks the device model. You must change the assert lines to accept saga.
  • Lib and driver replacement: Some proprietary libraries (like the camera HAL, RIL, and audio) differ between the two devices. You often need to pull these from a Desire S ICS test build or another working port.
  • Build.prop tweaks: Change the model name, LCD density, and other device-specific values.

Step-by-Step: How to Port and Install

This is a general guide for a technically comfortable user. You need a computer, an unlocked bootloader, and a custom recovery like ClockworkMod or TWRP.

  1. Download an HTC One V ICS ROM (Sense 4.0) and a working Desire S ICS kernel (from a trusted developer).
  2. Extract the ROM zip on your computer. Open the META-INF/com/google/android/updater-script file with a text editor.
  3. Find the line that starts with assert(getprop("ro.product.device"). Change the device names to include saga (or remove the assert entirely).
  4. Replace the boot.img in the ROM with the Desire S kernel image. If the kernel is in a separate flashable zip, you can flash it after the ROM.
  5. Copy the ROM zip to your phone’s SD card. Reboot into recovery, wipe data/factory reset, wipe cache, and wipe dalvik cache.
  6. Flash the ROM zip, then flash the kernel zip if separate. Reboot. The first boot may take 5–10 minutes.

Common Problems and Fixes

Most ports fail on the first try. Here are the usual issues and what they mean:

  • Bootloop: The kernel and ROM are mismatched. Try a different kernel or add androidboot.selinux=permissive to the kernel command line if the ROM uses SELinux.
  • No Wi-Fi or Bluetooth: The kernel modules (like bcm4330.ko) are missing or from the wrong device. Copy the correct modules from a Desire S ICS build into /system/lib/modules.
  • Camera force-closes: The camera HAL library (libcamera.so) is often incompatible. Replace it with one from a different Desire S ICS port.
  • No mobile data: The RIL (radio interface layer) is mismatched. Replace libril.so and the rild binary with ones from a known working ICS build for the Desire S.

Performance and Stability vs. Stock

The One V port runs noticeably smoother than the stock Gingerbread Sense 2.1 in daily use—scrolling is more fluid and the browser is faster. However, the Desire S has only 512 MB of RAM, and Sense 4.0 is heavier than Sense 2.1. You will see more launcher redraws and occasional lag when switching apps. Battery life is similar, but some ports have higher idle drain due to kernel differences. The camera app works, but you lose the 720p video recording that some stock Gingerbread builds had; the One V’s camera HAL only supports 480p on the Desire S.

How to Choose a Good Port

If you do not want to build your own, look for a pre-made port on XDA Developers or similar forums. A good port will:

  • List the exact kernel version and base ROM it uses.
  • Have a dedicated thread with user feedback on bugs.
  • Be updated to fix critical issues (like RIL or camera).
  • Include a changelog and installation instructions.

Avoid ports that are just a One V ROM zip with the assert removed—they usually have broken sensors or audio. Check the thread’s last page for recent reports before flashing.

Risks and Safety

Flashing a custom ROM voids your warranty and carries a small risk of bricking your phone. The Desire S has a locked bootloader that must be unlocked via HTC’s official unlock tool (which wipes your data). After that, you can always restore a stock RUU (ROM Update Utility) from HTC, so a soft brick is recoverable. However, a bad kernel or a corrupted partition can cause a hard brick that requires JTAG repair. Always back up your current ROM in recovery before flashing. Do not use a port as your daily driver if you rely on your phone for critical calls—some ports have unstable GPS or audio routing.

Alternatives to a One V Port

If the port seems too risky, you have other options:

  • Stock ICS from HTC: Some regions received an official ICS update for the Desire S (like the Vodafone UK build). Check HTC’s support site with your IMEI.
  • AOSP/AOKP ICS ROMs: These are lighter than Sense and often more stable, but you lose the Sense UI.
  • CM10.1 (Jelly Bean): A later Android version that runs better on older hardware, but it is not a Sense ROM.
  • Stay on Gingerbread: The stock ROM is perfectly functional and more stable than any port.

Frequently Asked Questions

Will the One V ROM give me the full Sense 4.0 experience?

Mostly yes—you get the Sense 4.0 launcher, widgets, and apps. But some HTC services (like the One V’s Beats Audio integration) may not work because the Desire S lacks the required DSP or kernel support.

Do I need to S-OFF my Desire S?

No. You can flash a custom ROM with S-ON as long as you have an unlocked bootloader and a custom recovery. The kernel is flashed via the recovery, not by fastboot, so S-ON is not a blocker.

Will the port break my camera?

Not necessarily, but the camera may lose 720p video recording. Photos at 5 MP work fine. If the camera force-closes, you need to replace the camera HAL library as described above.

Can I go back to stock after flashing the port?

Yes. Download the official RUU for your Desire S from HTC’s website, relock your bootloader, and run the RUU. It will restore the stock ROM and recovery, but it will wipe all your data.

Is the port faster than the stock Gingerbread?

In most UI interactions, yes—ICS has better graphics acceleration. But the extra RAM usage can cause more app reloads. If you have many apps open, the stock ROM may feel snappier.

What is the best kernel for this port?

There is no single best kernel—it depends on your usage. Look for a kernel that is specifically built for ICS on the Desire S and has recent updates. Test a few and check battery life and stability.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →