Fix 3rd Party App Issues on Official Jailbreak 1.1.3

UPDATE: The workarounds discussed here are also appliable on the latest real 1.1.3 jailbreak phones.

Starting from firmware 1.1.3, some applications (particularly SpringBoard) no longer run as root, they run as user mobile, as showing below:

root@n000b /System/Library/LaunchDaemons # ps axu
USER     PID %CPU %MEM      VSZ    RSS  TT  STAT STARTED      TIME COMMAND
root      56   1.8  0.9   273812   1052  p2  Ss+   4:45PM   0:00.44 -sh
mobile    15   0.9 19.0   317500  22624  ??  Ss    4:38PM   0:20.32 /System/Library/CoreServices/SpringBoard.app/SpringBoa
root      22   0.4  0.4   274000    432  ??  Ss    4:38PM   0:02.66 /usr/sbin/syslogd -bsd_out 1
root      13   0.0  1.1   277936   1320  ??  Ss    4:38PM   0:00.94 /System/Library/Frameworks/CoreTelephony.framework/Sup
mobile    19   0.0  1.4   285780   1704  ??  Ss    4:38PM   0:00.55 /System/Library/Frameworks/IAP.framework/Support/iapd
mobile    24   0.0  0.9   282288   1024  ??  Ss    4:38PM   0:00.22 /usr/libexec/ptpd -t usb
root      25   0.0  0.5   273276    560  ??  Ss    4:38PM   0:01.80 /usr/sbin/sshd -4D
mobile    26   0.0  1.6   290036   1920  ??  Ss    4:38PM   0:02.15 /usr/sbin/mediaserverd
mobile    35   0.0  2.5   309536   2952  ??  S     4:38PM   0:01.12 /Applications/MobilePhone.app/MobilePhone --launchedFr
root      38   0.0  0.6   273276    732  p0  Ss    4:38PM   0:01.13 /usr/sbin/sshd -4D -R
mobile    60   0.0  0.3   272876    388  ??  S     4:45PM   0:00.14 /usr/libexec/afcd --lockdown -d /var/mobile/Media -u m
mobile    12   0.0  1.1   277968   1312  ??  Ss    4:38PM   0:00.32 /usr/sbin/BTServer

This behavior change has caused alot of problems to the third party applicatoins, this article summarizes some of the issues and the possible workarounds.

NOTICE: You may not encounter these problems if you jailbreak in Nate’s method because Nate’s method changes mobile UID and GID to 0 hence applications are actually running as root. PS: This is a bad idea.

UPDATE: Don’t change mobile UID and GID to 0 permanantly, this may not comply to Apple’s future updates.

General Fix - It’s a Must

Please apply this fix first. In general, applications tend to save their data into two folders:

/var/root/Library
/var/root/Library/Preferences

To reduce the possible issues, please make these two folders world-writable:

chmod 777 /var/root/Library
chmod 777 /var/root/Library/Preferences

If the above folders do not exist, create them.

UPDATE: Sometimes your mobile folder may have wrong permissions, to be sure your mobile account has no such problems, do this:

chown -R mobile:mobile /var/mobile

This will save you from those weird problems (e.g. ‘MobileSafari doesn’t save cookies‘).

UPDATE: Seems like the following library is required by many applications (like iRadio), so better have it settled before weird problems appear:

mkdir -p /usr/local/arm-apple-darwin/lib
ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

This general rule will satisfy most of the applications. But some applications may need special fix to work properly. The following fixes are additions to this general fix.

Installer

Normally the jailbreak 1.1.3 has set the proper permission for Installer, but if for whatever reason your Installer can’t install any applications, it’s probably having the permission issue, try to fix it in a shell:

chmod 4755 /Applications/Installer.app/Installer

UPDATE: There’s Another Post which discusses some very common Installer related issues.

Term-vt100

After upgrading to 1.1.3, you may have noticed Term-vt100 no longer allows to login, it keeps asking for user and pass (5 attempts then die). This is because the /usr/bin/login needs to be SUID root but Installer didn’t set it.

If you still have SSH access, take the following steps to fix it:

chmod 4755 /usr/bin/login
mkdir -p /usr/local/arm-apple-darwin/lib
ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

After the fix, when Term-vt100 asking for password, simply enter your root password (default to alpine) to login.

UPDATE: If you have problem entering commands (session aborted after 3 some characters), please replace your /bin/sh with the following one (it’s actually a bash, compiled with new toolchain and supports history):

Working BASH With History Support

UPDATE: BTW, this new bash also solves the ‘backspace acting like a space’ issue.

If you are totally locked out (no SSH, no Term-vt100), you still have iPHUC as a last resort, read on…

Can’t Login ?

I had experienced difficulties logging to iPhone, my SSH was not working and Term-vt100 didn’t work either, I used the following method to fix it:

1. Get the master.passwd with iPHUC:

setafc com.apple.afc2
cd /etc
getfile master.passwd master.passwd
exit

2. Now edit the master.passwd file, change the mobile UID and GID to 0 (was 501) as shown below:

mobile:/smx7MYTQIi2M:0:0::0:0:Mobile User:/var/mobile:/bin/sh

3. Put the modified master.passwd back onto iPhone using iPHUC:

setafc com.apple.afc2
cd /etc
putfile master.passwd
exit

4. Reboot iPhone, start Term-vt100 (it should work now), enter the following commands:

chmod 4755 /usr/bin/login
mkdir -p /usr/local/arm-apple-darwin/lib
ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

5. Revert master.passwd back to the original (mobile UID and GID set to 501, don’t leave mobile running as root permanantly, it may not comply to Apple’s future updates) as shown below:

mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh

and put it back onto iPhone (in /etc) using iPHUC (as introduced above) and reboot.

Now in Term-vt100, use the root password (it’s alpine if unchanged) to login.

BSD Subsystem ‘passwd’ Utility

The passwd utility in BSD Subsystem is known to cause inifite SpringBoard crash, so you can’t use it to change password. A workaround is to use a simple perl line to generate the password DES hash and edit the /etc/master.passwd manually.

To set a new password, execute the following perl line:

perl -e 'print crypt("PASSWORD", "XX")."\n"'

Where PASSWORD is your new password, XX are 2 random characters.

The command will generate the DES hash of your new password, use it to replace the password hash in your /etc/master.passwd. For example, to change the mobile’s password to ‘123456‘, you replace the hash in line:

mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh

to new hash (generated by perl -e ‘print crypt(”123456″, “GO”).”\n”‘):

mobile:GOKK7/LS4S5hY:501:501::0:0:Mobile User:/var/mobile:/bin/sh

NOTE: DES only applies to the first 8 charcters of your password, so giving any longer than 8-character password is meanless.

iCosta

Check another article Install iCosta on 1.1.3.

iFlix

I’ve just tried iFlix 0.9.9b, it crashed when I wanted to save account info. I tried to find out why it crashed, so I tried to run it from shell as mobile:

/Applications/iFlix.app/iFlix

Then I got these error messages:

2008-02-19 17:08:10.542 iFlix[326:d03] *** -[NSCFArray getFileSystemRepresentation:maxLength:]: selector not recognized [self = 0x16d290]
2008-02-19 17:08:10.549 iFlix[326:d03] *** Uncaught exception:  *** -[NSCFArray getFileSystemRepresentation:maxLength:]: selector not recognized [self = 0x16d290]
Trace/BPT trap

UPDATE: Since NSCFArray in 1.1.3 doesn’t have a method named getFileSystemRepresentation, I’d assume it’s a software bug.

I don’t have a solution for 0.9.9b, if you want to use it, please use an older version.

UPDATE: Jim commented he had success by running iFlix from Term-vt100, but I can’t re-produce his success.

iRadio

iRadio needs root privilege to load in extra service, apply the following fix to make it work:

chmod 4755 /Applications/iRadio.app/iRadio
mkdir -p /usr/local/lib
ln -s /usr/lib/libstdc++.6.dylib /usr/local/lib/.

UPDATE: Further investigation shows it also requires the libgcc_s.1.dylib, I didn’t notice this because I’ve already have the library settled :)

mkdir -p /usr/local/arm-apple-darwin/lib
ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

MobileFinder

The MobileFinder’s file related functions will not work under 1.1.3 without fix, because the MobileFinder is now running as mobile, so it doesn’t have enough privileges to do things like copying/moving/removing, simply giving MobileFinder SUID root permission is not sufficient.

Before a new MobileFinder is released, a quick fix for the above issue is to SUID root for MobileFinder and some of the tools in /bin:

chmod 4755 /Applications/Finder.app/Finder
chmod 4755 /bin/cat /bin/chmod /bin/chown /bin/cp /bin/ls
chmod 4755 /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/unlink

UPDATE: giving 4755 to /bin/mkdir might have side effect. Suppose an application calls /bin/mkdir to create a folder (although it shouldn’t be programmed in this way), then tries to write data into the folder, it’ll fail because the /bin/mkdir is SUID root hence the folder it creates is owned by root, not by mobile.

OpenSSH Not Allow mobile Login

If you can SSH with root but can’t do with mobile account, edit the /etc/sshd_config, looking for the following item:

UseLogin no

Change it to:

UseLogin yes

Then restart OpenSSH (or simply reboot iPhone):

launchctl remove com.openssh.sshd
launchctl load /Library/LaunchDeamons/com.openssh.sshd.plist

You should now be able to SSH with mobile.

NOTICE: You can’t su to root because setting /usr/bin/su to SUID root does not work, reporting the following error in shell:

dyld: Library not loaded: libarmfp.dylib
Referenced from: /usr/bin/su
Reason: unsafe use of relative path libarmfp.dylib in /usr/bin/su with setuid binary
Trace/BPT trap

and this error in syslog:

Error: vmutils: failed to find non-NULL dyld_all_image_infos.infoArray structure

I assume this is a bug.

OpenSSH Respawned Too Quickly

This is not a 1.1.3-specific issue, this may happen to all versions of firmwares as long as you’ve installed the OpenSSH. The launchd keeps respawning sshd even though it has been started, the child will abort because it can’t bind to port 22, then launchd will again respawn it, and loop. This lags the iPhone and causes performance penalty.

To check if you have this issue, please enable syslog on iPhone following This Article, then check the /var/log/syslog. If the following lines appear, you have this issue:

Feb  2 21:30:03 localhost sshd[336]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Feb  2 21:30:03 localhost sshd[336]: fatal: Cannot bind any address.
Feb  2 13:30:03 localhost launchd[1]: 16/com.openssh.sshd: respawning too quickly! throttling
Feb  2 13:30:03 localhost launchd[1]: 16/com.openssh.sshd: Throttling: Will restart in 10 seconds

This issue can be fixed by forcing the sshd running in the foreground. Locate the launch daemon file:

/Library/LaunchDaemons/com.openssh.sshd.plist

Look for the line <string>/usr/sbin/sshd</string>, add a line right below it:

<string>-4D</string>

Restart iPhone to make it active. The parameter -4D tells sshd running in foreground and using only IPv4 protocol. NOTE: you may also use:

<string>-D</string>

if you prefer.

ScreenShot

This application needs to modify /Library/LaunchDaemons/nl.robota.iphone.screenshot.plist, so it must have write permission to this file. However, the permission 666 is not working here because launchd will treat the file as a dubious config and will skip it.

To fix it, try changing the file owner to mobile:

chown mobile /Library/LaunchDaemons/nl.robota.iphone.screenshot.plist

UPDATE: There’s a catch here, your snapshots are not visible in Photos even if you choose saving to /var/mobile/Media/DCIM/100APPLE/, because the filename is not compliant, it must be IMG_nnnn.JPG to be recognizable by Photos, where nnnn is a 4-digit number, besides no thumbnails will be auto created.

SIP-VoIP

This application has hard-coded the config file path, your account will be saved in /Applications/SIP-VoIP.app/accounts.xml, which means you can’t even rename the folder name. To make it save your settings, do the following:

chmod 777 /Applications/SIP-VoIP.app

If you don’t like this world-writable method, you may also do this:

chown mobile /Applications/SIP-VoIP.app

weDict

weDict stores the dictionary index cache in /var/root/Library/weDict, if for some reason this folder was not created (which is my case), apply the following fix:

mkdir /var/mobile/Library/weDict
chown mobile /var/mobile/Library/weDict
ln -s /var/mobile/Library/weDict /var/root/Library/.

weTool

This application will access the follow folders:

/var/root/Library/AddressBook
/var/root/Library/CallHistory
/var/root/Library/SMS

In case the folders do not exist, it fails quietly. So the general fix isn’t sufficient yet.

To make it work, create two symbolic links (link to AddressBook has been setup by jailbreak) as shown below:

ln -s /var/mobile/Library/CallHistory /var/root/Library/.
ln -s /var/mobile/Library/SMS /var/root/Library/.

The above symbolic links link the folder to your call history and sms folders stored in mobile account.


106 Comments

  1. jorge
    Posted February 2, 2008 at 8:55 pm | Permalink

    Thanks again. Now TodoLits works!!!

  2. jorge
    Posted February 2, 2008 at 8:57 pm | Permalink

    Vnotes doesn’t work in 1.1.3
    Any ideas?
    Thxs.

  3. Posted February 2, 2008 at 9:23 pm | Permalink

    You say that OpenSSH may be respawning to quickly, causing a performance penalty. Is this an issue only some people will have, or is it common for everyone using OpenSSH? If it is only happening to some users, is there a way to check if the issue is present on my phone?

  4. Posted February 2, 2008 at 9:34 pm | Permalink

    Refresh to see the new contents.

  5. Jorge Psi.
    Posted February 3, 2008 at 3:17 am | Permalink

    Hey George

    Mobile Finder only change contents in folder “mobile” the other folders (root, Applications etc) can not be changed, lack any command?

    Thanks for help.

  6. Terry
    Posted February 3, 2008 at 4:27 am | Permalink

    hi george
    after i upgraded dev team official 1.1.3-3 google map can locate my location, dunno why i thought 1.1.3 baseband needed ?? however hybrid map is still not working ? anyidea ? i live in Hong Kong
    many thx

  7. Posted February 3, 2008 at 11:51 am | Permalink

    Jorge,

    MobileFinder itself also needs to be SUID root:

    chmod 4755 /Applications/Finder.app/Finder

    Terry,

    No idea on map location.

  8. Terry
    Posted February 4, 2008 at 4:52 am | Permalink

    Hi george, i have problem understanding how to enable syslogd on the iphone can u please elaborate the first step, sorry for asking noob question

    Redirect Syslogd Output to a File:
    1. Create usual /etc/syslog.conf e.g.

    *.* /var/log/syslog

  9. Posted February 4, 2008 at 4:59 am | Permalink

    Uh, isn’t that clear enough? You create a file named syslog.conf in /etc/ folder, and the file has one line *.* /var/log/syslog. The word e.g. means if you are a Unix geek you know how to deal with the config file, otherwise that single line is enough.

  10. Greg
    Posted February 4, 2008 at 11:38 pm | Permalink

    Just a quick note to say THANKS for the excellent write ups. I was able to load the Dev Team 1.1.3-3 in about 10 minutes (uploaded dmg file). I’ve also fixed up a couple of those problem apps. Thanks again.

  11. joancor
    Posted February 6, 2008 at 8:59 pm | Permalink

    Hi George, on Official 1.1.3-3 the CameraPro application saves images on other directory not CameraRoll, is possible to create a virtual link… how to? Thanks.

  12. Posted February 6, 2008 at 9:07 pm | Permalink

    Thannks!! i fix the term-vt100 problem!!

  13. Zoki
    Posted February 7, 2008 at 12:13 am | Permalink

    How about a fix for iPhysics? Installing new games does not seem to work.

    Thanks in advance! :)

  14. David
    Posted February 7, 2008 at 3:52 am | Permalink

    Thanks for a lot of very sensible advice.

    One note, two questions.

    Note: Terminal has now been updated to 2.0.7 which changes it to run as mobile. No more password is required, it’s running very well for me. (1.1.3-3 Official JB)

    Here’s the download link: http://mobileterminal.googlecode.com/files/Terminal-207.zip

    Question 1: I can turn off OpenSSH 4.6p1-1 with UIctl or NetServices, but once it’s off I can only get it to restart by rebooting the phone. (Symptom: UIctl and NetServices both SHOW it’s on, but it doesn’t actually work). Any ideas?

    Question 2: Any ideas on how to change the SSH password, or are we stuck until BSD Subsystem 2.0 gets updated?

  15. David
    Posted February 7, 2008 at 2:40 pm | Permalink

    OK, I lied. I have a third question.

    Now that Terminal is running as mobile, a lot of the power is gone. I tried to su root, but when I enter the password alpine, it says “wrong password”. Looks like the same old problem in reverse to me. Any idea how to switch users?

  16. Posted February 7, 2008 at 4:18 pm | Permalink

    David, if you follow the instructions in the article to fix the Term-vt100, you should have no problem login as root.

  17. Taken
    Posted February 7, 2008 at 8:46 pm | Permalink

    Hi,

    MobileFinder doesn’t work fine on my 1.1.3 Dev T. JB, it doesn’t save Settings, any solution?

    Thanks.

  18. David
    Posted February 8, 2008 at 12:41 am | Permalink

    George:

    Yes, I know how to make vt100 work as root, but it requires a password each time unless you +s login and sh which seems unwise. With Terminal 2.0.7, there’s no password required, but for some reason su is broken. I think it’s because since you’re running as mobile, it’s a catch-22– you can’t see the directories needed to properly execute su.

    Any ideas on the other two, more pressing questions?

    Thanks.

  19. Posted February 8, 2008 at 12:48 am | Permalink

    Why do you think login SUID root unwise? It is the way the login works, it needs to check the master.passwd. Without this SUID root, it simply can’t allow anyone to login. Besides, you may of course login with mobile even on prior 2.07, just type an enter, and a login: prompt will appear, you can enter mobile and its pass to login, unfortunately, there’s a library related issue which seems forbids to set su SUID root, so you can’t su to root from mobile.

  20. Posted February 8, 2008 at 12:49 am | Permalink

    BTW, to check what’s wrong with the openssh, you need to check your syslog. To change password, there’s a fix floating around on the web, you may also use a perl script to generate the DES hashed password and put it into master.passwd.

  21. rkisling
    Posted February 8, 2008 at 1:00 am | Permalink

    Thanks for the great write-up; the changes for Mobile Finder (Finder) solved most of my issues, but Finder is not saving changes to Finder settings (e.g. show hidden files, application launch, etc.) After making changes, they go back to the default settings.

  22. Posted February 8, 2008 at 1:05 am | Permalink

    rkisling, I didn’t have problem saving MobileFinder settings, it works after those SUID root changes.

  23. JuanC
    Posted February 8, 2008 at 2:33 am | Permalink

    Hello everyone that reed this post, I have a problem, I have an OTB 1.1.3 upgraded to 1.1.3 Dev Team and it cant make calls, it can receive calls but cant do, it says the error ” Call failed” some body help me please !!!

  24. David
    Posted February 8, 2008 at 3:46 am | Permalink

    Thanks George. Looking at the syslog was indeed helpful, and I discovered that Netservices could turn SSH back on if I simply did:

    chmod +s /Applications/NetServices.app/NetServices

    And yes, your point about login SUID root is well-taken, I’m moving back to vt100

    As for the password change, I’ve seen a few claims that for things that allow a password change, but nothing confirmed. Every thread I’ve found ends with: “now I’m in an endless reboot cycle”.
    I assume that the DES salt has changed under 1.1.3, is that correct?
    This is the last issue I have with 1.1.3, sure would love to solve it!

  25. Posted February 8, 2008 at 8:49 pm | Permalink

    David, I’ve added a short perl command line to generate the DES hash, please refresh to check it.

  26. David
    Posted February 9, 2008 at 1:37 am | Permalink

    Thanks George. Apparently I’m an idiot, because I can’t make this work. I copied your perl to a text file, replaced “PASSWORD” with “anewword” and then pasted the modified line into terminal (I didn’t change the salt). Terminal output: “XX.YkB0Pp0ykI”
    I copied that into the master.passwd file where it said “smx7MYTQIi2M” for both root and mobile, then replaced the file in /etc/ with the new file. After that, I couldn’t get the phone to accept any password. Of course I kept a backup of the original, so I restored it and things worked fine again. Sorry to be so thick, but what am I doing wrong?

  27. rkisling
    Posted February 9, 2008 at 9:09 am | Permalink

    Thanks; I’ll give it another try.

  28. Posted February 10, 2008 at 12:52 am | Permalink

    David, I would assume that your file was edited under Windows which resulted in a wrong master.passwd. If it wasn’t in such a case, then I have no idea what could be wrong.

  29. David
    Posted February 10, 2008 at 1:57 am | Permalink

    George,

    Nope, this was done under Mac OS X 10.4.11. I have to admit, I don’t understand at all how the salt can be random pair. How can the decryption work without a known entitiy?

  30. Posted February 10, 2008 at 2:00 am | Permalink

    It works because the first 2 characters of the hash are exactly the salt :) e.g. as for mobile’s password, you get the salt /s, and you may crypt it with:

    perl -e 'print "\n".crypt("alpine", "/s")."\n\n"'

    and you’ll get the same result: /smx7MYTQIi2M.

    BTW, the slash (/) is also part of the default password hash, are you sure you replaced the right hash?

  31. AL
    Posted February 10, 2008 at 4:49 am | Permalink

    Hi,
    I accidentally deleted ‘master.passwd’ and now the iphone only boots into recovery mode.
    Any way to copy the file back to iphone while in recovery mode using iphuc or some other tool?
    any insights would be greatly appreciated!
    thanks!

  32. Posted February 10, 2008 at 5:04 am | Permalink

    Nope, iPHUC can’t upload files while iPhone’s in recovery mode.

  33. Greg Coogan
    Posted February 10, 2008 at 5:26 am | Permalink

    Well, this was a big help in getting iradio running, but now the ipod function is broken! When I open iPod, it says I have no music, when the sync function from itunes says all is well. Any idea how to fix?

  34. Posted February 10, 2008 at 5:31 am | Permalink

    Greg, I don’t think it breaks iPod, can you revert it and see if iPod works ? Afaik, the scenario you encountered is probably because: iTunes syncs to root, while iPod accesses in mobile. BTW, iTunes syncing issue is a known issue which has been discussed in another article.

  35. David
    Posted February 10, 2008 at 5:36 am | Permalink

    George, you’re a genius!

    You hit the nail on the head with my password issue, I had missed overwriting the slash (/) with the new password. Thanks VERY much for taking the time to explain this so clearly to me. The funny thing is, I could have just overwritten the password with the one from my old 1.1.2 backup. They’re exactly the same (not the whole file, just the password). I thought of trying that, but never got around to it.

    Thanks again for your help.

  36. G2
    Posted February 10, 2008 at 11:23 pm | Permalink

    Being that my name is also George, I’ll use G2 to avoid confusion!

    I’ve updated to 1.1.3 three times following fresh installs of 1.1.1. Each time I’ve done so, I’ve had a similar problem. What’s perplexing is that this problem has affected some apps every time I’ve upgraded and others only sometimes.

    The problem: for apps that store account information or other details (e.g. iFlix or SIP-VoIP), I have have to enter my information every time I open the program. Similarly, during one of the past upgrades, I was able to create one note in the Notes app then, each time I reopened the app, that note could not be deleted or modified and I was unable to create any new notes. Currently, I’m only having the problem with iFlix and VoIP. I realize this isn’t a ground shaking problem, but my OCD is causing me to waste way too much time trying to figure this out! Any help you can offer would be appreciated. Thanks.

  37. Posted February 10, 2008 at 11:29 pm | Permalink

    G2, I would suggest you checking the syslog following This Article and see what’s happending during your using Notes.

  38. Greg Coogan
    Posted February 11, 2008 at 12:00 am | Permalink

    Hi George,
    Thanks for the reply, I was having password issues with the SSH, and attempted to reset per your instructions. It seemed to enable apps that weren’t working such as iradio and inetflix, but did make the ipod function disappear. I think it has something to do with the files not being in the place the ipod app expects to see them. And yes, I did manage to get everything back by downgrading and getting everything jailbroken again. It looks like I will have to do without some 3rd party apps until I can figure this out. Any idea why the open ssh would change it’s own password, and why it’s not accessible from the iphone? I mean how hard could it be to get the password.

  39. Posted February 11, 2008 at 12:12 am | Permalink

    Greg, OpenSSH didn’t touch your password, and it will never do so, besides my phone works perfectly now, the issues you have encountered might be related to an unsuccessful upgrade (just my guess). I’ve done several times upgrading using dev team’s 1.1.3-3 and all succeeded, the problems I listed here are all solved.

  40. G2
    Posted February 11, 2008 at 1:44 am | Permalink

    Thanks George. I followed the instructions in the article and then checked out the output in the var/log folder which is (oddly?) named syslo (not syslog, which is what I expected). My Notes app is working fine since my last upgrade. It’s iFlix, SIP-VoIP, and MobileToDoList that won’t save any information that I input. I tried iFlix and VoIP and found that the dynamic text dat file wasn’t allowing modifications, so I modded them to 755, but it didn’t seem to help. Beyond that, I have to admit I have no idea what I’m really looking for. Forgive my ignorance. Do you have any more advice?

  41. Posted February 11, 2008 at 1:50 am | Permalink

    G2, the syslo must be caused by a typo, check your /etc/syslog.conf :) I don’t use iFlix, SIP-VoIP, but I do use MobileToDoList sometimes, I’ll check if it has the ‘unable to save’ problem you mentioned.

    BTW, did you apply the General Fix before the other fixes? It’s the first step to fix possible issues.

  42. Posted February 11, 2008 at 1:55 am | Permalink

    G2, according to my test, the MobileToDoList should work withou problem if you take the General Fix, it’s a MUST for most applications.

  43. G2
    Posted February 11, 2008 at 2:05 am | Permalink

    I performed the General Fix before posting. To be honest, I just checked MobileToDoList again, and you’re right - it does work. Thanks for bringing my attention to that. I’m not a big fan of the other ToDo program! iFlix and VoIP are still not working correctly, however. Really - thanks VERY much for your help.

  44. Posted February 11, 2008 at 2:17 am | Permalink

    G2, for iFlix to work, please try the following steps carefully:

    1. SSH login to iPhone with root
    2. Issue command:

    /Applications/iFlix.app/iFlix

    It should run w/o problem
    3. Press Ctrl-C to quit iFlix
    4. Now try start iFlix in SpringBoard

    The above steps worked for me. The point is to run it once with root account. Please tell me if it works.

    P.S. Don’t know what SIP-VoIP is, didn’t find it in Installer.

  45. G2
    Posted February 11, 2008 at 2:28 am | Permalink

    Using WinSCP, I logged in as root. I opened a console and executed iFlix. iFlix runs but then I get the console error message that says that the host has not answered for more than 15 seconds and asks if I want to abort. After waiting a while I aborted and restarted (the home button would not allow me to return to springboard). I’m not sure if it stems from the fact that I am unable to close iFlix using the console, but it has the same problem when I reboot.

  46. Posted February 11, 2008 at 2:31 am | Permalink

    So iFlix can run but you can’t login, is that right? I thought you meant you can’t start iFlix. You should be able to quit iFlix from console if it’s started from console, just press Ctrl-C, and yes you can’t quit it by pressing Home if it’s not started by SpringBoard.

    I don’t have iFlix account, where can I register one if its free?

  47. G2
    Posted February 11, 2008 at 2:33 am | Permalink

    No. iFlix and VoIP both run, and I can even use them as they are intended (no problem with logging in to either), but they don’t save my login information. VoIP gives me the initial startup screen pop-up every time I open the app. Sorry for the confusion.

  48. Posted February 11, 2008 at 2:36 am | Permalink

    G2, the iFlix saves its account info in /var/root/Library/Preferences/com.biosfire.iFlix.Accounts, make sure you have 777 permission on /var/root/Library/Preferences, I think your jailbreak should have settled it correctly but according to your description, seems like you have permission problem on that Preferences folder. Check it.

  49. G2
    Posted February 11, 2008 at 2:56 am | Permalink

    I have a private/var/preferences folder and it’s permissions are set to 777.

    I have a private/var/root/Library folder, but it did not contain a Preferences folder, so I created one and set it’s permissions to 777. Success!

    This did not fix VoIP, though. Of course I realize that, if VoIP doesn’t use that folder then creating it won’t fix the problem. Is there another folder that I can create? Just curious - how did you determine the file that iFlix used to save settings?

  50. Posted February 11, 2008 at 3:02 am | Permalink

    Hehe, I quickly reversed iFlix to find out where it stores the account settings :) For VoIP, where is the package I can download, I might give it a try later.

  51. G2
    Posted February 11, 2008 at 3:23 am | Permalink

    Brilliant! It has to be the name. You must live on a mountaintop in Nepal or something. I’m not sure how to reverse an app, but I’m definitely impressed and grateful. You can get SIP-VoIP from the Touchmods repository: http://touchmods.net/rep.xml. Much thanks.

  52. Posted February 11, 2008 at 3:45 am | Permalink

    G2, for SIP-VoIP, you need to make the application folder world-writable, ie:

    chmod 777 /Applications/SIP-VoIP.app

    Enjoy.

  53. G2
    Posted February 11, 2008 at 4:40 am | Permalink

    That’s what it was! I initially made sure that folder 755 permissions, which was apparently insufficient. Thanks so much, George. I really appreciate your help.

  54. vagos
    Posted February 11, 2008 at 5:28 pm | Permalink

    iRadio still crashes

  55. hanson
    Posted February 12, 2008 at 8:58 am | Permalink

    hi George,

    first of all, thank you for investing you time to help all of us.
    but i’ve got a BIG prob with your term-vt100 fix.
    I just did everything like you told above, and i get stuck at “Can’t Login? - Step 4″

    I changed the master.passwd file with (win xp) editor to … 0:0:: … and restarted my phone.
    terminal now does still NOT work. it shows up 3 lines ending with [process completed]
    and i’m not able to type in ANY command.

    hope you can help me, because i can’t SSH into my phone anymore, finder can’t change things and terminal is also out of work …. i’m not able to myke my phone do anything …

    i also tried to replace the /bin/sh with the backup i made before the “bash” via iPHUC but even after i replaced the sh with the original one, SSH and terminal don’t seem to work.

    the next thing i tried is reinstalling BSD Subsystem 2.0 via Installer … allways “Error - Package download failed!”

    ok so i wanted to reinstall term-vt100 … uninstalled it, wanted to install again -> “Error - Package download failed!”

    At the end of all i have NO working SSH client, NO working terminal and can’t install things with installer anymore.

    What the fuck does the “Bash” for term-vt100 change? its just one fucking file wich is replaced … o.O

    hope you can help me!

  56. hanson
    Posted February 12, 2008 at 10:38 am | Permalink

    ok, now installation of term-vt100 worked again. My current situation:
    * iphone 1.1.3, official tmob customer (germany), official dev JB
    * original master.passwd file AGAIN
    * original /bin/sh file AGAIN (replaced the bash sh file via iPHUC with the original sh file)
    * SSH (scp or sftp) allways denied
    * term vt-100 asking for pw ( after entering alpine it says something like “Login: /bin/sh: permission denied -> [process completed]” and i’m not able to type anything
    * not able to reinstall BSD Subsystem 2.0

    Please help me guys

  57. Posted February 12, 2008 at 9:47 pm | Permalink

    hanson, I guess you messed the file during your editing, the files must be in Unix-format text files, which means the end-of-line should be LF (0×0A, Unix), not CR LF (0×0D 0×0A, Windows).

    The theory behind Can’t Login? is to change mobile UID temporarily to 0 so that you can login as root hence having no permission problem, if it’s changed correctly, it should work. But if you messed the master.passwd file and turned it into a Windows text file, you can’t get a valid shell after the login so you simply can’t login.

    I would suggest you giving Vim for Windows a try, it will retain your file format, if it’s Windows style, it’s still Windows style after edit, if it’s Unix style, it’s still Unix style after edit.

    BTW, if there were no M$ around, we should have no such EOL problem. *BSD, OSX, Linux, BeOS, AIX, HP-UX, etc all use LF as EOL, only M$ doesn’t, sigh.

  58. Jeremiah
    Posted February 13, 2008 at 10:05 am | Permalink

    No WiFi
    I was wondering if you could help. I had an unlocked 1.1.2 (originally purchased with 1.0.1) phone. I tried the upgrade to 1.1.3 using the installer. It didn’t complete. Ever since my phones Wi Fi button is greyed out. I reflashed to 1.0.2 including downgrading modem and have since tried every version in between but I cannot get WiFi to come back. Also the Bluetooth can be turned on but the address remains all zeros. Any ideas?

    I did the same to another phone and it works perfectly on 1.1.3.

    Thank you in advance and also for all your hard work on this stuff. You’re the best.

    Jeremiah

  59. Larry
    Posted February 13, 2008 at 5:04 pm | Permalink

    Just wondering why not just move say the “WeDict” folder from mobile to root instead of creating a link? The reason I asked is becasue some apps create cache etc, with the links, it actually created 2 cache files, one in root and another duplicate in mobile. You can tell I’m running low on space here :) Thanks!

  60. Posted February 13, 2008 at 6:33 pm | Permalink

    Larry, it’s just my habit, I suppose there’ll be newer version of apps that directly access mobile account, in which case, I just need to copy newer apps over the old one, and it’ll work immediately without moving data files from root to mobile.

  61. Robbie
    Posted February 14, 2008 at 4:47 am | Permalink

    hi there, these are just what I’ve been looking for! Thank you.
    I made a rookie mistake that I’m hoping someone might be able to help me with, please.
    I came here looking for the fix for weTool and did a few other fixes at the same time. And in the heat of the moment, and frustration at having to repeat things a few times due to spelling errors in the typing, I accidentally typed something completely wrong
    being : chown -a /var/mobile/Library/CallHistory /var/root/Library/.
    and I’m a little worried that it might create problems, cos I don’t understand the code.

    Afterward, I types the correct code as above but with the correct ln instead of chown and it told me that the file exists, and weTool still isn’t working

    Please please could someone help?

  62. Posted February 14, 2008 at 10:43 am | Permalink

    Robbie, there will be no side effect executing ‘chown -a …’ because the parameter is invalid and the command will never be really executed. In your case, can u enter the following command and post the result here?

    ls -al /var/root/Library
  63. Robbie
    Posted February 15, 2008 at 10:34 pm | Permalink

    oh man, well, now i really can’t remember. maybe it was chown -R, because it did accept it and i got a fright.
    I don’t know how much of it you want, so i’m just putting the list of apps that came up.

    MMSApp
    Preferences
    Ringtones
    SMS –> /var/mobile/Library/SMS
    Summerboard
    VoiceDial
    Wallpaper
    weDict

    The weTool is just opening and then shutting quietly back to the springboard. After running your general command it helped with Customize and Cookies in Safari. but after i screwed up that command, and then typed the correct command (ln -s /var/mobile/Library/CallHistory /var/root/Library/.) it said presicely
    ln:/var/root/Library/./CallHistory: File exists
    hope that helps. Thankyou for your help… you’re a legend.
    R

  64. Posted February 16, 2008 at 12:59 am | Permalink

    From your ‘ls -al’ output, I think there’re at least 2 symbolic links you need to create:

    ln -s /var/mobile/Library/AddressBook /var/root/Library/.
    ln -s /var/mobile/Library/CallHistory /var/root/Library/.

    BTW, there is no CallHistory in your list, so I assume you had a typo or something.

  65. ramsay
    Posted February 16, 2008 at 9:14 pm | Permalink

    MobileScrobbler 1.4.1-1 wont install from installer. Crashes with a “Main Script Execution Failure”. I installed manually using the guide in last.fm’s website and now the app open and hangs at a white screen. BTW while installing manually it would not let me install the PrefBundle, saying it denies me permission.

    Any idea why?

  66. Shagster
    Posted February 16, 2008 at 10:30 pm | Permalink

    iradio still having problems with 1.1.3 otb jailbroken with ziphone2.2. Any fix on this. Please I need my iradio back!!!

  67. Posted February 16, 2008 at 10:47 pm | Permalink

    No problem on my phone activated by ziphone.

  68. Larry
    Posted February 17, 2008 at 3:24 am | Permalink

    I edited the sshd_config to have useLogin yes, but when I try to login as ‘mobile’, winscp gives me ‘Error skipping startup message. your shell is probably incompatible with the application (BASH is recommended)’ I can login as root fine tho. Any idea? Thanks!!

  69. Posted February 17, 2008 at 3:26 am | Permalink

    Get that sh.zip at section Term-vt100 and replace your current /bin/sh.

  70. Larry
    Posted February 17, 2008 at 3:49 am | Permalink

    I did already :( What else could be wrong? Thanks!

  71. Posted February 17, 2008 at 3:55 am | Permalink

    It should run, otherwise you’ll need to enable log to file and check the log by yourself.

  72. Posted February 17, 2008 at 4:02 am | Permalink

    BTW, did you restart openssh service (or reboot) after the sshd_config modification? You need to do so once.

  73. Larry
    Posted February 17, 2008 at 12:39 pm | Permalink

    Tried rebooting and everything.. Will try to enable the log and check, thanks!!

  74. Shagster
    Posted February 17, 2008 at 8:51 pm | Permalink

    If you guys got iradio to work is there anything else you did other than the fix above??

  75. Posted February 17, 2008 at 11:21 pm | Permalink

    From what I can see on my phone, I have the following fixes:

    /usr/local/arm-apple-darwin/lib/libgcc_s.1.dylib -> /usr/lib/libgcc_s.1.dylib
    /var/root/Library permission 777
    /var/root/Library/Preferences permision 777
    /Applications/iRadio.app/iRadio permission 4755
    /usr/local/lib/libstdc++.6.dylib -> /usr/lib/libstdc++.6.dylib

    BTW, iRadio owner is root, otherwise 4755 permission is meanless.

  76. fe
    Posted February 18, 2008 at 6:55 am | Permalink

    ok, i had the same issue as David up above (when replacing the hashed alpine pw with my own, i didn’t realize the “/” was part of the pw :P

    so

    now i’m totally locked out of my own phone, as root and mobile.

    have looked around a little for some perl script that could ‘decode’ my new hash, but all this crypto is just beyond me.
    will i have to re ziphone?
    or totally full itunes restore? grrrr

  77. David
    Posted February 18, 2008 at 10:09 am | Permalink

    fe, when that happened to me, I was able to replace the master.passwd file via USB using iFuntastic. It said it wasn’t 1.1.3 compatible, but it worked fine for me. iBrickr also worked.

  78. fe
    Posted February 18, 2008 at 12:05 pm | Permalink

    hi David, ahh, i forgot all about that iFuntastic app, it’s been a while,
    so, my only copy of that file (if i have it) will be from 1.1.1 (last time i backed everything up)
    any idea if that file is similar/compatible/exists?
    is a virgin copy of that master.passwd identical from device to device? i might be able to grab one from my wife’s phone.

  79. David
    Posted February 18, 2008 at 12:22 pm | Permalink

    There’s a 1.1.2 compatible version, 490r001 that I found by Googling, maybe there’s something newer, but I didn’t locate it. The file is the same on all 1.1.3 phones to my knowledge.

  80. fe
    Posted February 18, 2008 at 12:28 pm | Permalink

    one last question David, pulling up iFuntastic gives me a whole slew of warnings about my version of ‘MobileDevice’ being too new (2.1.0) and seems to require me to downgrade iTunes to 7.4.2 to get back down to MobileDevice 1.0.1
    Wondering what version of iTunes you ran while getting iFun to hook inot the 113 firmware phone?

  81. David
    Posted February 18, 2008 at 2:00 pm | Permalink

    fe-
    I’m running the latest version of iTunes. In order to get iFuntastic to work, you need to just temporarily replace the MobileDevice.framework located in System/Library/PrivateFrameworks/ with the version from iTunes 7.4.2. I found a copy by searching on MobileDevice_7_4_2.framework or with my copy of iFuntastic, I don’t recall. Anyway, I made sure iTunes wasn’t running, saved a backup copy of the installed version, copied the old framework file in, and then ran iFuntastic. When it runs the first time, iFuntastic stores its own copy of that, so you can restore the original and all will be well. Don’t forget to do that, or I suspect iTunes will be very unhappy. Hope that was clear enough.

  82. Posted February 18, 2008 at 7:50 pm | Permalink

    Shagster,

    I’ve finally figured out why the iRadio works for me didn’t work for you, it requires libgcc_s.1.dylib. I didn’t notice it because I have it done days ago right after I jailbreak 1.1.3. So basically, it requires two libraries:

    mkdir -p /usr/local/lib
    ln -s /usr/lib/libstdc++.6.dylib /usr/local/lib/.
    mkdir -p /usr/local/arm-apple-darwin/lib
    ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

    Enjoy!

  83. fe
    Posted February 19, 2008 at 1:13 am | Permalink

    well, the iFuntastic route seemed a little too particular for my tastes, so i opted for a fresh itunes restore (to 113), which did end up restoring the phone’s root and mobile pw to alpine, and just ran ZiPhone once again, no sweat, and this time was careful to paste over that first / in master.passwd
    simple, clean, easy.
    thanks david for your time.

  84. Jim
    Posted February 19, 2008 at 3:40 am | Permalink

    I just updated to iFlix 0.9.9b and now when I open it, it doesn’t have my account info. I try to enter it and when I click save, iFlix crashes. I’ve tried all the fixes listed here so far, but nothings worked. Any other ideas on how to get it working? I’m on firmware 1.3.3.

  85. jspade
    Posted February 19, 2008 at 6:34 am | Permalink

    Hi, I followed all the the instructions and all worked fine. but after that I ran the syncfix.sh script and synced with itues before rebooting my phone. Since I ran the syncfix script my phone is rellay messed up - the message EDIT HOME SCREEN keeps popping up!! I cant shut the phone down or do anything anymore. Any advice is greatly appreciated I dont know what to do to stop this annoying message., thanks

  86. Jim
    Posted February 19, 2008 at 4:54 pm | Permalink

    update to my last, found out from the developer that iFlix 0.9.9b has a flaw that prevents it from saving. He’s working on a fix for it. Until then I just thought of a work around that should’ve been obvious after reading this blog…. open the terminal app on the iPhone and run /Applications/iFlix.app/iFlix and iFlix will run without issues.

    @jspade - did you reset the ssh password using the passwd command? I made that mistake and it causes summerboard to crash and keep coming up with the ‘edit home screen’. I had to do a restore to get it back in working order. Luckily thanks to ziphone, jailbreaking is now soooooo easy, so it was no big deal.

  87. jspade
    Posted February 19, 2008 at 4:59 pm | Permalink

    Thanks Jim for your reply - unfortunately I was so desperate that I didnt wait for your feedback. I put the phone in restore mode and updated with itunes. now the phone is back to zero and I dont know if it was a mistake to use itunes to restore. I dont get a carrier anymore. do you have a link to a good instruction. independence was able to unlock and jailbreak. it also added the code for the sim unlock but still no edge and no carrier! I am so frustrated by now I wonna by a new iphone.. any help highly appreciated

  88. Posted February 19, 2008 at 5:16 pm | Permalink

    @Jim, I can’t repeat your workaround.

  89. Andrew
    Posted February 21, 2008 at 7:06 pm | Permalink

    Hey,

    With the MobileFinder commands, chown is actually in /usr/bin/chown. Just a heads up.

  90. Posted February 22, 2008 at 8:32 am | Permalink

    Didn’t check the latest Finder, maybe it has its own chown. But chown is traditionally part of BSD Subsystem, it’s not a 3rd party application, besides, usually, /bin is search before /usr/bin, so it doesn’t matter if there’s also a copy in /usr/bin, /bin/chown will be used anyway.

  91. James
    Posted February 28, 2008 at 2:15 pm | Permalink

    Your fixes are great. My iRadio now works, but the fix for weTool isn’t working for me. I love weTool and really want to get it working on my July 1 iPhone jailbroken 1.1.3 with iNdependence. Anyone have more thoughts about how to go about it?

    I’m still staying away from Customize.

  92. shagster40
    Posted February 29, 2008 at 9:06 am | Permalink

    James

    I read up on this page and got mine working on 113. It took a while but mine is working great. And my iradio is pumping.

    Any word on wallpaper.app on 113 for saving to the wallpaper and camara rool directory???

    Thanks

  93. Posted February 29, 2008 at 10:03 am | Permalink

    @James, check if you have all those 3 folders in /var/mobile/Library and 3 symlinks in /var/root/Library.
    @shagster40, sorry no idea, I didn’t use it, sounds like a permission issue though.

  94. G2
    Posted March 3, 2008 at 2:23 am | Permalink

    I’m back with another question. If you have the time and inclination to answer, I’d be much obliged.

    When I attempt to change the time zone, the setting doesn’t save (nor does the displayed time). So, after I change the time zone from Chicago to Honolulu and I navigate away from the general settings, I go back to the time and date settings page and it still says Chicago. Any ideas as to which file contains the settings for this? I suspect I can just realign the permissions and this will work, but I’m not sure which file to fix.

  95. hanson
    Posted March 3, 2008 at 11:39 am | Permalink

    There is a better way to fix the MobileFinder WITHOUT setting SUID to all the /bin files.
    Type following commands into commandline:

    cd /Applications
    chown -R root:wheel Finder.app
    chmod +s Finder.app/Finder

    now everything should work properly!

    hanson

  96. Stefano
    Posted March 4, 2008 at 8:14 am | Permalink

    I issued this:
    chmod 4755 /usr/bin/login
    mkdir -p /usr/local/arm-apple-darwin/lib
    ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib/.

    But now the Springboard crash and crash again! I can’t use my iPod! Do you have any ideas? Please HELP!

  97. Stefano
    Posted March 4, 2008 at 5:42 pm | Permalink

    A friend of mine gave me passwd and master.passwd from his iPod, loaded into my with scp and now works! Fine… one night without closin’ eye! The problem was the user mobile wasn’t able to login and execute springboard…

  98. Reddy
    Posted March 6, 2008 at 9:59 am | Permalink

    Download the file from following link and move the downloaded file to applications folder.

    http://software.filefactory.com/Mac/iRadio_1-0b4/Download.html

    Re-start the Iphone after moving the file and run the following scripts.
    /usr/local/arm-apple-darwin/lib/libgcc_s.1.dylib -> /usr/lib/libgcc_s.1.dylib
    /var/root/Library permission 777
    /var/root/Library/Preferences permision 777
    /Applications/iRadio.app/iRadio permission 4755
    /usr/local/lib/libstdc++.6.dylib -> /usr/lib/libstdc++.6.dylib

  99. Reddy
    Posted March 6, 2008 at 10:00 am | Permalink

    IRadio easy installation on Iphone.

    Fix for “package download failed”

  100. Rikk
    Posted March 18, 2008 at 5:29 am | Permalink

    Hi George, do you know if it’s possible to change folders and file autorization to modify it under mobile account (to add dylib in /System/Library/LaunchDaemons/com.apple.SpringBoard.plist) via a system command (popen) or bash file (.sh) ?
    Thanks, Rikk.

  101. Posted March 20, 2008 at 4:32 am | Permalink

    Nice website!!

  102. Mehdi
    Posted March 25, 2008 at 6:35 pm | Permalink

    During the process somehow the file libgcc_s.1.dylib vanished. Does anyone know how I can put it back? My iPhone doesn’t boot up anymore but I still can manage to ftp to it and see that there’s no libgcc_s.1.dylib. Please help

  103. Willogediudge
    Posted March 25, 2008 at 8:23 pm | Permalink

    Hello
    nice site

  104. Posted April 8, 2008 at 6:29 am | Permalink

    Hello! Excellent site! Searched a long ago

  105. Billy
    Posted May 15, 2008 at 5:45 am | Permalink

    Hey George,
    I have a problem with my mobile finder. Whenever I move a file from /var/root/downloads to put it in /var/mobile/downloads, i go there but it just puts it back into /var/root/downloads. Got any advice on how to stop that?