Monday, March 4, 2013

It's been a while...

Totally forgot I had this thing. Guess I should do this.
So just spent the last few hours making my brother's ipad3 usable for normal people. He prefers the Asus transformer series, and I can't blame him. Android is much easier to use, and apps are much better overall. I am also very disappointed with the overwhelming quantity of "lite" apps flooding the marketplace. As it is, the majority of utility apps are just very poorly made flash/html code ports. It makes little sense as to why the apps even exist, and don't just launch a goddamn url with an auth token to a webserver. Atleast then you wouldn't have to download/install/update the piece of shit app you (paid?) for. If anybody doesn't know, iOS firmware is completely unusable to anybody wanting to do anything useful or productive in any way whatsoever. Attempting to do any kind of real file management is pretty much futile - unless you like bending over backwards for crappy software like itunes, or using shitty cloud service software (dropbox? no thanks)... Now, iTunes was great and all when first and second generation iPods were around, but times are a changin'. And cloud storage has its place.. if privacy isn't important.. and you are like -- sharing some files with a group or the public. Even if you are a cloud fanboy, you will still be waiting extremely long periods of time to transmit large files, and some files you may want (or need) to transmit, may not be transmittable by your cloud service provider due to one or more reasons (filetype, copyright, etc.).

A simple solution, is to run a lightweight fileserver on the machine itself. SMB works good and clients are generally built in and fully functional on most operating systems. However, SSH, FTP, or even HTTP could also be used.

- Easily access files (read, write, delete).
- Easily organize files - in folders.
- Access files from any PC, at any time, wirelessly (as long as the thing isn't powered down).
- Easily toggle sharing on or off in seconds.
- Password protected.

So, being stuck with Apples restrictive filesystem, there is some minor work to be done, and it's really not THAT bad.
1) upgrade to latest iOS that is still jailbreakable (6.1.2 as of now)
2) jailbreak device (evasi0n)
3) use cydia to install goodies
4) install desired apps
5) setup symlinks for sharing

There is a ton of stuff in cydia, here's some stuff I found useful:
- ifile: easily manage the filesystem, create symlinks, and edit configs.
- SBSettings: quick access to brightness, respring, samba, and various other cydia apps.
- Samba/Samba Core: SMB/windows filesharing, works great over wifi with pretty much any OS.
- InfinityTask: allow apps to run in the background/complete downloads while multitasked or while the system is locked without being killed.
- ResetAllKiller: prevents the reset all from being used, which will mess up a jailbreak boot.

Interesting utility/bandwidth conservation things:
- Firewall IP: allows you to block/allow traffic from specific apps (popup per app).
- simple editing of /etc/hosts with adblocking redirects to block all advertising. SBSettings doesn't like it, but it doesn't cause many problems if you set up SBSettings first.

If you are looking into using third party apps, or other stuff...
- AppSync for iOS 6: allows you to sync any app between itunes and the device (even unsigned ones).
- Vshare (appVV): allows you to easily find various versions of apps, third party apps, or even cracked apps.
- ipa installer console / ipa installer: allows you to install ipa packages directly on the device (vshare can do this as well).

To get samba running, you will have to edit smb.conf in /etc/samba
make sure to have follow symlinks, and wide links on. Also, force user and force group does not work
you can make the edits in ifile, your install something like afc2 and iPhoneBrowser to access the filesystem:

debug level = 0
log level = 0
; listen to WiFi networks only
interfaces = en0
bind interfaces only = yes
local master = no
map archive = no
map hidden = no
load printers = no
; disable the next line if you don't need MAC OS X GUI access
unix extensions = no
follow symlinks = yes
wide links = yes

path = /User/Documents/samba
read only = no
browsable = yes

path = /User/Documents/multimedia
read only = no
browsable = yes

path = /User/Documents/text
read only = no
browsable = yes

Create the directories.
Then you can start symlinking your app directories to the samba shares with iFile fairly easily (use copy / link with the GUI).
The /var/mobile/Applications/BLAH/Documents directory is what you are after, so symlink that into your samba shares.
Make sure the directory permissions are correct. Samba runs as root when started by the GUI, but it should work fine for most cases.

I should mention, that should you uninstall the application, the symlink will become broken/dangling, and you will have to remove it. You can write a script to remove broken symlinks, or do it manually. Re-installing the app will create a new path. Perhaps there is a better method, but I don't know it :S OpenSSH is a great option for advanced users. Unfortunately not all machines and devices come equipped with ssh clients. It also exposes a bit more of the filesystem, but allows for easier file transfers and permission management.