Ripdev: freebies Archives

Recently in freebies Category

Rise and Shine

| | TrackBacks (0)

We are excited to announce that most of our products (namely Kate, Russian Project, i2Reader, Greek Project, Hood and iPref) are now available in our APT repository for Cydia/Icy. Give 'em a try if you didn't yet. :)

Also, to celebrate the mark of 200,000 sold copies of our software, we are permanently dropping down the prices on selected products:

  • Kate is now being offered in 6 month subscription and Unlimited variants:
    • 6 months subscription: $20 → $10
    • Unlimited edition: $45 → $25
  • Russian Project: $21 → $15
  • i2Reader Pro: $35 → $25
We are already working on Kate for 3.0, and i2Reader went through some major rewrites to soon shine with more formats support as well as an improved FB2 parser.

We believe this marks the beginning of the new era for Ripdev as a team. Over the past year we have grown from 4 to 15 people, and are successfully developing our own solutions as well as doing some offshore development. Our software protection system Kali AP still holds the ranks of the most advanced anti-piracy solution on the market, and our free products Installer and Icy serve millions of people around the world.

This all, of course, couldn't happen without your support... so we'd like to take an opportunity and say "thank you" to everyone who supported us on the way. You rock.

-Alexander (x4), Alexey, Andrey, Anton, Cyril, Ilya, Julia, Milana, Slava, Victoria, Yuriy (x2)


| | Comments (10) | TrackBacks (0)
In the process of working on InstallerApp, we have extensively investigated how the technology behind Cydia works. Essentially, Cydia is a front-end to two open source technologies - APT and DPKG. DPKG is a system that installs and removes specially prepared packages (.deb files). APT allows these files to be organized in network "repositories" to be indexed and downloaded. Due to the highly unoptimal build of DPKG (as Jay Freeman, the author of Cydia, admits it in his article about Cydia) we had to compile DPKG and the tools needed from scratch. As a result, the same set of tools take only a little over than 1 megabyte as opposed to 32 installed by Cydia.

While testing Cydia support for InstallerApp, we of course had to use Jay's creation a lot. And unfortunately it felt slow, and overloaded. We thought, well, why not make our own front-end to DPKG? It would be compatible with Cydia, but be focused on speed, elegance and be very, very thin. So one of our programmers sat down and made up in a week a new alternative installer that we are proud to reveal to you today, named Icy.

IcyIcy 1.0 is pretty simple, and we plan on keeping it that way. It will only refresh repositories when you tell it to, and will not scroll pages of cool looking terminal text when installing or removing a package. Instead, it presents the installation process in a friendly and cool manner - enhanced with crisp black and white interface featuring icons by quite famous artist Max Rudberg. Icy uses the same DPKG that Cydia does, but without APT that handles downloading of repository indeces and packages - we chose to use a combination of libcurl and sqlite for that.

Icy only downloads headers when refreshing repositories, so it won't download again the indeces that were not changed - this saves on your traffic and makes the refreshes faster. It will pick up existing Cydia repositories and also will allow you to add more through its Add Source interface.

When we saw that Apple is moving towards supporting landscape mode more in the upcoming 3.0 firmware, we thought - hey, landscape is useful when browsing, too! So Icy supports landscape as well.

Icy will always remain free. Despite what some people may think, we are not blind and we see what tremendious job Jay (saurik) Freeman and community source repository owners (such as The Big Boss, Fabiano Confuorto and others) have done over the past year - and this is our way to say "thank you" to them. We hope you will enjoy the "new kid on the block" - and we have extensive plans on enhancing it in the future versions - for example, 1.1 will have, among other things, a dependency graph for the packages.


This being said, we will be slowly phasing out support of Installer 4 in favor of Icy and soon-to-be-announced Installer 5. Since we're a commercial entity with over 10 people in staff, we have the dedication and resources to make sure Icy and Installer exist and grow peacefully together with Cydia.

Send in the feedback - it will define what will be added to Icy in the near future.

To install Icy, proceed to its homepage:

JuiceDrop 1.1

| | TrackBacks (0)
JuiceDrop 1.1 for Mac OS X is out. This update of our free tool brings mostly the bug fixes, so we recommend you to get the new version:
    • Fixed a bug with adding of new file types.
    • Fixed a bug with case-sensitive comparison of file types when uploading to the iPhone.
    • Added automatic Software Update checking.
    • Path settings are saved per-protocol now.
    Thanks for your support!

    We're cooking up something else for Mac OS X to aid you in your everyday iPhone use. Stay tuned ;)

    PseudoSubstrate 1.0

    | | Comments (51)
    Quick digest in one line: PseudoSubstrate, a replacement for MobileSubstrate (available in Cydia) is now available for the, allowing to host and use the packages that use MobileSubstrate. The first package is also available now, named MySMS. PseudoSubstrate is used for situations when you don't have Cydia installed or prefer Installer over the former and requires no additional work from developers' side. And it's faster, too.

    And a little background for the curious minds. Often the task of many utilities are to extend the functionality of existing applications, such as SpringBoard, SMS, and so on. Of course, to extend the application, some additional code created by a third party has to be loaded into the application memory and then alter the behavior of these applications. How is this done? Altering is performed by finding one of the common functions in the application that perform the task we'd like to alter (for example, function that sends an SMS message). Then a replacement "patch" function is written that accepts the same parameters as the original, and it is "swapped" with the original one. Usually these patches do something then call the original, so essentially nothing is lost functionality-wise.

    Both Mobile Enhancer and MobileSubstrate are essentially bootstrappers that aid the patch modules in loading into the host application they are about to extend and to help them patch the functions by providing common interfaces that replace the original function with a patched one and provide facilities for calling the original afterwards. They're nothing else than that - iterating through a list of patch modules loading them one-by-one into the application you're launching and then providing some helpers to assist the modules into getting the job done (and don't conflict with other modules who potentially wish to patch the same function).

    Of course, nothing is stopping a developer for creating their own bootstrapper, and this is what some of them still do. But it's more logical to adopt a single platform and then use it.

    Mobile Enhancer exists since September 2007, and is a direct descendant (actually, in some aspects, it is an ARM port of it) of Application Enhancer by Unsanity, which is a Mac OS X library doing the same thing. MobileSubstrate was born sometime this year because apparently its author didn't like the fact Mobile Enhancer is closed source (but still free). I may be wrong in the reasoning, though, maybe the author will comment on his own.

    As it often happens, free is not necessarily better. As any quick&dirty job, MobileSubstrate does what it's made for, but the way it does it is far from effective. But hey, it's open source, anyone can make it better, right?

    You may think I might be biased, but let's look at the facts:
    • MobileSubstrate is using a simple way of patching C functions where multiple patches for the same function will conflict.
    • The way of patching Objective C methods used by MobileSubstrate is puzzling me. Instead of just swapping the IMP addresses of the functions, it does that, but also adds a new method into the class methods list. While I can understand, why (it's easier for the developer to write [self orig_patchedFunction:arg1] than gPatchedFunction(obj, sel, arg1);) but in the end it causes a separate call to objc_msgSend resulting in 50 to 400 extra instructions to be executed just to call the original function. Talk about speed, huh.
    • The way MobileSafety works (it controls the Safe Mode commonly seen in the SpringBoard) is okay for a UN*X diehard - but it relies on some assumptions it shouldn't. For example, it traps common signals sent when the app is crashed (SIGSEGV, SIGBUS, etc) but doesn't passes the extra information to next handlers in chain! Hello, this is 21st century, and we're not talking of command line tools here - it's done inside a full-fledged GUI app, and who knows, that extra information MobileSafety discards may be useful - you never know!
    • The loader itself is written in Objective C which means it is much more slower than compared to the one written in pure C - and that affects every application launch.

    Well, I guess since it still gets the job done, I couldn't blame it much. It's a great concept which got executed fairly poorly - which is understandable as the author apparently have a day job and maybe has little time and/or knowledge for hacks like this (again, UN*X is not Mac OS X).

    Either way... since MobileSubstrate is inferior to Mobile Enhancer, it was pretty easy to create a wrapper that would load MobileSubstrate libraries (using pure C, so it does it faster) and provide the functions provided by MobileSubstrate (that also work more correctly in some aspects) so the developers who use MobileSubstrate don't have to change anything in their applications - it will just magically work.


    Hood 1.1

    | | Comments (29) | TrackBacks (1)
    Slightly slower than we anticipated, but with more features than planned, Hood 1.1 hits the virtual shelves of our repository now.

    What's new? Plenty.
    • EDGE Toggle. Unlike other solutions (actually, all that I've seen around), this one disables and enables EDGE without touching the APN settings. For this reason, when you disable EDGE, the "E" icon will still be lit in the status bar (indicating that the network is up) but the respective service will be effectively down. This is much more reliable than before, and is actually the way Apple meant to implement it - the code hidden inside does the same.
    • Settings. Now you can access settings of Hood inside of Settings > RiP Dev > Hood preference pane. Very easy and convenient.
    • Process List. This feature is turned off by default, but you can enable it in the Settings. Hood will show a list of processes running on your iPhone, with the ability to quickly kill any of them by sliding your finger across the process name (much like you delete stuff in any table form on the iPhone). Be careful and don't kill stuff that you don't know, especially owned by root - or you may end up rebooting your iPhone!
    • Assignable Buttons. Remember these four button slots on top? Well, instead of creating a mess by stacking 16 icons each doing something next to each other, we are letting you choose which 4 options you want. Later on, when more toggles are added in (VPN and SSH are next in line, by the way), you will have a wider selection. Assignable in Settings, as well.
    • Really Quits Processes now. Version 1.0 only emulated the Home button press when you were hitting the Quit Application button. Which means - Safari, and others were not completely closed (this is the same for most "other" managers too). Now the applications are properly killed and the memory is instantly released - as you can see on the pie chart.
    • New Icons. Thrasos Varnava did us a big favor and made up new and improved icons for the toggles. Thank you!
    • Bug fixes. Fixed a bug with Hood staying open when you lock the device with it open (or it auto-locks). Also fixed a few other cosmetic bugs.
    • Still free! Hood was and will remain free and lightweight tool, thanks to your comments, support and suggestions.

    And now, the slides:

    Hood 1.1 is available now in the category Utilities. Enjoy.

    Hood 1.0

    | | Comments (30)
    Presenting a new free tool for your iPhone - coded entirely today in past 8 hours. :) The thing is called Hood, and it will add a quickly accessible panel to your iPhone that allows you to toggle AirPort, Bluetooth, kill active application and monitor the memory usage in real time.

    To activate, just swipe the finger across the status bar (that's where the carrier name, time, and various status icons are displayed):

    Hood 1.0
    Hood is available now in, category Utilities. Don't forget to restart SpringBoard after the installation to activate it. Thanks to Thrasos Varnava  (Cyprus) for the icons which were used as a base for the buttons. Enjoy!