Make iPhone your workstation
Cydia Apps
- OpenSSH: 建立 SSH 连接,修改默认 root 密码 ( alphine )
- APT 0.6 Transitional: apt-get 包管理工具
apt-cache search <pkg-name>
查找软件包apt-cache show <pkg-name>
显示软件包信息apt-get remove <pkg-name>
删除已安装的软件包apt-get purge <pkg-name>
删除已安装的软件包及配置文件apt-get autoremove
删除不需要的软件包(通常是由于依赖关系而安装)apt-get autoclean
删除已卸载的软件包的 .deb 档dpkg --get-selections | grep <pkg-name>
搜索已安装的软件包dpkg -s/-L <pkg-name>
查看已安装的包信息/路径
- Gawk / Vim / open / MobileTerminal
- Sqlite3: DB 相关操作
- 将 DB 转储到 ASCII 文本文件:
echo .dump | sqlite file.db > file.dump
- 重新构建数据库:
cat file.dump | sqlite3 file_new.db
- 进入 Sqlite3 后,使查询语句结果打印更直观:
.headers on
及.mode column
- 将 DB 转储到 ASCII 文本文件:
- adv-cmds: ps, finger, last, lsvfs
- lsof:
- 列出指定文件/设备/目录下被打开的文件:
lsof /var/mobile/
- 指定 PID,查看该进程打开的文件:
lsof -p 1234
- 查看指定端口有哪些进程在使用:
lsof -i:22
- 列出所有的 TCP/UDP 连接:
lsof -i tcp/udp
- 查看指定用户打开的文件:
lsof -u mobile
- 列出指定文件/设备/目录下被打开的文件:
- shell-cmds: killall, time, which
- 重启 Springboard:
killall -HUP SpringBoard
(或sbreload
)
- 重启 Springboard:
- Core Utilities: 提供了 dirname, kill, mktemp, su
- inetutils: ping, ftp 客户端/服务端
- network-cmds: ifconfig, netstat, arp, route, traceroute
- readline: 方便命令行移动
ctrl+r
搜索ctrl+a/e
移动到行首/尾ctrl+u/k
删除到行首/尾ctrl+l
清屏
- ipainstaller: 通过命令行安装 ipa 应用
- plutil ( Erica Utilities ):
- 支持设备上对 plist 文件进行操作,
plutil -show file.plist
- 支持设备上对 plist 文件进行操作,
- strings ( Binutils ):
- 打印某个文件的可打印字符串,如可用来查看浏览器 Cookies 文件内容
命令示例
由于 iOS App 运行在沙箱中,找到 App 具体的安装路径:
cd /var/mobile/Applications
my_dir=$(dirname `find . -name 'test.app'`)
cd $my_dir
打印 Info.plist
中的 Bundle Version
字段
plist="my.app/Info.plist"
version=$(plutil -show $plist 2>&1 | grep 'CFBundleVersion' | cut -d"\"" -f2)
通过 dpkg-query
打印所有安装的软件包及大小、并排序,最后通过 awk
计算总大小
dpkg-query -Wf '{$Install-size}\t${Package}\n' | sort -n | awk '{sum += $1; print} END {print sum, "total"}'