[Touch HD Windows Mobile ROM Development] stepw:
Blackstone USPL version 2.5

MOD Edit HDuser

This thread has gone wiki and can be found under

http://wiki.xda-developers.com/index.php?pagename=HTC_Blackstone_USPL

END MOD edit

MOD Edit (DaveShaw)

0. Virus Warning

Your AV software may detect this file as a virus, please read here.

1. Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND. I SHOULD NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES HOWEVER CAUSED ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. USE AT YOUR OWN RISK!!!

2. Warning

USPL does not make any permanent changes to your device. It operates from volatile memory (RAM) and once the device is power-cycled, no traces of USPL remain there. As long as there's a valid SPL flashed and starting up, you can run USPL to help you solve many other troubles.

Therefore USPL itself is safe and can NOT damage your device. You CAN... USPL is not foolproof; inrepairable damage can be caused through incorrect use of USPL, so be cautious.

Unless you know what you are doing, NEVER:

- flash an unsigned/cooked ROM/SPL/Radio/Splash/etc... that wasn't tested by someone else;

- issue SPL commands known to be dangerous or if their purpose is unclear or unknown;

- upgrade/downgrade SPL using USPL.

Again, USE AT YOUR OWN RISK.

3. What is USPL?

USPL is Unsigned... Unbricker... Universal... Ultimate... SPL, you name it!

USPL is for running different SPL versions and installing cooked/unsigned ROMs on your device without flashing patched SPL.

USPL is for unbricking your device if OS doesn't load, you don't have HardSPL installed and there's no stock ROM you can find for your device.

USPL is for debugging and testing if you are up to your own SPL patching.

4. Current version and supported devices

USPL is highly experimental. It is alpha software, and it will remain such forever. This is version 2.x of USPL for HTC Blackstone (HTC Touch HD) only. Please don't try it with any other devices! It will not cause damage, but it won't work either.

5. Why version 2.x? Where are the previous versions?

USPL version 1.0 was originally created in April, 2007 for HTC Trinity (HTC P3600), however my laptop with all source codes was stolen in May, 2007 just as I was about to make it public.I didn't have time and will back then to start the project all over. Now that I own an HTC Blackstone, it made better sense to do it again. RIP trin_uspl! Long live blac_uspl! Version 2.0 was developed in early December 2008, but it was too buggy to release at that time.

6. How does it work (under the hood)?

USPL is exploiting multiple bugs/vulnerabilities in HTC SPL codebase (known since 2007) to inject and execute unsigned code. The same concept was reused by pof to implement HTC Trinity splxploit (http://xdaforums.com/showthread.php?t=308691).

7. Why another SPL?

Why not?

Personally, I don't like the idea of flashing patched/hacked bootloader onto my device, so HardSPL doesn't work for me.

Having just SoftSPL is not enough, as sometimes OS doesn't boot to allow SoftSPL/JumpSPL execution.

8. What's in the package?

USPL comes as a single Windows executable - blac_uspl.exe. blac_uspl.exe is a console application developed and primarily tested on Windows XP. As of version 2.2 USPL should work in Windows Vista as long as RUU does; if you are still having problems with USPL under Windows Vista, consider downgrading HTC Sync drivers as described in http://xdaforums.com/showthread.php?t=291723. Sorry Linux lovers, no version for you :( You may be able to run it from Wine, but I didn't try.

By default Blackstone USPL loads SPL 1.14 (or SPL 1.15 starting from version 2.4) patched to allow flashing of unsigned/cooked .nbh files. You can specify a different SPL (for example HardSPL or MFG SPL) to be loaded instead via command line.

9. Who should (not) use it?

If you can't tell the difference between SoftSPL (SSPL) and HardSPL (HSPL), then USPL is probably not for you.

10. How to use it?

New:

cRaCKwHoRe developed a GUI for USPL for those not familiar with command line, see http://xdaforums.com/showthread.php?t=508361. It makes USPL a better experience, check it out!

Download the latest USPL attached to the second post of this thread and extract anywhere on your computer.

Go to ActiveSync properties and disable "Allow USB Connections" option. Turn off your device (long press "Power" key or remove/replace battery), then enter SPL bootloader mode (tri-color) by pressing and holding "Power" and "VolDown" keys simultaneously.

Connect USB cable and make sure "USB" label appeared in the white portion of the screen on your device.

Execute blac_uspl.exe; current status and any error messages USPL encounters will be displayed in the console window.

If everything goes well, your device will restart and SPL version label should read "1.14.USPL" indicating that USPL was loaded successfully.

If SPL version does not include "USPL" or if the screen is black, soft reset and try again. If "USB" label disappeared and did not reappear, reinsert USB cable.

You can then start RUU update to flash RUU_signed.nbh. Once RUU update is completed, device will restart using regular flashed SPL.

If you want to flash from SD card instead, make sure your SD card is not inserted when you enter the bootloader originally.

SPL will try to install it and would fail if blacimg.nbh is not signed by HTC. Insert the card after "USB" label comes up in SPL but before running USPL.

You can run "blac_uspl.exe ?" to get command line parameter help. Only 1 parameter is accepted and that is the name of an SPL file you want to load. You can load an MFG SPL or HSPL. USPL automatically takes care of allowing unsigned/cooked ROM flashing with any SPL you use.

11. Limitations

USPL relies heavily on multiple bugs specific to certain SPL versions, so it will only work on devices running **SUPPORTED** SPL versions.

The following Blackstone SPL versions are currently supported by the latest USPL version:

SPL 1.13

SPL 1.14

SPL 1.15 (TELSTRA)

SPL 1.19

SPL 1.54

If you run it on a device with unsupported SPL, an appropriate error message will be displayed and USPL will not run.

If you have a device with unsupported SPL version and you want to add support for it, please PM me to discuss.

blac_uspl.exe may not work in Windows Vista, unless HTC Sync drivers are downgraded. The ultimate solution to this problem is to use WinUSB instead of HTC Sync, this enhancement is not planned at this time though.

12. Thanks to:

Des - for original SoftSPL

pof - for JumpSPL and HTCflasher

OliPro - for original HardSPL

cmonex and OliPro - for Blackstone HardSPL

mikechannon - for HTC service manuals and repair guides

Dark Simpson - for HTC ROM tool

ViperBJK - for QMAT

jess6217 - for Telstra RUU

AnDim - for HTC Rom Editor tool

cRaCKwHoRe - for USPL GUI wrapper

PS Just noticed this is the first thread I have ever opened at xda-devs :)