Installer 4.0 Running on Firmware 2.0 (Updated)

Installer Since we are on the topic of jailbreaking firmware 2.0, I thought I would also mention that we do not have to worry about Installer not being able to run in firmware 2.0 (which is good because if Installer didn’t run on firmware 2.0 there would be no point in jailbreaking)!! RiP Dev has been giving us quite a bit of information in the last few days on what the new Installer version 4.0 will entail. And, because none of the previous applications available through the Installer will run on firmware 2.0, they have made quite a few changes to the Installer application. The following information is directly from the RiP Dev blog and it is quite the read. So, you will want to sit back and take a deep breathe before you start this one.

This post has been updated to include Part 1, 2 and 3 from the RiP Dev blog.

Part #1
I am fairly sure you are all excited with the newly opened App Store (just like I am). I’ve already purchased a bunch of applications (and of course, downloaded a few for free), and I must say big “thank you” to both Apple for rolling out such a system and to the developers who put a tremendous effort into creating all these applications.

However, as you may (or may not) know, certain tools will never make it to the App Store. One example would be our own Kate, or IntelliScreen, or a bunch of others that do not wish to adhere to the strict artificial limits set to the applications for the App Store – because many of these limitations are, in fact, aimed at protecting Apple’s advantage at deploying certain new products on the iPhone, and not at the “performance and memory usage monitoring” as it is officially called.

Either way, the Installer.app will continue to evolve. In fact, the new version, 4.0, is in the final stages of development. We expect it to stay the premier tool for installing applications that do not present in the App Store, giving you best of both worlds – as it will peacefully co-exist with the existing App Store. I will publish short facts about what’s new in the Installer 4 – and, to predict some questions as to “when will it be available”, I will say – immediately or shortly after the iPhone Dev Team releases new PWNAGE.

Today’s focus is on the repository format. As you know, for Installer.app to work, it has to contact one or more repository servers – most of which are maintained by third parties. The format of the repository didn’t change since version 1.0 of Installer, and we have decided to take the opportunity and change that (since none of the software created for 1.1.4 will work on 2.0 anyway). There was two main issues for the “old” repositories: bandwidth and troubles with the compatibility. Let me elaborate.

Bandwidth usage. Whenever Installer.app on your iPhone (or iPod touch) was refreshing a source, it was fetching the whole repository listing, which can be quite large (for example, for Ste packaging it’s currently around 700 Kb). Of course, this consumed bandwidth on your end, as well as repository owner’s end – and multiplied by the number of the iPhones around, this could easily be hundreds of gigabytes of data per day.

Second issue was compatibility. You never was sure whether the package you’re downloading was going to work under your particular firmware version. Many package authors have worked around this by presenting the alert sheet to the user after the package was downloaded – which is not the optimal solution.

The new repository format solves both issues. First, it downloads much more compact packages listing from the server, resulting in over than 3 times less bandwidth. And second, the script behind the repository is smart enough to filter the packages based on the firmware version you’re using and only give you the packages that can be installed there. Nice, isn’t it?


Part #2

As promised, I am continuing telling about the new Installer.

Previous Installer had another one major technical issue – it was using Property Lists (plist) files to store the database of available and installed packages. While this was very convenient for us (as programmers) as reading and writing to it required almost no effort, there was numerous complications caused by this design decision.

First, saving and loading property lists with the number of packages available across numerous repositories was long, simply because each property list file could get as large as 10-20 megabytes, and parsing that when Installer is starting up was not an instant operation. This problem was partially eliminated in Installer 3.1 and beyond when we have moved to binary format property list files from the plain XML – they take less space on disk and load and save faster.

Second, when the database with all available packages was loaded, it was kept in memory. The iPhone has strict rules about memory usage – so if you had too many sources or packages in the database, the Installer may have been closing due to not enough RAM conditions.

Third, searching through an array of, say, 1000 packages was slow – it had to run through all of them in memory one by one to find matches. Of course the ARM processor used in the device is fast, but either way that required time.

So Installer 4 uses sqlite database for all it’s stuff – which means indexing and searching is fast, the index is not loaded all in RAM and only accessed on demand. The startup is significantly faster because of that.

Next thing I am going to tell you tomorrow is how the packages itself have changed.

And to answer a common question, we’re getting there with the release – tomorrow the Installer may hit the private beta, depending on how well the work progresses.”

You can keep an eye on what is going on with Installer 4.0 on Rip Dev’s blog.

Part #3
First, we have added dependencies. This means that if a particular package requires, say, Jiggy Runtime, when you try to install it, the Jiggy Runtime will be installed too (if available). If it is not available, tough luck, you will not be able to install the package – but this is for your own safety. We really don’t want to support the mess on your iPhone (or iPod touch) so Installer will make sure you got everything installed correctly.

And second, the Installer is fully multithreaded now. Which means, sources refresh, package installation can now go in parallel (and in the background, so you don’t have to stare down that progress bar at the bottom of the screen). Moreover, you can now cancel any of the tasks.

Both of these things may sound obvious, and we’re not pretending we’re inventing something new – but, rather, adding the missing functionality into the Installer (at last).

Cheers! Back to Xcode now.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Comments

  1. Can I assume that the 3G phone will have to still be jailbroken in order for installer to exist in harmony with AppStore? I’m a little lost with version 2 coming out and where the 1.1.4 phones are going along with the newly released 3G’s??!! :-|

    • yep jailbreaking is essencial
      many jailbreak programs will auto-instal installer when u jailbreak, and it is not possible to even SSH/STFP installer into the iphone without it being jailbroken

  2. this is just great news….but one thing still remains to be seen….if all the apps v r used to in the previous iphone will be ported to the new firmware and installer.

  3. Metchit says:

    Wow, Ive been doing More reading than when i was
    in school. >_>

  4. brandon15 says:

    this is gonna be well good

    cant wait
    because getting so fed up wiv buying stuff off apple
    and i want my jailbreak bk

  5. why do we need to jailbreak to 2.0 why not copy app store so it works on 1.1.4 they need us to pay them (loOl)

    • We can’t modify app store to run on 1.1.4. And why go backwards if we have everything we need to go forwards? And I love 2.0. I’m not going back to 1.1.4. Maybe when I get my iPhone 3G this Saturday, but not until then.

    • in simpler terms, apple completely redesigned their encoding process w/ the release of 2.0. Even if some1 jailbroke 2.0, exctracted the app, and recompiled it to work on 1.1.4 or lower, the app store’s process of installing apps (along with the encoding on the apps themselves) will only work on 2.0

  6. w00t this will be a great weekend , can’t wait for final testing stages please join us on IRC core.osx86.hu #iphone

  7. This is great!! My question is that will there be a way to get apps such as super monkey, crash bandicoot etc for free? that would be awesome! i cant buy the apps right now cause i have a itunes card and it doesnt work in canada! i was pretty mad that i wasted money! i dont want to use a credit card!

  8. What about the windows users? Pwnage for windows? Winpwnage?

  9. True.
    Hope it’s not a case of the Mac version of Pwnage comes out and windows people have to wait months for their version!

    Does anyone have any idea when the hack will be released? I want to buy a 3G phone but in Oz they’re locked. I was to use my current SIM!!

    Looks like it’s all working etc. Wish they would release it as is as a Beta and tell people it’s still in testing. Use now if you want or wait for the final! I’d take the risk!

  10. Dev Team are said to be also working on a Windows version, but have stated that the Mac version is their priority and Win will come soon after the Mac one, least we know they are doing it, but yes Winpwnage is being worked on, it’s supposedly in a coming soon state.according to the creators site.

  11. good

  12. Mani549 says:

    i think the new appstore is not so good. can i get there costumize or Summerboard? I think Installer is much better because there are more things than on App Store

    • Installer has been available for about 9 months now, the App Store, 7 days. The developers have had a lot more time to work on jailbroken phones then they do with the official SDK (even while it was in Beta.) Give it time, the App Store will start to grow as time moves forward.

  13. I have my iphone on 1.1.4 at the moment just to keep the installer app and everything, if I update I lose all of that. Does this mean that if (when released) I get the installer app 4.0 THEN download 2.0 the installer and everything else 2.0 compatible stays?

  14. I run 1.1.4 and just updated installer to 3.1.1. Some of the apps I want to install will not load and shows the Fail Download message. I have installed the fix for 3.1, cleared the Queue, rebooted many times but still no joy with some of the apps. Customize still wont open at all even after i rebooted about 6 times. Any suggestions most welcome

  15. Mani549 says:

    yeah right but i think that the appstore will never be so great than the installer!
    My Problem is i have an IPod Touch and an iPhone…. i wanted to downgrade the itouch to 1.1.4 whith the itunes 7.5… but i can´t becuse theres an error that the new 2.0 needs the new 7.7itunes. Can somebody help me pls?

  16. mike wyatt says:

    thank god they’re updating the repository format. the original was so poorly thought out and executed. don’t know why they won’t switch over to apt-style repositories, as it is mature and stood the test of time while providing exactly what they’re looking for (small package lists & dependencies and then some)

  17. good

Speak Your Mind

*