Categories
bitching iphone

Anatomy of a cluster-f*ck: Imagination’s SDK installer

iOS devices (iPhone, iPod Touch, iPad) are powered by 3D chips branded “PowerVR” from a company branded as “Imagination”.

If you want to develop 3D games/apps, you can do that using Apple’s free tools + SDK. But some of the good stuff – e.g. higher-res textures – you’ll need to dive into PowerVR specifics. This should *in theory* be very, very, very easy. But Imagination does not make it so :(.

All you really need is a few source files, but instead of putting them on their website to for you to download, Imagination has wrapped them up in a 1 gigabyte (broken) self-extractor. And it doesn’t work. It *really* doesn’t work. Read on for some of the joys of just how awful something as simple as a “unzip this file” program can get…

UPDATE: I realised after posting that I left out a very important point. Until this mess, I’d found Imagination’s tech guys to be friendly and helpful, and their tools to be useful and to work fine. They were always badly documented (e.g. very bad error handling, missing key facts like “a 64 megabyte texture requires 3 GIGABYTES of RAM to save”, etc – but they essentially “worked”). Maybe I just got lucky until now, but this installer seems a radical departure in terms of quality and testing. For anyone who’s *not* used the PowerVR stuff before, bear this in mind: IME, this experience is not normal. Also: use the forums – the support team seems pretty responsive.

TL;DR – if you want to load PVR textures on iOS, google for “PVR” and “iOS” and “copyright imagination” and find the header files and source that are embedded in a couple of open-source projects from a couple years back, before Imagination accidentally broke everything.

How bad can it be?

1. Our installer is probably infected with a virus. It takes the Admin Password on your machine…

Wait, – what?

Why?

There is no reason for this. The few times I’ve seen this before were:

  1. Early versions of DropBox for OS X used to hack the hard-disk drivers (rather dangerous…), to enable a feature – and it needed the root password to do it (no surprise there)
  2. Virus-infected apps

My advice: assume that Imagination is (accidentally) distributing viruses right now, and upgrade your virus scanner before you download the SDK. Be careful – once you give admin access to a virus, your entire system is hosed, and recovery (especially of a laptop) is going to be difficult and annoying (it involves removing hard disks and physically inserting them in different machines).

You are legally banned from using the SDK, once you’ve got it

According to one of the files, and I quote (I can’t tell you which one, for obvious reasons):

“@License Strictly Confidential.”

ROFLMAO.

The installer … disables your keyboard and mouse

A small thing, being temporary, but symptomatic of the “our SDK don’t work on iOS, hahahahaha” attitude.

Try hitting copy/paste/delete/home/end/jump-word/insert/select/arrow keys/scroll wheel – nothing works. Someone has written an installer that breaks the operating system itself.

It even redefines the mapping of mouse buttons – your right mouse button has it’s OS X features taken away, and gets converted into something else entirely.

(the last time I saw this behaviour was with 1980’s-era window-managers…)

The installer … creates a “fake UNinstaller”

OS X doesn’t use uninstallers. Due to the way OS X is architected, an uninstaller makes little or no sense (unlike Windows).

But Imagination has written one.

When you run it, it takes control of your machine again (root password – extremely dangerous!) and then … it does NOT uninstall the SDK. It deletes A FEW of the files that it installed – but by no means all of them. Sometimes, it deletes NONE of them (depends what you installed).

It’s almost as if Imagination has installed a virus on your machine, and named it “Uninstaller” to trick you into “never running this app”.

NB: that’s exactly what several virus writers used to do, years ago. My paranoia is increasing: did Imagination’s website get hacked recently? Are they distributing a virus to all their developers?

The installer won’t work on Macs bought after 1980-something

OS X has supported spaces in filenames for … a rather long time. A few decades now…

But Imagination has overridden OS X’s built-in support. If there’s a space anywhere – in the file, in the folder, in ANY of the folders in your system … Imagination’s installer explodes.

Depending on where the space is, you MIGHT get this error message (NB: I only got it one time out of 4 or 5, while I was working out what exactly was triggering the failures):

Screen Shot 2013-06-27 at 19.39.50

NB: I found 10+ unique fatal bugs in the installer. This is the only one that generated an error message. I feel kind of proud I managed to shame Imagination’s installer into admitting that it had failed.

Of course, after I clicked OK, the installer reported … successful install.

ARGH!

The installer … is NOT an installer

Hey, Imagination! The 1990’s phoned – they want their “network based installer” back.

Yep. The “installer” is actually an “installer-installer” (that – as we’ve seen already – doesn’t seem to work).

All it has to do is:

  1. Download a ZIP file
  2. Double-click the file to unZIP it
  3. ???
  4. Profit! (i.e. get on with your day, write amazing iPhone apps, etc)

Instead, it mucks around with tickboxes that don’t tick, downloaders that may-or-may-not download, etc.

Why do they do this?

Best I could think of: someone at Imagination is paid a bonus each year, based on the number of downloads from the website. They realised that by having an “installer installer” they could immediately double the number of downloads – and earn a big, fat, bonus.

…no, I don’t think so either. But by this point I needed something – anything – to distract me from the pain of trying to get Imagination’s SDK to download :(.

The secret installer … is 1 gigabyte in size

There is a link to a real installer (I found it via google, and a post on the Imagination forums – but I noticed later that there’s small text at the bottom of the download page that says “Network Admins”, and I suspect that link jumps to it?)

But once you hit download, you find it’s one GIGABYTE in size

Here’s the link, if you have time to wait downloading it all:

http://www.imgtec.com/PowerVR/insider/sdkdownloads/offline-installers.asp

NB: you CANNOT download that file directly – you will be forced to type in a (fake, if you like) email address, country, etc.

(I suggest “Afghanistan”. Maybe if their web team gets thousands of downloads from Afghanistan they’ll realise, and install GeoIP, which would remove the box AND give them more accurate data…)

But use the direct link anyway, because NO MATTER WHERE YOU START FROM, Imagination always prevents you from downloading, and instead redirects you to their marketing page. So you’ll need to copy/paste this link afterwards anyway.

Neither of the “free” installers can be downloaded

“One cannot simply walk into Mordor”

Likewise: after writing so many bugs into their installer, do you really think you can simply “download” it?

LOL – no way!

Instead, you have to register.

And fill out a CAPTCHA.

Because, you know … those Chinese spammers spend all day trying to download Imagination SDK installers. I’ve heard there’s lots of money to be made in … wait, no. I’m losing my mind here.

Also, bear in mind: Imagination doesn’t check the email address, the country, the username, OR the password. You can put whatever random phrase you want for all of them.

The installer cannot “copy files”

In the selection of “things to install”, you have to use Magic Powers.

The tickboxes are strange. If you say “install X”, it will … not install X. It *might * install X. Or it might install Y. Or it might install half of both of them. I’ve seen it install random combinations. I’ve done this more than 20 times now, and I have no idea what the correlation is supposed to be.

A few things DO install correctly – e.g. some of the Utilities, if you check ONLY that utility AND check the magic “Utilities” box. The “Utilities” tickbox is some kind of idiot-check, maybe:

Imagination: “What would you like to install?”
Developer: “PVRTexTool”
Imagination: “Whoa! that’s dangerous! I’d better check you’re sober and alert. Here’s a test: can you spot the OTHER box I want you to tick (that’s scrolled off screen already), without which I’ll laugh in your face and install … nothing?”

You have to keep running, and re-running, and re-re-running the installer trying random collections of on/off tickboxes.

Eventually you’ll find the “magic” combination that includes the software you wanted in the first place. Maybe. Good luck!

A few notes:

“Binaries” cannot install. It’s a fake tickbox. You might have to tick it, but it only ever creates empty folders
“Utilities” can be included or excluded, but if you want any of them, you have to also tick the parent one.
“Shell” seems to install EVEN WHEN YOU SAY DON’T INSTALL

…but really: I don’t know what the heck is going on behind this facade, sorry.

The installer can use all hard-disk space … and keep going

With more than 20 re-installs, dealing with gigabyte downloads … I ran out of disk space.

The installer does NOT consider this an error – it reports “completed install”. Even though it didn’t: it ran out of disk space.

So … watch out for that one.

ARGH! What next?

As I said at the beginning:

TL;DR – if you want to load PVR textures on iOS, google for “PVR” and “iOS” and “copyright imagination” and find the header files and source that are embedded in a couple of open-source projects from a couple years back, before Imagination accidentally broke everything.

2 replies on “Anatomy of a cluster-f*ck: Imagination’s SDK installer”

At first I was going to ask, since you say the uninstaller is so flaky, what a good way to manually remove the files is.

But then I just ran the uninstaller and it did remove a huge quantity of files (one by one…) from /Users/Shared/Imagination, which I didn’t know existed. Also, what a retarded place to stash files. And it has also removed the files from the /Applications directory. So I think for me at least this uninstaller did its job quite nicely. I got back a few precious GB too.

Comments are closed.