General My new Skype Recorder Configurer (with iPad support) & update warning

Discussion in 'Jailbreaks and iOS Hacks' started by Menneisyys2, Mar 4, 2014.

  1. Menneisyys2, Mar 4, 2014
    Last edited: Mar 5, 2014

    Menneisyys2 macrumors 603

    Joined:
    Jun 7, 2011
    #1
    EDIT (Mar/05 17:43GMT):

    1, v1.2 released with an additional Respring button for easy in-app respringing after changing the options. See http://forums.macrumors.com/showpost.php?p=18845434&postcount=4

    2, the first-recording problems have turned out to be caused by a recent tweak-breaking update to both Skype apps in the AppStore. In the post at http://forums.macrumors.com/showpost.php?p=18845810&postcount=5 , I explained which versions to go back for flawless recording.

    EDIT (Mar/05 13:13GMT): v1.1 released, also in Cydia. See http://forums.macrumors.com/showpost.php?p=18844703&postcount=3 . Note that, at the bottom, in Bullet 3, there's a mini-tutorial for new users. All you need to do is following it to quickly get up to speed.

    EDIT (an hour later): I've released an app doing the hacking itself so that you don't need to manually edit /Library/MobileSubstrate/DynamicLibraries/SkypeRecorder.plist any more. Please see the second post in the thread ( http://forums.macrumors.com/showpost.php?p=18843553&postcount=2 ).

    The post also has some iOS7-specific warnings about the recorder not recording the first call after reboots/resprings.

    Original text:

    Another fine hack be me for you guys :)

    If you were lucky to purchase the $7 Call Recorder for Skype before its removal from the Cydia Store, you know it doesn't support the iPad version of Skype, only the iPhone one.

    [​IMG]
    (Cydia main page, also showing I've indeed purchased the tweak)

    I've mailed the developer twice (once on this matter, right after purchasing the tweak exactly two years ago, and the second time to ask why he had removed the tweak entirely from Cydia) but have never received any answer. (Does anyone know why he doesn't answer, anyway?) As I got fed up having to use the much inferior iPhone version on my iPads, I (after numerous hacks and tweaks) decided to try to hack the recorder myself so that it records from Skype for iPad.

    Fortunately, I had success. I was able to do this entirely by tweaking property list files, meaning
    - you don't have to re-sign the original, AppStore Skype .ipa's with your credentials to be able to hack it (to, say, change the bundle name to that of the official iPhone version) – it'd have meant a whole lot of problems (having to have a paid dev account; having to have access to a Mac; having to routinely re-sign when the prov. profile expires etc.)
    - you don't even need hexedit hacking of executables / binaries.

    All you need to do is as follows:

    1, change Root > Filter > Bundles in /Library/MobileSubstrate/DynamicLibraries/SkypeRecorder.plist from the original com.skype.skype to com.skype.SkypeForiPad as is shown in the following two screenshots:
    [​IMG]
    (original; doing the change in desktop Xcode)
    [​IMG]
    (modified)

    The need for this is simple: the two, model-specific AppStore versions (naturally) differ in their bundle ID's. The recorder app is hard-coded to only “listen to” calls made on the iPhone version, which has the bundle ID “com.skype.skype”. Instead of hacking the IPA of the iPad version to avoid to avoid all the hurdles I've outlined above, a much easier and cleaner approach is just changing the target app in this plist file.

    Note: I've changed this value in the source .DEB itself (after unpacking and, after editing, re-packing it). I haven't tested directly editing the file on the device itself, after installation. It should work (after a manual reboot). Regrettably, as it's a commercial app, I cannot provide you with the hacked DEB installer version – you'll need to do the hacking yourself.

    2, after the above hack, if you make a call in Skype for iPad, the usual SkypeRecorder directory will be created in the Documents folder of Skype for iPad. However, the /SkypeRecorder/Audio folder won't contain anything. The reason for this is, if it's a fresh install, it won't have recording enabled.

    You can't enable it by just starting the Springboard icon of SkypeRecorder – after applying the hack, all you'll see is a black screen (and the subsequent exit after a while). This also means you won't have access to the usual Enable switch either:

    [​IMG]

    Fortunately, it's very easy to enable recording. For example, you can just install the iPhone version and, before doing the above hack, just enabling recording. You can also change this value right in the DEB file, before installing (this is what I've done, along with the first tweak explained in Bullet 1.) Alternatively, if you don't want to do this, you can directly edit /var/stash/Applications<postfix>/SkypeRecorder.app/Settings.plist and change the value of the (only) “e” ("enabled") key from 0 to 1, as is shown here:

    [​IMG]
    After this, all (except for your first one) your calls will be recorded just fine.

    NOTE:

    1, As I haven't patched the SkypeRecorder.app/SkypeRecorder executable, you won't be able to list the calls using the usual SkypeRecorder icon. This isn't that big a problem as this module is broken under iOS7 (both 32 and 64 bits; the iPhone version, obviously) and can't be used to listen to calls.

    2, the original recorder (and my tweaked, iPad-friendly version) works just fine on 64-bit devices.

    3, I'll very soon release a non-destructive stereo merger for the now-separate input and output files, also usable for merging the recordings made by Audio (was: Call) Recorder. See my dedicated post at http://forums.macrumors.com/showpost.php?p=18834554&postcount=564
     
  2. Menneisyys2 thread starter macrumors 603

    Joined:
    Jun 7, 2011
    #2
    I've quickly coded an iOS app that allows for quickly changing between the iPhone and iPad version. As usual, the sources are open: https://dl.dropboxusercontent.com/u...kype ipad rec/SkypeRecorderSourceSwitcher.zip . They can be directly compiled and deployed from Xcode. As no scripting is needed to grant access / permission to anything, it'll work just fine without being installed from a DEB file, the pre/postinst scripts of which doing the root-userlevel stuff not available from "mobile"-userlevel Xcode apps.

    The DEB file, should you want to prefer DEB files and/or lack having Xcode, is here: https://dl.dropboxusercontent.com/u....changeipadskyperecorder_1.0_iphoneos-arm.deb

    Currently, only the uppermost switch (annotated below) works:

    [​IMG]

    Later, I'll also wire in the lowermost, allowing for enabling recording from this app. Before that, enable recording using other means - for example, by installing the iPhone-specific client as well, starting it and flipping the switch on the second tab, before hacking the recorder to record from the iPad version. As I've explained in my original post, the latter makes the app useless.

    Important note:

    1, Make sure you respring after flipping the switch!

    2, VERY IMPORTANT: after every reboot respring (even if it's completely independent of my hack), make a bogus call to "kick in" the recorder. In every case, under iOS7, on both 32- and 64-bit devices and even on the original iPhone version (not my hacked one), the first recording made will always be invalid. All subsequent calls will be recorded just fine. There's no such problem under previous iOS versions (tested with 6.1.0 too). Nevertheless, under iOS6, the app's merging function doesn't work either, so you can safely forget about the "SkypeRecorder" icon on the SpringBoard.

    That is, every time you reboot / respring, just give a short call to the call testing service. After that, you can be sure all your calls will be recorded until the next respring.
     
  3. Menneisyys2, Mar 5, 2014
    Last edited: Mar 5, 2014

    Menneisyys2 thread starter macrumors 603

    Joined:
    Jun 7, 2011
    #3
    Final version released, with working lower switch to en/disable recording. This means, with fresh installs, you no longer need to manually edit /Applications/SkypeRecorder.app/Settings.plist or install the iPhone version of Skype to be able to access the switch on the second tab of the standard recorder.

    It's also in my Cydia repo at http://winmobiletech.com/cy/ under the name "Skype4iPad Rec Enabler". (See the two attached images.)

    The new DEB file link, should you want to install it directly: http://www.winmobiletech.com/cy/debs/com.winmobiletech.changeipadskyperecorder_1.1_iphoneos-arm.deb

    and the source code link is the same as before. ( https://dl.dropboxusercontent.com/u...kype ipad rec/SkypeRecorderSourceSwitcher.zip )

    Again:

    1
    , remember to respring after flipping both switches

    2, on iOS5 and iOS7, do remember to make a bogus recording after any(!) kind of reboot / respring. Otherwise, your first call won't be recorded. This doesn't seem to apply to iOS6.

    3,
    if you "only" want to enable recording in the iPad version, assuming a completely fresh install, all you need to do is:

    - install the stock Skype for iPad, the stock Call Recorder for Skype DEB file and my tweak (the order is unimportant - just don't start my tweak before installing Call Recorder for Skype. Otherwise, my tweak will immediately exit and will keep doing until you install Call Recorder for Skype.)
    - start my tweak and make sure you disable the upper (iPhone mode) and enable the lower (Enable) switch. Respring.

    After this, you can safely uninstall my tweak - it won't ever be needed (unless, again, you want to disable automatic recording).

    Source for app icon: http://www.psdgraphics.com/psd-icons/old-microphone-icon-psd/
     

    Attached Files:

  4. Menneisyys2 thread starter macrumors 603

    Joined:
    Jun 7, 2011
    #4
  5. Menneisyys2 thread starter macrumors 603

    Joined:
    Jun 7, 2011
    #5
    Turns out the inability to record the first call after resprings / reboots has been caused by updates to the stock AppStore Skype apps (both of them).

    Fortunately, as I keep an enormous archive of old(er) versions, I was able to find out the last working version:

    iPhone: 4.15.329 (dec. 22)
    iPad: 4.13.428 (nov.)

    With these, the first calls are also recorded. I heavily recommend switching back to these versions (or not updating them at all) if you don't want to avoid having to make a dummy call after every single respring to make sure your calls are all recorded.
     

Share This Page