297 46 12MB
English Pages 482 Year 2009
iphone hacks
Tips & Tools for Unlocking the Power of Your iPhone & iPod touch
David Jurick Adam & Damien Stolarz
MACINTOSH/WINDOWS
iphone hacks With iphone hacks, you can make your iphone do all you’d expect of a smartphone—and more. Learn tips and techniques to unleash little-known features; ind and create innovative applications for the original iphone, iphone 3G, and ipod touch; and unshackle these devices to run everything from network utilities to video game emulators. OVER
100 TIPS
iPhone & iPod touch!
for
iphone hacks explains how to set up your iphone the way you want it, and helps you give it capabilities that will rival your desktop computer. this cunning handbook is exactly what you need to make the most of your iphone.
ABOUT THE AUTHORS David Jurick is the iT manager at a digital entertainment/new media company in santa Monica, california. he has extensive experience in networking, computer hardware, software, scripting, and Unix/Linux-based operating systems. Adam Stolarz is an avid pc gamer and computer expert with an electronics background. a contributing author to o’Reilly’s Car PC Hacks, he’s currently studying political science and Japanese at california state University, northridge. Damien Stolarz is a partner at perceptive Development, a Los angeles-based software consultancy that develops iphone applications. he has authored several books including Car PC Hacks and Mastering Internet Video (addison-Wesley).
Tips & Tools for Unlocking the Power of Your iPhone This book will teach you how to: »
Import your movie collection, sync with multiple computers, and save YouTube videos
»
Remotely access your home network, audio, video, and even control your desktop
»
Develop native applications for the iPhone and iPod touch on Linux, Windows, or Mac
»
Check email, receive MMS messages, use IRC, and record full-motion video
»
Mirror the iPhone display on a television using video output
»
Make your iPhone emulate old-school video game platforms and play classic console and arcade games
»
Integrate your iPhone with your car stereo
»
Connect keyboards, microcontrollers (such as Arduino), and serial devices to your iPhone—without “jailbreaking”
Proven techniques from the experts at O’Reilly Media’s MAKE magazine ISBN: 978-0-596-51664-2
y(7IA5J6*PLQQOM( +\!%!&!}!;
US $34.99 CAN $34.99 isBn-13: 978-0-596-51664-2
iphone hacks First edition
david Jurick, adam & damien Stolarz
BEIJING • CAMBRIDGE • FARNHAM • KÖLN • SEBASTOPOL • TAIPEI • TOKYO
iphOne hacKS by david Jurick, adam & damien Stolarz copyright © 2009 David Jurick, adam stolarz, and Damien stolarz. all rights reserved. printed in U.s.a. published by Make:Books, an imprint of Maker Media, a division of o’Reilly Media, inc., 1005 Gravenstein highway north, sebastopol, ca 95472. o’Reilly books may be purchased for educational, business, or sales promotional use. For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate @oreilly.com. Print History
Publisher: Dale Dougherty
april 2009: First edition
Associate Publisher: Dan Woods Executive Editor: Brian Jepson Editor: adam Flaherty Creative Director: Daniel carter Designer: Gretchen J. Bay Production Manager: Terry Bronson Copy Editor: nancy kotary Indexer: patti schiendelman Cover Photograph: Michael James smith (www.myspace.com/genericamericanphoto)
The o’Reilly logo is a registered trademark of o’Reilly Media, inc. The hacks series designations, iPhone Hacks, and related trade dress are trademarks of o’Reilly Media, inc. The trademarks of third parties used in this work are the property of their respective owners. important Message to our Readers: The technologies discussed in this publication, the limitations on these technologies that technology and content owners seek to impose, and the laws actually limiting the use of these technologies are constantly changing. Thus, some of the hacks described in this publication may not work, may cause unintended harm to systems on which they are used, or may not be consistent with applicable user agreements. Your safety is your own responsibility, including proper use of equipment and safety gear, and determining whether you have adequate skill and experience. electricity and other resources used for these projects are dangerous unless used properly and with adequate precautions, including safety gear. These projects are not intended for use by children. Use of the instructions and suggestions in iPhone Hacks is at your own risk. o’Reilly Media, inc. and the authors disclaim all responsibility for any resulting damage, injury, or expense. it is your responsibility to make sure that your activities comply with applicable laws, including copyright.
isBn-13: 978-0-596-51664-2
To Steve Jobs
cOntentS
iii
iv
iphone hacks
Contents PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix How to Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x How This Book Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Conventions Used in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii We’d Like to Hear from You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Credits
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiv
01 IPHONE AND IPOD TOUCH HACKING BASICS . . . . . . . . . . 2 hacK 1.01:
Learn the Language of iPhone Hacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
hacK 1.02:
Discover Your iPhone’s Hackability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
hacK 1.03:
Open Your iPhone or iPod touch to Customization by Jailbreaking . . . . . . . . . . . . . . . 14
hacK 1.04:
Install Third-Party Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
hacK 1.05:
Manipulate Your iPhone’s Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
hacK 1.06:
Back Up Your iPhone’s Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
02 TROUBLESHOOT YOUR IPHONE OR IPOD TOUCH . . . . . 36 hacK 2.01:
Triage Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
hacK 2.02:
Force Quit an iPhone Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
hacK 2.03:
Reboot Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
hacK 2.04:
Restore and Recover Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
hacK 2.05:
Enter DFU Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
hacK 2.06:
Get Quality Support with iPhone Hacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
03 MESSAGING AND COMMUNICATION . . . . . . . . . . . . . . . . 58 hacK 3.01:
Get the Most from iPhone Email. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
hacK 3.02:
Unleash the Full Power of Texting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
hacK 3.03:
Text Your iPhone with Your Desktop Instant Messenger . . . . . . . . . . . . . . . . . . . . . . . . . 70
hacK 3.04:
Enable MMS Picture Messaging on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
hacK 3.05:
Increase the Duration of Your iPhone’s SMS Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
hacK 3.06:
Use Instant Messaging on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
hacK 3.07:
Connect to IRC on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
cOntentS
v
04 MEDIA AND DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 hacK 4.01:
Carry a Portable File Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
hacK 4.02:
Convert Videos, DVDs, and Blu-Ray Discs to iPhone- and iPod touch–Ready Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
hacK 4.03:
Present PowerPoint on a Projector or TV Using Your iPhone or iPod touch . . . . . . . 101
hacK 4.04:
Sync Music and Videos from Multiple Computers to Your iPhone . . . . . . . . . . . . . . .109
hacK 4.05:
Stream Music and Videos from Your Computer to Your iPhone . . . . . . . . . . . . . . . . . . 110
hacK 4.06:
Read News, RSS, and Websites Quickly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
hacK 4.07:
Read e-Books on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
hacK 4.08:
Take Panoramas and Nightshots with Your Built-in Camera. . . . . . . . . . . . . . . . . . . . . 128
hacK 4.09:
Record and Upload Videos with Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
05 GAME EMULATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 hacK 5.01:
Understand the Homebrew and Emulation Scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
hacK 5.02:
Play Nintendo Games on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
hacK 5.03:
Play Sega Genesis Games on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . . . . . . 141
hacK 5.04:
Play Nintendo Game Boy Games on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . 143
hacK 5.05:
Play Super Nintendo Games on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . . . . 144
hacK 5.06:
Play Nintendo Game Boy Advance Games on Your iPhone or iPod touch . . . . . . . . . 145
hacK 5.07:
Play PS1 Games on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
06 TELEPHONY HACKS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 hacK 6.01:
Use GSM Codes to Conigure Phone Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
hacK 6.02:
Add Speed Dial with Custom Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
hacK 6.03:
Access Your Asterisk Voicemails on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . 165
hacK 6.04:
Access Your Vonage Voicemails on Your iPhone or iPod touch . . . . . . . . . . . . . . . . . . 166
hacK 6.05:
Use Voice over IP on Your iPhone or Second-Generation iPod touch . . . . . . . . . . . . . 167
hacK 6.06:
Get Visual Voicemail on T-Mobile or Other Carriers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
hacK 6.07:
Automatically Translate Your Voicemails to Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
hacK 6.08:
Update Twitter or Your Blog with a Phone Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
hacK 6.09:
Create a Podcast While Driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
07 UNLOCKING AND ACTIVATION . . . . . . . . . . . . . . . . . . . . . 182 hacK 7.01:
Buy an Unlocked iPhone from Apple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
hacK 7.02:
Unlock Your iPhone with Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
hacK 7.03:
Unlock Your iPhone with a SIM Hack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
hacK 7.04:
Conigure Your iPhone After Unlocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
08 CUSTOMIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
vi
iphone hacks
hacK 8.01:
Add Custom Ringtones to Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
hacK 8.02:
Skin Your iPhone and Change System Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
hacK 8.03:
Change Your Boot Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
hacK 8.04:
Enhance Autocorrection with Address Book Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
hacK 8.05:
Skin Your iPhone Externally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
hacK 8.06:
Hide Unwanted Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
09 NETWORK HACKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 hacK 9.01:
Use Your iPhone or iPod touch as a Trackpad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
hacK 9.02:
Control Your Desktop or Laptop with Your iPhone or iPod touch . . . . . . . . . . . . . . . 220
hacK 9.03:
Control Your iPhone or iPod touch with Your Desktop or Laptop . . . . . . . . . . . . . . . . 221
hacK 9.04:
Connect to Your iPhone with a Secure Shell (SSH) Terminal Program. . . . . . . . . . . .222
hacK 9.05:
Administer Remote Servers with a Terminal Program . . . . . . . . . . . . . . . . . . . . . . . . . .233
hacK 9.06:
Mount the iPhone Filesystem on Your Mac with AppleTalk or SSH . . . . . . . . . . . . . . .237
hacK 9.07:
Easily Manage All the Network Services on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . 240
hacK 9.08:
Track and Recover Your iPhone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
hacK 9.09:
Track, Recover, and Control Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
hacK 9.10:
Make Your iPhone or iPod touch a Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
hacK 9.11:
Connect to Your iPhone or iPod touch from Outside Your Home/Ofice Network . .246
hacK 9.12:
Print from Your iPhone to Any Fax Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
hacK 9.13:
Tether Your iPhone’s EDGE/3G Network to Your Laptop . . . . . . . . . . . . . . . . . . . . . . .254
hacK 9.14:
Run Applications in the Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
hacK 9.15:
Keep Your Wi-Fi Running All the Time on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . .256
hacK 9.16:
Trick Your Wi-Fi Apps into Working Over 3G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
10 APPLICATION HACKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 hacK 10.01:
Create Music with the iPhone and iPod touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
hacK 10.02:
Triangulate Distances with Your Built-in Camera and GPS . . . . . . . . . . . . . . . . . . . . . 266
hacK 10.03:
Add More Ways to Sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
hacK 10.04:
Alter Your Voice and Outgoing Caller ID on the iPhone . . . . . . . . . . . . . . . . . . . . . . . . . 271
hacK 10.05:
Use Your iPhone as a Media Remote Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
hacK 10.06:
Make Your iPhone or iPod touch Talk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
hacK 10.07:
Copy and Paste Between Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
hacK 10.08:
Download YouTube Videos Instead of Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
hacK 10.09:
Acquire New Media with dTunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
hacK 10.10:
Back Up Your Jailbroken Apps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
11 DEVELOPMENT HACKS . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 hacK 11.01:
Turn Command-Line Scripts into iPhone Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282
hacK 11.02:
Edit Mac OS X Property Lists (plists) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
hacK 11.03:
Create Periodic Tasks that Run in the Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
hacK 11.04:
Manipulate iPhone Application Databases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
hacK 11.05:
Sync Your Call Log with iCal on Mac OS X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
hacK 11.06:
Choose Between the Apple SDK and Open Tools for iPhone Development. . . . . . . . 311
hacK 11.07:
Develop iPhone Applications with Apple’s SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
hacK 11.08:
Self-Sign Your SDK Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
hacK 11.09:
Manually Install Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323
hacK 11.10:
Use a Virtual Machine for Building iPhone Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
hacK 11.11:
Develop iPhone Applications on Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
hacK 11.12:
Restart Your SpringBoard to Reveal Newly Installed Applications . . . . . . . . . . . . . . . 331
cOntentS
vii
hacK 11.13:
Create a UI Without Interface Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
hacK 11.14:
Use API Explorer to Peek Into Built-in Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
hacK 11.15:
Access Private APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
12 HARDWARE HACKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 hacK 12.01:
Adapt Existing Headphones to Work with the Original iPhone. . . . . . . . . . . . . . . . . . 348
hacK 12.02:
Make the Original iPhone Dock Work for the 3G iPhone . . . . . . . . . . . . . . . . . . . . . . . 350
hacK 12.03:
Make Noise-Cancelling iPhone Headset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
hacK 12.04:
Use the iPhone Camera for Close-Ups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
hacK 12.05:
Watch Your iPhone or iPod touch on a Hotel TV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
hacK 12.06:
Mirror or Output the iPhone Screen with TV-Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
hacK 12.07:
Connect the iPhone to a Car . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
hacK 12.08:
Use Your iPhone with Gloves On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
hacK 12.09:
Peek Inside Your Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
hacK 12.10:
Disassemble and Reassemble Your Original iPhone. . . . . . . . . . . . . . . . . . . . . . . . . . . .376
hacK 12.11:
Disassemble and Reassemble Your iPhone 3G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
hacK 12.12:
Disassemble and Reassemble Your Original iPod touch . . . . . . . . . . . . . . . . . . . . . . . . 391
hacK 12.13:
Disassemble and Reassemble Your Second-Generation iPod touch . . . . . . . . . . . . .395
hacK 12.14:
Learn the Pinouts of the iPhone and iPod touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
hacK 12.15:
Make an External Camera Illuminator for Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . 409
hacK 12.16:
Control the Physical World from Your iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
hacK 12.17:
Charge Your iPhone from (Almost) Any Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
hacK 12.18:
Connect Your iPhone to a Serial Port Using a Dock Connector . . . . . . . . . . . . . . . . . .424
hacK 12.19:
Remote Control Your iPhone or iPod touch with the Dock Connector . . . . . . . . . . . 426
hacK 12.20:
Read Signals from an Infrared Remote Control—Without Jailbreaking! . . . . . . . . . 430
hacK 12.21:
Connect a Serial Device to Your iPhone—Without Jailbreaking! . . . . . . . . . . . . . . . . 434
hacK 12.22:
Connect a Keyboard to Your iPhone—Without Jailbreaking! . . . . . . . . . . . . . . . . . . . 442
hacK 12.23:
Use Your iPhone to Go Back in Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .447
index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
viii
iphone hacks
PrefACe how important is mobile telephony? over 2 billion people on earth—over 1/4 of the world’s population—have mobile phones. and apparently half of those upgrade frequently—over a billion mobile phones are sold each year. But calling the iphone a “telephony” device is shortsighted. The iphone is a mobile computing device. and really, if you study computing trends, you’ll soon realize the iphone is simply a computer. The story of the ipod—apple’s previous great personal device play—is a story that will be studied at business schools for the next hundred years. apple sat back for several years, watching the Mp3 and portable media player market. They let things mature a bit, and then entered the market with what became a “category killer,” a media player that outsold everything and became the very deinition of portable music. Then they launched a digital music marketplace, that as of this writing is the #1 music store in the U.s.—beating every brick-and-mortar cD outlet. can they do it again? With the potential size of the emerging smartphone market, it’s hard to predict a world where the ipod is as wildly successful, in terms of market share, as the ipod was. still, apple’s numbers are impressive. in 2008 they sold about 10 million iphones1. compared to the billion phones sold worldwide2 each of the last two years, that’s close to 1% of all phones sold—not just smartphones. not bad for a new entrant with a high-priced gadget. apple beat RiM (Blackberry) sales in 2008 as well and has become the third largest mobile phone supplier by revenues3. But this isn’t an investment book, this is a book about hacking the iphone.
computing and communication since the dawn of smartphones, journalists have been bemused about mobile convergence: “This phone can take pictures, check your email and—surprise—even make phone calls.” But their sarcasm belies a lack of foresight and perspective on telephony. The multimodal nature of mobile communication encompasses voice, text, pictures, and video in a myriad of combinations. conference calling, voice mailing, multiparty calling, hunt groups, broadcast texting, email reading, picture and video broadcasting, social networking, picture texting, microblogging, podcasting, videoblogging, reading, conferencing, real-time language translation, and telepresence are just a few of the ways that communication is being transformed by the emergence of the computerized phone. The points we’re trying to make, with exclamation marks, are: • • • •
Mobile phones are permeating the global culture Everyone will soon have a smartphone Mobile phones are the future of computers Mobile phones will fuel the next Internet boom
1. apple: www.apple.com/pr/library/2009/01/21results.html 2. Gartner research 3. Jobs, Q3’08 earnings call preFace
ix
Why is this? one theory we’re presenting is that anything that makes communication more “telepathic”—transcending time and space—is likely to ind universal afinity with humans. Thus, any device or technology that fundamentally enhances human communication will expand far beyond general expectations until everyone on earth uses it. artists envision the future of culture in general. science iction writers envision the future of culture and technology, speciically. But who prototypes that future? hackers. please enjoy the book.
how to Use this Book You can read this book from cover to cover if you like, but most hacks stand on their own, so feel free to browse and jump to the different sections that interest you most. if there’s a prerequisite that you need to know about, a cross-reference will guide you to the right hack.
how this Book is Organized This book is intended to be a compendium of hacks for both the iphone and the ipod touch. While there are numerous books and sites that re-present the features inherent in the iphone, this book collects many of the cleverest and least obvious innovations and presents them for easy application. Chapter 1, iPhone and iPod touch Hacking Basics There’s a lot of information out on the Web about “hacking” the iphone and ipod touch, but it isn’t well sorted and not all of it is reliable. in chapter 1 you’ll quickly learn the lingo so you can make immediate sense of the wealth of iphone literature online. You’ll also learn how to simply, safely, and reliably “jailbreak” your phone to access a whole world of features and applications. Chapter 2, Troubleshoot Your iPhone or iPod touch some people are concerned that hacking puts them outside the reaches of tech support unless they have a “hacker” friend at close hand. Far from it! if you have the right skills and the right support, you can hack with security and peace of mind. in chapter 2 you’ll learn the basic iphone “cpR” techniques cold. You’ll even learn how to get a referral to an online specialist if complications arise. Chapter 3, Messaging and Communication The iphone is an unusually capable communication device, but apple hasn’t satisied every communication need. chapter 3 shows you how to expand the iphone to use a wide range of multimedia messaging, email, and internet chat systems. Chapter 4, Media and Data The days of physical media, such as cDs and DVDs, are fading. Many people have already made the transition, and most of their personal and entertainment media is only in digital form on their hard drive, or “in the cloud” online. in chapter 4 you’ll import your DVD collection and convert it for the iphone, and then start getting your information diet—Rss feeds, news, and books—on your phone.
x
iphone hacks
Chapter 5, Game Emulation The power of the iphone is such that it can emulate almost every classic video game system since pong. in chapter 5 you’ll learn how to take all the arcade games you have, from nintendo, sega, GameBoy, and original playstation, and make them run on the iphone or ipod touch. Chapter 6, Telephony now that voice is just data, everything we’ve learned from the internet can be applied to our telephone calls. chapter 6 will show you how to use beyond Voice over ip on the iphone and then cleverly combine voicemail, sMs, and voice-to-web technologies and make the most of the phone as a communication tool. Chapter 7, Unlocking and Activation The iphone is designed to work on any GsM carrier in the world. and with some coaxing, it really can. in chapter 7 you’ll learn all the techniques for unlocking the iphone to work with a siM card from the carrier of your choice. Chapter 8, Customization From background images to skins to system sounds to ring tones, customization has long been a mainstay of operating systems and mobile phones. in chapter 8 you will learn how to make your iphone your iphone. Chapter 9, Network Hacks With Wi-Fi and 3G internet access, the iphone has better network connectivity than most laptops on the market today. in fact, in good 3G coverage areas, it’s as if the iphone had a portable T1 internet connection. The vast possibilities of this always-on networked pocket device are not lost on hackers. in chapter 9 you’ll learn dozens of clever applications of near-ubiquitous connectivity, such as network remote control, Gps tracking, web serving, and laptop tethering. You’ll also learn how to bend a few rules, like running programs in the background on your iphone and using Voip over your 3G connection. Chapter 10, Application Hacks While the app store application count has reached some astronomical number, only a handful of applications are innovative enough to be considered hacks. in chapter 10 you’ll learn how to make music, measure, and manage media with your phone. You’ll also meet a group of app store rejects that were too clever for their own good. Chapter 11, Development Hacks computer programmers around the world are thinking to themselves “Maybe i should learn a bit about mobile application development.” But for many, the learning curve of getting used to the Mac and objective-c has deterred them from pursuing iphone development. in chapter 11 you’ll learn that programming the iphone is far easier than it seems. any casual shell scripter will ind they can make and distribute a useful and functional application in less than an hour. professional developers will get a crash-course in iphone development options. Chapter 12, Hardware & Accessories Today, the mobile phone is the computer. and computers beget accessories. chapter 12 introduces the wide range of hardware connectivity possible with the iphone and ipod touch. in this chapter you’ll learn how to hook an iphone to a car and to a large screen television. You’ll learn how to perform surgery on the iphone; how to wire it up to any serial device; and how to make it control an R/c car. You’ll even learn how to build what is for some the “holy grail” of iphone connectivity—an external keyboard. Remarkably, for most of the hacks in this chapter, no jailbreaking is required.
preFace
xi
conventions Used in this Book This book uses the following typographical conventions: Italic Used to indicate new terms, URLs, ilenames, ile extensions, directories, and folders. $ The Unix/Linux shell prompt you see when logged as a normal (mortal) user. # The Unix/Linux shell prompt you see when logged as root (the superuser). Constant width
Used to show code examples, verbatim searches and commands, the contents of iles, and the output from commands. Constant width bold
Used in examples and tables to show commands or other text that should be typed literally. Constant width italic and bold italic
Used in code and commands to show text that should be replaced with user-supplied values. pay special attention to notes set apart from the text with the following icons:
d
This icon indicates a tip, suggestion, or general note. It contains useful supplementary information or an observation about the topic at hand. This icon indicates a warning or note of caution.
The slider icons, found next to each hack, indicate the relative complexity of the hack: easy: intermediate: expert: also, unique to this book, is the “jailbreak” icon: While some hacks can be done with a stock iphone, many require the factory irmware to be altered (“jailbroken”) to allow new software on the device, as explained in [Hack #1.03]. The jailbreak icon indicates whether jailbreaking is needed.
Using code examples This book is here to help you get your job done. in general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a signiicant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. selling or distributing a cD of examples from o’Reilly books does require permission. answering a question by citing this book and quoting example code does not require permission. incorporating a signiicant amount of example code from this book into your product’s documentation does require permission. We appreciate, but do not require, attribution. an attribution usually includes the title, author, publisher, and isBn. For example: iPhone Hacks, by David Jurick, adam stolarz & Damien stolarz. copyright 2009 o’Reilly Media, inc., isBn: 978-0-596-51664-2. if you feel your use of code examples falls outside fair use or the permission given here, feel free to contact us at [email protected]. xii
iphone hacks
acknowledgments Thanks to everyone at o’Reilly Media who helped make this book happen, including Brian Jepson and adam Flaherty for their editing; nancy kotary, copyeditor; Terry Bronson, production manager; Gretchen Bay, designer; patti schiendelman, indexer; and ed stephenson, cover copywriter. We’d like to speciically thank Brian Jepson and adam Flaherty for their unique contributions. Brian exhibited unlappable patience while managing what seemed like an interminable project. his mentoring on writing craft and geek credibility were invaluable. adam Flaherty’s decisive editing tremendously improved the quality of the book, and his “give me three never-been-done-before hacks” challenge pushed the team to far exceed their original goals. and for the whole team, the care, professionalism, craft, and disciplined crunch-time effort that went into inishing this book is deeply appreciated by the authors. David Jurick: i’d like to thank my parents for their unconditional support; my brother and sister; Damien stolarz for all the mentoring he’s given me while growing up; aaron kinney; Jason Levine; kyle culkin; illian McJohnson; all of the 40zoners (chang, eric, peter, Ross, allison, Micah, karen); amanda scharpf; kappa sigma; christian sanz for having so much faith in my abilities; everyone at Deca for always laughing at my jokes; and last but not least, the all powerful creator of the universe—science. adam stolarz: Thanks to my mom for support, encouragement, and the sharing of pains; thanks to my dad for the work ethic; Damien for business and travel; Matthew for music and movies; and Jenny for art and humor. additional thanks, in no particular order, to the Dodge stealth, the chariot, Rims, Lucky 13, the Lawltima, the honda civic, Verwend, and of course, the nQn. shout outs to Team entropy, perdition Gaming, phono, Jtubez, Jookasaurus, augury, Brea/Lorea, and halik/ kilah/Zikah. and a very special thanks to Luke: it’s complicated. Damien stolarz: The writing of this book has been an intense, watershed experience for me personally. i would like to thank stephen Brown, James Rossfeld, and steve Waterhouse for supporting me all these many months that i’ve slaved away on this book. i’d like to also thank my brothers adam and David for tolerating my zeal. i’d like to thank steve Jobs for being so on his game. and i must thank my wife, to whom i now owe 1.5 years of evenings and weekends. i will paint the trim on the front of the house now.
We’d Like to hear from You please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc./Maker Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 (800) 998-9938 (in the United States or Canada) (707) 829-0515 (international or local) (707) 829-0104 (fax) We have a web page for this book that lists errata, examples, and any additional information. You can access this page at: www.makezine.com/go/iphonehacks. To comment or ask technical questions about this book, send email to [email protected]. Maker Media is a division of o’Reilly Media devoted entirely to the growing community of resourceful people who believe that if you can imagine it, you can make it. consisting of Make magazine, cRaFT Magazine, Maker Faire, and the hacks series of books, Maker Media encourages the Do-it-Yourself mentality by providing creative inspiration and instruction. For more information about Maker Media, visit us online: MAKE: www.makezine.com CRAFT: www.craftzine.com Maker Faire: www.makerfaire.com Hacks: www.hackszine.com preFace
xiii
CredIts about the authors David Jurick (www.davidjurick.com) is the iT manager at a digital entertainment/new media company based in santa Monica, california. he has extensive experience in networking, computer hardware, software, scripting, and Unix/Linux-based operating systems. he holds a bachelor of science degree from the University of california, santa Barbara. Adam Stolarz (www.adamstolarz.com) is an avid pc gamer and computer expert with an electronics background. as a teenager he was a contributing author to Car PC Hacks (o’Reilly). he is currently studying political science and Japanese at california state University, northridge. Damien Stolarz is a partner at perceptive Development (www.perceptdev.com), a Los angeles– based software consultancy that develops iphone applications. he is an inventor, author, and entrepreneur who loves making machines talk to each other. he has authored several books including Mastering Internet Video (addison-Wesley), Car PC Hacks (o’Reilly), and Hands-On Guide to Videoblogging and Podcasting (Focal press). he holds a B.s. in computer science and engineering from the University of california, Los angeles. his personal blog is www.damienstolarz.com.
contributors The following people contributed to this book in the form of hacks: George Dean IV is a software developer at perceptive Development in Los angeles (www.perceptdev.com). Dean has a broad range of experience with nearly a dozen programming languages on a variety of platforms. he remains interested in a wide range of disciplines including mathematics and all manner of sciences. his artistic pursuits include ilm scoring and screenwriting. he holds a B.s. in computer science from the University of california, Los angeles. his personal site is www.georgedeaniv.com. Matthew Drengler is currently a senior at the University of Toledo studying electrical engineering. after graduating he plans to go to ohio state University to pursue a master’s in business administration. When Drengler isn’t studying for classes he enjoys playing golf, guitar, pool, Xbox 360, and cooking. You can ind his blog at http://matthewdrengler.com/blog. Zack Gainsforth is a physicist with the University of california, space sciences Laboratory, studying comet samples returned from the stardust nasa mission as well as other astromaterials. he was a successful computer programmer working for Diskeeper corporation, and software he worked on is on tens of millions of computers worldwide. his real love is physical science, a career he started out with a home-built lab supported by his very tolerant parents. he eventually went on to attend the University of california at Berkeley to study physics from whence he went on into his current research. he has contributed to several scientiic publications and co-authored an article for Science. he is happily married to what he believes to be the smartest gem in the eastern hemisphere, cindy. his website is www.thetalab.com. iFixit is the Mac+ipod do-it-yourself company. it has the goal of empowering people to do repairs themselves by giving them the knowledge, tools, and parts to do so. so far, they’ve helped over 30,000 people repair their computers and ipods. iFixit was started in 2003 by students at cal
xiv
iphone hacks
poly, san Luis obispo. They’re now the largest Mac laptop parts store in the world, and introduced ipod parts in 2006 and iphone and ipod touch parts in 2007. iFixit is a for-proit, christ-centered company. They can be contacted at www.iFixit.com or 1-866-61-FiXiT. Mathias Kettner has been working with Linux since the 0.99 kernel, when a complete installation it on six loppy disks. in the many years since then his passion for Linux has remained. Today he is a Linux consultant, trainer, and author of the bestselling book Fehlerdiagnose und problembehebung unter Linux (sUse press). he holds a diploma in computer science from Ludwig-Maximilians-Universität München. his website is http://mathias-kettner.com. Christopher “karp” Kurpinski fell short of his boyhood aspirations to become a mad scientist and settled for a career as a cynical engineer. Despite his best efforts to sleep through every class, he somehow received a masters in electrical engineering from UcLa. kurpinski currently resides in suburban Detroit where he attends law school at the University of Michigan and works as a technical patent analyst on the side. Taking an almost perverse joy in using things in ways they were never intended, he once climbed a church just for the hell of it. one day, he hopes to have all of his vintage scooters running at the same time. his website is www.kurpinski.net. Patrick Ng is a photographer who works in hong kong as a stationery and gift buyer for a retail chain store called city’super. patrick thinks like a man of action, but acts like a man of thoughts. he keeps a journal of hacks and interesting things on his personal blog scription (http://moleskine. vox.com). Josef Pru° ša is a young, unconventional DJ from czech Republic. he started DJing when he was only 15 years old. he likes new technologies and loves hacking new functionality into them, whether the results are interesting, useful, or merely funny. his interests are programming, electronics, music, cars, and economics. in addition to R/c car control, he’s recently been using an iphone to control music for his DJ performances. You can check out his new projects on his website http://josef-prusa.eu. Erica Sadun holds a ph.D. in computer science from the Georgia institute of Technology. she has written, co-written, and contributed to over two dozen books about technology, particularly in the areas of programming, digital video, and digital photography. an unrepentant geek, sadun has never met a gadget she didn’t need. her checkered past includes run-ins with neXT, newton, and a vast myriad of both successful and unsuccessful technologies. When not writing, she and her geek husband parent three adorable geeks-in-training, who regard their parents with restrained bemusement. her site is http://ericasadun.com. Devananda Van der Veen is a MysQL DBa and the author of the open source database and server management tools MycaT. he currently works for hydra network, telecommuting from his home on the olympic peninsula where he enjoys playing the shakuhachi and living in the great outdoors. he maintains a blog at http://blog.dbadeva.com. Joe Vennix is a teenager from houston, Texas, who has been hacking away at the iphone since its launch. he sells apps on the iTunes store and maintains an iphone news and apps listings site at www.iphonexe.com. his musical tastes vary from pink Floyd to Buckethead to Funkadelic, and he’s pretty psyched about being published in a book. shoot him an email via [email protected]. ZodTTD is very scarce on details of his origin. he began his journey through software development at a very young age. he learned to program homebrew games on the Gameboy advance using makeshift lashcarts. he worked on open Transport Tycoon Deluxe for the Tapwave Zodiac—hence the moniker “ZodTTD.” he’s worked on porting all the major game emulators—psX, sega, snes, GBa, MaMe, and more—to the iphone. he works full-time maintaining game ports and developing iphone applications. his website is www.zodttd.com.
creditS
xv
xvi
iphone hacks
iphone hacks First edition
david Jurick, adam & damien Stolarz
cOntentS
1
01
IPHone And IPod touCH HACKIng BAsICs there are a lot of reasons to hack your iphone or ipod touch. There’s this myth that hacking will go away “once apple adds that one killer feature.” But it’s unlikely, because the iphone is unlike the earlier ipods or any phone on the market before it. it is a full-featured personal computer. The iphone is a global device that uses the international standard GsM protocol. Unlocking the phone so that it can use siM cards anywhere is a major industry, and will probably continue to be so even after apple’s exclusive contracts with mobile carriers are gone. The ipod touch is the heir apparent of the ipod, and once lash memory sizes surpass hard drives, the ipod touch will be the ipod. But this ipod surfs the Web, gets email, and maps your location, and new applications are constantly being developed for it. The impulse to get the ipod—already the de facto standard Mp3 player—to do even more is irresistible. no matter what apple adds to its software Development kit (sDk), there will always be something important that they left out. it might just be the future killer application. and thus, the hacking community will continue to push the boundaries of what can be done with the phone. it’s important to realize that the iphone is as powerful as a top-of-the-line late-’90s computer. Late-’90s computers were fast enough to use broadband and to fuel the irst internet boom. But this computer its in a shirt pocket, and can be controlled with one inger. now imagine a world where everyone is holding a broadband-connected, Unix-based personal computer in their hand. can you think of anything that apple just might not have thought of? We can.
HACK 1.01:
Learn the Language of iphone hacking
Bypass the iphone learning curve with this quick tutorial. it’s easy to get overwhelmed with a lood of new terminology when learning a new topic, especially when it comes to computers and hacking. The iphone has an unusually steep learning curve. This hack will quickly get you “talking the talk” so you can get past the n00b (“newbie”) phase quickly and make sense of the online discussions.
2
iphone hacks
HACK # 1.01
the iphone cellular Standard apple’s iphone was originally released in the United states exclusively on the aT&T network. There are a number of different cellular phone standards, but the technology in widest use around the world and standard in europe is called GSM (Global system for Mobile communications). GsM describes the technology for providing voice services, but the GsM system includes several levels of wireless data service as well. GPRS (General packet Radio service) is the slowest of these protocols, providing speeds up to 40kbps—similar to a dial-up modem. EDGE (enhanced Data rates for GsM evolution) is a data transmission protocol capable of speeds up to 180kbps, with a theoretical maximum of 230kbps, like the now painfully slow broadband internet from the late ’90s. Generally, this speed makes eDGe a 2.5G (between second- and third-generation) wireless protocol, as contrasted with the 3G phones, which use HSDPA (high-speed Downlink packet access, the fastest current data standard used with GsM networks), which is comparable to a slow DsL connection. GsM phones are characterized by their use of a SIM (subscriber identity Module) card, and the ability for users to switch phones by simply moving a siM card from one phone to another (Figure 1-1). once apple’s exclusive contract with aT&T has run out, they may create an iphone that runs on other mobile standards such as the CDMA (code Division Multiple access) and EVDO (evolution-Data optimized) standards used by Verizon and sprint in the United states.
Figure 1-1. The iphone’s siM card on its tray
chapter 01 - LeaRn The LanGUaGe oF iphone hackinG
3
iphone applications The iphone runs an embedded (for a device, not a computer) form of Mac os X for its system software, a thinned-down version of the same code that runs on Macintosh computers. Native applications are programs that are installed on the iphone, as opposed to web applications, or iPhone-optimized web pages, that run in the Mobile safari web browser, using technologies such as AJAX (asynchronous Javascript and XML), and which require a working internet connection to operate. The many built-in applications on the iphone, such as calendar, photos, YouTube, and safari, are native applications; there are also native third-party applications. The applications on the iphone are all launched by SpringBoard, an application that controls the home screen. Figure 1-2 shows a jailbroken (hacked to be freed from restrictions) phone with some third-party apps.
Figure 1-2. a number of installed third-party native applications on a jailbroken phone
the iphone’s Unix heritage Unix is a cross-platform, multiuser, server operating system with a long history. it was irst developed at aT&T in 1969. it was one of the irst open source operating systems. it has heavily inluenced every operating system since then. over the last 40 years, it has split into a large family tree with dozens of competing versions and several prominent clones, such as Linux. it has long been a programmer’s operating system (os) as well as the ancestral home of computer hackers. Unix and Unix-like servers such as Linux represent a substantial portion of the servers on the internet. Mac os X is a Unix operating system. one of the interesting things about the iphone—and an interesting full circle for aT&T—is that upwards of 10 million people are now running a Unix-based operating system on their iphone.
chroot, Jails, and Jailbreaking as we just mentioned, Unix is a multiuser system. Different accounts (login names) can be given different privileges. For instance, the superuser administrator named root can change any ile on the system. The iphone normally runs applications as a user named mobile, who has more limited access. The word “root” in Unix systems is also used to describe the top of a hard drive hierarchy, in which the uppermost folder is the “root” directory (like the root of a plant or tree). if you see the slash symbol (/), this signiies the root of the hard drive.
4
iphone hacks
HACK # 1.01 one method of enforcing security on Unix systems is called chroot(). normally, any user on Unix can potentially see the whole hard drive. What chroot() does is change the root directory so that a user can access only his or her own home directory. For instance, if Joe’s home directory is /Users/joe, chroot makes it so that / points to /Users/joe on the hard drive. now Joe can’t access parts of the system that he shouldn’t. This security measure puts Joe in what is called a chroot() jail. The term jail has come to encompass any metaphorical padded cell or “jail” that restricts access to certain directories and limits which programs can be run. on the iphone, the lash drive has two partitions—about 300 megabytes (MB) for the os (operating system) and applications (partition /dev/disk0s1), and the rest of the phone’s total storage for user data such as pictures, music, and movies (partition /dev/disk0s2). as shipped, there are two major restrictions: the user can’t write to the os partition, and the iphone won’t run (execute) any programs stored on the data partition. if you install an app store application, it can run because it is stored on the os partition. on the iphone, the process of jailbreaking removes both of these restrictions. By changing the ile /etc/fstab, you: • •
Make the os partition writable enable execution of programs on the data partition
The iphone ships with many software and hardware security features to ensure that it is not easily cracked by malicious interlopers, and to create a chain of accountability so that an insidious or destructive program can be traced to its creator if it does manage to get onto the phone. Because of this thick layer of security, it is necessary to jailbreak the iphone [Hack #1.03] to install programs and access features that aren’t available through the app store. Most software for jailbreaking adds package management for installing new applications directly to the device. Jailbreaking adds a wide variety of common Unix/Linux tools, including Secure Shell (SSH), so that you can connect to your iphone with a terminal program and conigure it. signiicantly, because a jailbroken iphone is a full-featured Unix server, just about every major internet service and development technology—MysQL, apache web servers, php, python, perl, Ruby, and Java, to name just a few—are available for the iphone. That means that porting existing code—especially open source code—to the iphone is trivially easy. Thus, many of the hacks in this book depend on jailbreaking the phone.
the SdK and the app Store in February 2008, apple announced a Software Development Kit (SDK), allowing the creation of third-party applications that could be installed on the phone. For the eight months prior to that date, creating native iphone applications required a reverse-engineered development environment commonly referred to as the toolchain (a set of software tools used to create new applications). This is because sDk applications run in a sandbox (another word for “jail”) that limits their ability to do harm, but also limits their ability to do good. Thus, there are SDK applications (developed with apple’s Mac-based development tools, sold in apple’s app store, and complying with apple’s restrictions and distribution policies), and toolchain applications, developed using these reverseengineered software development kits. Toolchain apps can use any feature on the phone that is available. in contrast, the sDk is limited to the features that apple has exposed in its sDk. For instance, an sDk application cannot take pictures without the user’s permission, and cannot dial a phone number or send a text message without the user being notiied, and generally cannot keep chapter 01 - LeaRn The LanGUaGe oF iphone hackinG
5
running in the background when the user switches to another program. Toolchain applications have none of these restrictions. For extensive information on programming toolchain applications, see iPhone Open Application Development, 2nd edition (o’Reilly, 2008) by Jonathan Zdziarski.
Unlocking Understanding the various methods of hacking the iphone depends on an understanding of its different parts. as mentioned earlier, the iphone is very similar to a conventional desktop pc, with computing power easily comparable to systems from the late 1990s. its main cpU runs around 400Mhz, and it has a screen, an onscreen virtual keyboard, a touch screen that functions as a mouse, and 4GB or more of lash storage for its ilesystem (ile storage). it runs an operating system—which is actually Mac os X. Unlike most personal computers, however, the iphone has two “brains”—one is the aRM processor (aRM11 speciically), the cpU that runs the Mac os X system software and the GUI (graphical user interface), and the other is a chip that handles communication with the cellular network, called the baseband chip (an inineon GsM processor). every mobile phone in the market has a baseband chip. on most phones (non-“smart” phones) this baseband chip is the only processor for the phone. This chip contains a simple central processing unit, as well as a wireless modem, and is responsible for all GsM/eDGe/hsDpa cellular communication. Jailbreaking an iphone hacks only the Mac os X that runs on the aRM processor. The iphone’s baseband chip is a “second brain” that must be reprogrammed—often against its will—if you want to unlock the phone. some people wonder why the phone chip is called a “baseband.” The name is related to the more familiar term broadband, which describes a wired or wireless transmission carrying many different channels (bands or frequencies), such as a cable modem connection shared by everyone in a given neighborhood. By contrast, baseband is when a wired or wireless transmission has one base (low) band that transmits only one signal, such as a single wireless phone call. one of the most popular terms that you will run into in hacking the iphone is bricking, which means rendering your iphone as useless as a brick because of hacking gone awry. example: “oh, no! i think i bricked my iphone trying to unlock it.” To be precise, bricking should describe a state that is permanent and irreversible, but the iphone community often uses this term loosely for a temporary state that is relatively easy to reverse. and some users have even had “hard” (seemingly permanently) bricked phones come back to life with later iphone irmware—new versions of apple’s irmware resurrected a lot of previously “bricked” phones. Typically, there are many options (such as forcing a full restore on your iphone) that can ix the many seemingly incurable ills of carelessly hacked phones. (see chapter 2, “Troubleshoot Your iphone or ipod touch.”) hardware hacking (that is, opening up the phone, as described in chapter 12, “hardware”) creates the highest risk of bricking phones. next to that, trying to do a siM unlock (modifying the phone to use a different mobile carrier than it was designed to use) is the most fruitful source of bricks (see chapter 7, “Unlocking and activation”). easy-to-use one-click siM unlocking applications [Hack #7.02] became popular because they ran a lower risk of bricking an iphone for novice users.
iphone OS and Firmware Whereas pcs run software, the preferred term for embedded software—that is, software that runs on devices instead of computers—is irmware. When used in iphone-speak, “irmware” is used loosely to describe each successive version (1.1.1, 1.1.2, 1.1.3, 1.1.4, 2.0, 2.1, 3.0, and so on) of new software for the iphone. These iles usually come in the form of an IPSW (iphone software) ile, such as iPhone1,1_2.0_5A347_Custom_Restore.ipsw. These iles usually contain an update for Mac os X as well as the baseband irmware, the software that runs the modem, which is independent of the version of system software on the phone. The baseband irmware is essential for the proper functioning of eDGe, hsDpa, Wi-Fi, Bluetooth, and phone calls. When you activate an iphone for 6
iphone hacks
HACK # 1.01 the irst time in iTunes, or when you unlock the phone for use on any GsM service provider, you are modifying the baseband irmware. Just like a conventional computer has a Bios (which is in control of the computer before Windows, Linux, or Mac os X is loaded, and is built into the hardware of the machine), the iphone has a bootloader, or bit of software that runs before the operating system and determines which software to use during bootup. in fact, the iphone has two of them. The main cpU has a bootloader called iBoot, also known as the recovery bootloader. This software tries to load the system software. if it cannot, or if the phone is in recovery mode [Hack #2.04], then it asks to be connected to iTunes. The baseband bootloader is the software that runs on the baseband and loads the baseband irmware. Figure 1-3 shows the different operating software on the iphone.
Figure 1-3. The various parts of the iphone’s operating software
iphone Baseband Boot Sequence
Inineon s-Gold 2 GsM processor “Baseband”
Baseband Bootrom irst code to run
Baseband Bootloader checks signatures, installs updates
Baseband Firmware main instruction set
iphone cpU Boot Sequence Samsung S5L8900 aRM11 cpU
Virtual RoM (VRoM) copied from RoM
Low Level Bootloader (LLB) checks iBoot’s signature
iBoot—also runs Recovery Mode
Darwin kernel
Mobile os X
OOB or OOTB means out-of-box or out-of-the-box; it describes a phone that is brand new, not activated, jailbroken, unlocked, or otherwise molested. The term is used to describe models of phones that ship with particular software version. For instance, “ooB 1.1.2” phones shipped with chapter 01 - LeaRn The LanGUaGe oF iphone hackinG
7
a baseband bootloader (Version 4.6) that was more resistive to baseband irmware updates than earlier versions. Thus, some earlier phones were coveted because of their lexibility in downgrading and upgrading to different system versions and unlocking. apple’s iTunes program frequently prompts users to upgrade their phone to the latest software. Upgrading your iphone upgrades the software to apple’s current version but keeps the user data (leaving the user partition of the lash drive intact), whereas restoring [Hack #2.04] your iphone’s software erases user data and reinstalls the system software. however, restoring does not reset any baseband (irmware) alterations. Virginizing your iphone [Hack #2.05] puts it in the exact same software state that it was in when you bought it, including resetting your baseband irmware back to factory settings by relocking it. Virginizing is a prudent choice for those returning their phones under warranty, as phones that are serviced in a hacked state may be denied warranty service.
HACK 1.02:
discover Your iphone’s hackability
Which hacks you can do? it depends on what software version your iphone is running. The brief history of iphone hacking is a game of cat-and-mouse between apple’s patches and the iphone user community’s cracks. a software update from apple can include a number of things: updates to the operating system (Mobile os X), new baseband irmware, and updates to the iBoot bootloader [Hack #1.01]. each update brings new features, bug ixes, and—in some cases—a little more resistance toward the hacks you’ll ind in this book. so, before you can make your iphone do new tricks, you need to know your irmware version and whether the hack you intend to apply will work with that version. The most common irst hack after opening your iphone is jailbreaking, which lets you reconigure the iphone operating system and install unsigned third-party applications. however, some people may want to unlock their phone so that they can use it with any GsM carrier. These two hacks, jailbreaking and unlocking, depend on the irmware and the baseband, respectively. as time goes by, each new version will close some doors to hacking and open some others. Trying to hack one version with a procedure that was designed for a different version will result in an unsuccessful hacking attempt. in the worst case, this mistake could cause technical dificulties that require a full restore [Hack #2.04] and/or virginization [Hack #2.05]. When apple releases a irmware update, it’s often to add or update a feature—such as the iTunes Music store app—or to ix a security issue, like a vulnerability in the web browser. chances are good that the upgrade will, intentionally or unintentionally, temporarily render various hacks inoperable. so don’t rush to install each new update; instead, give the hacking community time to catch up so that you won’t have to struggle with the inevitable incompatibilities that arise with new irmware. and once it’s safe to proceed, perform a restore before you update to prevent any possible conlicts between your hacked iphone and the new version.
taking inventory here’s what you should know about your device: • • •
8
iphone hacks
Device type (iphone / ipod touch, and which generation) os irmware version and baseband (modem irmware) version (optional) Bootloader versions (iBoot, the os bootloader, and the baseband bootloader)
HACK # 1.02 Step 1: identify your phone model. as of this writing, there are four models: the original iphone (released June 2007) and ipod touch (released september 2007), the iphone 3G (released July 2008), and the second-generation ipod touch (released september 2008). This information is the easiest thing to identify. • •
•
Look at the back of the device and see whether it says ipod or iphone. That’s your irst clue. The original iphone has a mostly aluminum backing with a small black plastic area. The iphone 3G has a shiny black or white plastic back. The original ipod touch has no volume controls on the top left (facing the device). The secondgeneration ipod touch has volume controls.
Step 2: identify your irmware and baseband version. The irmware version can be found either using iTunes or directly on your iphone. in iTunes (with your iphone connected to your computer), go to your iphone’s summary tab and locate “Version.” To right of it is the irmware version, listed as a version number such as 2.1, followed by a hexadecimal number in parentheses. on your iphone, open the settings menu and scroll down until you see General. Tap on General and select about from the top of the list. on the about screen, about halfway down the list, you will see your irmware version number, as well as your “Modem Firmware” (a.k.a. baseband version), as shown in Figure 1-4. The easiest way to do this is by selecting settings→General→about. The Version ield will give the version of your software (i.e., Mobile os X), and the baseband (labeled “Modem Firmware”). a comprehensive list of irmware and baseband versions can be found at www.theiphonewiki.com/ wiki/index.php?title=system. You can see some of these in the tables on the following pages.
Figure 1-4. The about screen
Step 3: identify your bootloaders. as mentioned in [Hack #1.01], there are actually two bootloaders: one is iBoot, which boots Mobile os X. The other is the baseband bootloader that runs before the baseband irmware; it is responsible for security checking and updating the baseband. Because the ipod touch doesn’t include the eDGe, Bluetooth, and phone features of the iphone, it does not use baseband irmware, so this hack applies only to the iphone. programs such as Bootneuter [Hack #7.02] unlock the iphone by hacking chapter 01 - DiscoVeR YoUR iphone’s hackaBiLiTY
9
the baseband irmware. programs such as pwnage [Hack #1.03] hack the iphone’s os bootloader. The main reason to identify your bootloader is for situations where you need to virginize your phone and return it to factory condition. Table 1-1 shows several of the factory bootloader versions. Table 1-1 Baseband bootloader versions.
3.9
original iphones phones that came out of the box with Version 1.1.1 and older had this bootloader.
4.6
original iphones with oTB Version 1.1.2 and later iphones prevented former unlock methods from working.
5.8
iphone 3G comes with this bootloader.
Generally, the tools that modify your bootloader will tell you what version you have. if you get a secondhand phone and you need to take inventory of your versions, however, there are several utilities that will tell you what you have. Finding out your bootloader version is slightly more complex than inding your irmware or baseband version. it requires use of ssh [Hack #9.04]. Using techniques gleaned from that hack and others in the same chapter, ind the program called bbupdater through Google or other sources and upload it to the /usr/bin/ directory on your device. next, using either Mobile Terminal [Hack #9.05] or an ssh terminal program, run bbupdater with an argument of -v. You should receive output like this: Resetting target... pinging the baseband... issuing +xgendata... firmware: DEV_ICE_MODEM_04.02.13_G eep version: EEP_VERSION:208 eep revision: EEP_REVISION:1 bootloader: BOOTLOADER_VERSION:4.6_M3S2
as you might have gathered already, the entry for BOOTLOADER_VERSION is your bootloader version. an alternative and slightly easier method to determine your bootloader involves using the BBinfo from www.trejan.com/projects/ipod/#BaseBanDFiRM. You download the application from www. trejan.com/projects/ipod/bbinfo-1.1.zip and copy it over to the /Applications/ folder on your phone [Hack #1.05]. alternately, add www.trejan.com/irepo as an installer.app source [Hack #1.04]. Tables 1-2 and 1-3 show some of the iphone irmware and baseband versions throughout the ages.
10
iphone hacks
HACK # 1.02
Table 1-2 a historical account of iphone irmware versions
1.0
This was the irst iphone irmware version. When the iphone was irst made available to U.s. consumers on June 29, 2007, Version 1.0 was preinstalled on every unit.
1.0.1
This update was released on July 31, 2007. it aimed to ix a security vulnerability in of the safari web browser, which allowed a malicious breed of hackers to take complete control of someone else’s iphone via its WiFi connection. These hackers were able to exploit this vulnerability to make phone calls and even view the personal data on the victim’s iphone. although this update was designed to increase security against outside hackers, ironically it opened up new doors to the benevolent hacking of the type you’ll ind in this book. new iphone hacks and ideas began appearing everywhere on the Web, giving owners myriad ways to customize their iphones beyond what its factory settings had to offer.
1.0.2
This update was released on august 21, 2007. it provided a few minor bug ixes to help the iphone function a little better. Luckily, 1.0.2 did not put a damper on the hacking opportunities offered by 1.0.1. new hacks began emerging at a jaw-dropping rate as more and more computer-savvy owners took interest in unleashing the full potential of the iphone. as a result, 1.0.2 became one of the most popular irmware versions to hack, and when 1.1.1 hit the scene, unlocked phones running 1.0.2 proved to be a hot commodity.
1.1.1
apple’s irst full update was released on september 27, 2007. a wide array of new features and improvements was offered in this update. The most notable new feature was the iTunes Wi-Fi Music store application, which allowed users to purchase new songs from iTunes right from their iphones. other improvements included better interaction with Bluetooth headsets, support for TV output, and the ability to turn eDGe/GpRs data service on and off when roaming internationally. however, these improvements came with a price. Upon updating to 1.1.1, iphones that had previously been unlocked to work with other service providers were hit with a software conlict that crippled many functions, including the ability to make and receive calls. Fear that the damage was permanent sent the iphone hacking community into a panic. Fortunately, a solution was devised by the collaborative efforts of a number of brilliant hackers, and crisis was averted. although this success brought a glimmer of hope for hackers, there was still one big problem with the 1.1.1 update—it was extremely dificult to hack. a temporary stalemate was in effect between apple and the hacking community. nevertheless, this hindrance just forced hackers to come up with more clever approaches. a way to jailbreak was found by using a vulnerability in how the iphone processed .tif images, allowing the phone to be taken over and to grant full ilesystem access. The pinnacle of this effort was the iconic www.jailbreakme.com, which allowed most iphone owners to hack their phones in less than 30 seconds.
1.1.2
november 12, 2007 saw the oficial release of apple’s next irmware version. This update ixed a few “issues”—most notably 1.1.1’s aforementioned .tif vulnerability. This ix built yet another brick wall in the development community’s path. in addition, unlocked iphones experienced the same dificulties as they did with the previous update. Despite the inconveniences caused by 1.1.2, the hacking community experienced only a brief hiccup in its progress, because dealing with 1.1.1’s problems had prepared them for just about anything. in the following months, a way was found to preserve jailbreaks performed on a 1.1.1 iphone and allow them to survive the irmware upgrade process.
1.1.3
To kick off the new year, apple released yet another update on January 15, 2008. as with Versions 1.1.1 and 1.1.2, this new update caused a headache for users with hacked iphones. aside from this expected inconvenience, this update added a number of useful new features.
chapter 01 - DiscoVeR YoUR iphone’s hackaBiLiTY
11
1.1.4
Released February 26, 2008, this update added a few subtle things to the 1.1.3 version. The Bluetooth and camera features were slightly improved. Unlike many of the previous irmware versions, 1.1.4 didn’t really cause too much trouble in the iphone hacking community. Most of the hacks used on previous versions still worked on 1.1.4.
2.0
accompanying the release of the new 3G iphone on July 11, 2008, this new irmware version added many useful features. one of the most notable was the highly anticipated iTunes app store, which allowed users to add third-party apps [Hack #1.04] to their iphones without having to perform a jailbreak [Hack #1.03]. other features included Microsoft exchange email support as well as support for apple’s new MobileMe calendar, contact, and email services. however, this version also basically reset the jailbreaking progress—the hacked installer.app no longer worked with 2.0, and all the third-party applications written before the apple sDk no longer ran on this version of the iphone/ipod operating system.
2.0.1
apple released this update on august 4, 2008. This new update ixed some minor bugs and sped up the software.
2.0.2
apple released this update on august 18, 2008. Like its predecessor, 2.0.2 targeted a number of minor software bugs.
2.1
Released september 12, 2008, this release required and was released with iTunes 8. it added features like Genius (automatic smart playlists) and increased speed and stability of applications across the board.
2.2
Released november 21, 2008, this added bug ixes, Google street View, and over-the-air podcast downloads.
2.2.1
Released January 27, 2009, this update made safari more stable, ixed some Mail bugs, and upgraded the irmware to resist Yellowsn0w, the 3G unlock application.
Table 1-3. Baseband irmware versions
12
iphone hacks
03.11.08_G through 03.14.08_G
These baseband versions were for the most part unnoticed, as they were released before an unlock was reached. it was with 1.0.2/03.14.08_G that siM-unlocking was achieved.
04.01.13_G
When this version came, alongside irmware 1.1.1, it disabled many phones that had been unlocked on irmware 1.0.2. Furthermore, this new version added extra dependencies on a portion of the baseband called the seczone, which prior unlocking methods had simply erased to perform the unlock. This change made the hacking community realize that there was more than the iphone’s irmware version working against them with each update.
04.02.13_G
Firmware 1.1.2 brought with it another version of the baseband, which disabled unlocks. as time went by, this obstacle was overcome, too. Unfortunately, new-in-box 1.1.2 iphones with the 4.6 bootloader (Table 1-1) could not be unlocked.
04.03.13_G
Firmware 1.1.3 added some interesting features, including support for the “locate me” feature in Google Maps (a fairly effective Gps alternative). on new phones, this irmware was combined with bootloader 4.6, creating a double-strength wall against unlocking efforts.
04.04.05_G
accompanying 1.1.4 irmware was yet another baseband version. as always, it thwarted unlocking techniques for previous baseband versions.
HACK # 1.02 04.05.04_G
This new baseband version was designed for irst-generation iphones (which were non-3G) to run alongside irmware Versions 2.0, 2.0.1, and 2.0.2.
01.45.00
This was the irst baseband version designed to run on the 3G iphone. it was used only with the 2.0 irmware.
01.48.02
Like the Version 01.45.00 baseband update, this version worked only with the 3G iphone. it was used with irmware Version 2.0.1.
2.04.03
accompanied irmware 2.1.
2.08.01
accompanied irmware 2.0.2
2.11.07
accompanied irmware 2.1
2.28.00
accompanied irmware 2.2
2.30.03
accompanied irmware 2.2.1; disabled Yellowsn0w siM unlock.
anxious to update the irmware on your hacked phone to apple’s latest and greatest release? Just follow these simple guidelines: Wait before you update the irmware. When apple releases a new irmware version, you should wait to update until you have more information about it. knowing how the update will affect the hacks that you’ve already done to your iphone, as well as the hacks you still plan to do, could help you avoid catastrophe. Updating erases any hacks you’ve already performed, which should provide you with plenty of motivation to wait. To help prevent any unwanted updates while you’re still waiting, when iTunes shows you a window like the one shown in Figure 1-5, check the “Do not ask me again” box before you hit cancel, so that iTunes will leave you alone until you explicitly tell it to update by pressing Update on the iTunes iphone information screen. Step back to a previous irmware version. if you’ve already updated your irmware and can’t get your favorite hacks to work, you can sometimes reverse the update. Read the documentation for your jailbreaking program.
Figure 1-5. iTunes offers frequent updates
The ramiications of a misapplied hack are rarely fatal, but some are irreversible and many of them can be dificult and time-consuming to repair. Thus, the method by which you can hack your iPhone is very speciically dictated by the software version currently installed. So, just say “No!” to unsolicited irmware upgrades until the iPhone hacking community says they’re ready. Caveat hax0r.
chapter 01 - DiscoVeR YoUR iphone’s hackaBiLiTY
13
HACK 1.03:
Open Your iphone or ipod touch to customization by Jailbreaking Free your iphone or ipod touch from the shackles of its proprietary prison. The iphone is very closed when it comes out of the box. Unlike a personal computer, the ilesystem is not designed to be visible to the end user, and end users are not free to install any program they choose. although it has a number of great built-in applications, and although many third-party applications are available through the app store, there will always be customizations and new applications that cannot be implemented through apple’s sanctioned methods. These features are possible only when the iphone is freed from its shackles, and the process of opening up the iphone in this way is called jailbreaking.
Why Jailbreak? Jailbreaking a phone is like logging in as “administrator” or “root” on a Windows or Unix machine. it gives the user complete control—and of course, complete responsibility if something goes wrong. a jailbroken phone can run any application developed for the iphone—including badly written applications or even viruses. Your jailbroken iphone is unprotected and it’s now your job—not apple’s—to keep it from getting hurt or sick. When we speak about “hacking an iphone,” jailbreaking is the basis of most hacks. after jailbreaking, you’ve taken your irst step into a larger world. The beneits of jailbreaking are numerous. Just a few examples are: • • • • • • •
perform system-wide skinning of the phone [Hack #8.02] Run community and third-party applications from outside the app store [Hack #1.04] Run background applications [Hack #9.14] Run your iphone as a web server [Hack #9.10] or ile server [Hack #9.06] Develop iphone applications on the phone itself [Hack #11.12] carrier-unlock your phone (chapter 7) Use your iphone as a general-purpose computer [Hack #12.23]
d
As time goes by and irmware updates come, certain paths to unlocking may be blocked, or new options opened. As such, the procedures listed in this hack may change or become outdated, and your mileage may vary. You can always check forums and the community [Hack #2.06] to learn the most up-to-date method.
a Brief history of Jailbreaking applications Due to unprecedented, fervent passion for the iphone platform, combined with the opportunity for tremendous proits from unlocking iphones for use with alternate GsM carriers, there have been a number of competing unlocking applications. Because jailbreaking is the irst step of running any third-party software to perform an unlock, most unlocking applications have jailbreak as their primary feature. numerous applications have come and gone in the fast-paced game of one-upmanship that is iphone hacking. iBrickr, iFuntastic, iLiberty (shown in Figures 1-6 and 1-7), Ziphone (Figure 1-8), and iphUc are just a few examples. What may not be obvious to the end user is that each of
14
iphone hacks
HACK # 1.03 these applications relied on the same basic code—and cracks—mostly discovered and developed by members of the iphone Dev Team (http://wikee.iphwn.org) or GeoHot (http://iphonejtag. blogspot.com). each time apple released new irmware, they tended to patch all the publicly known cracks, rendering all existing hacking software useless for the new phones and software. Thus, there would be a period of days or weeks when the hacking community would pore over the new irmware, looking for new, unexploited cracks. as soon as they were found, a new version of complex command-line tools and dissertation-length step-by-step tutorials would be posted, showing how to manually jailbreak or unlock the new versions, followed by a slew of cute, end-useroriented GUi applications to do the same thing. These applications differed mostly in their fee model (most of the good ones being free), their ease of use, and how well they dealt with the numerous combinations of irmware and software. also, because some versions of these apps implemented the hacks in an inconsistent or outright buggy way, and because apple’s own updates would often scramble previously hacked phones into an unstable state, even more features had to be developed to repair these ravages.
Figure 1-6. iLiberty (Windows)
Figure 1-7. iLiberty (Mac os X)
chapter 01 - open YoUR iphone oR ipoD ToUch To cUsToMiZaTion BY JaiLBReakinG
15
Figure 1-8. Ziphone 3.0 (Mac os X)
Through these applications, perhaps millions of people have had their 1.x.x irmware phones successfully hacked and their phones unlocked. however, there were still problems: •
•
•
•
•
people who unlocked their phones—for instance, to run them on T-Mobile in the United states— were generally stuck on the irmware version they had upon unlocking (such as 1.1.1), afraid to mess up their unlock through further hacking. people would blindly update their phones when iTunes suggested it and wind up with temporarily “bricked” phones—and would swear off hacking because of the bad experience. people got tired of erasing their phone over and over and having to wait every time apple released new irmware. Many of these programs, in their race to market, were buggy, and unwittingly performed (at the time) irreversible changes, such as changing bootloaders. some of the programs might have contained copyrighted software not owned by the authors. although this rarely deterred end users, who knew they were in a sort of a digital “back alley” anyway, it violated the spirit of the iphone hacking community, who were trying to use completely legitimate, legal, and moral means to hack the iphone.
For a while, iLiberty and Ziphone were all the rage, and these applications—though effective for the vast majority of users—left a few casualties in their wake. speciically, Ziphone downgraded the irmware on phones in such a way that it was dificult to “virginize” them [Hack #2.05] if they needed to be taken to an apple store for hardware warranty service. and a major blow was dealt to the irst-generation unlocking applications when apple released its 2.0 irmware and its own app store, replacing (and for a while, effectively disabling) the popular 1.x irmware installer.app store. as usual, there was no immediately effective jailbreak for the new irmware. however, a culmination of efforts by the iphone dev team came up with an elegant, consistent, and very stable solution to both 2.x irmware jailbreaking and unlocking. By consolidating all the still-working exploits from the 1.x era, and adding a discovered exploit that could not be disabled by any apple software patch, the pwnage (expert) and Quickpwn (quick and easy) applications were created. part of their elegance lies in how they do not directly jailbreak the phone. Rather, they patch apple’s own irmware packages—adding jailbreaking and unlocking code as needed—and then the user simply patches their phone using iTunes.
16
iphone hacks
HACK # 1.03
d
As of this writing, these programs are the best way to jailbreak an iPhone. To learn about the latest methods, you can follow developments in the hacking community [Hack #2.06].
Jailbreaking with pwnage and Quickpwn Developed by or in coordination with the iphone dev team, pwnage can be downloaded from http://wikee.iphwn.org or http://blog.iphone-dev.org. Both Mac (Figure 1-9), and Windows (Figure 1-10) versions are available. along with the pwnage tool, you’ll need to download the correct restore image for your phone and the appropriate bootloader iles—but pwnage will assist you with this.
Figure 1-9. pwnage for the Mac
Figure 1-10. pwnage for the pc (winpwn)
chapter 01 - open YoUR iphone oR ipoD ToUch To cUsToMiZaTion BY JaiLBReakinG
17
select your device, then select the irmware (.ipsw ile) that you (or pwnage) downloaded. For both platforms, select the appropriate bootloader iles when prompted. For irst-generation iphones, these iles will be called BL-39.bin and BL-46.bin, and can be found through a Google search on the iphone. once you have selected all the options you want, build your custom .ipsw. if you’re also unlocking, be sure to choose “no” when pwnage asks if you are a legit user, make sure that the options activate phone, enable Baseband Update, neuter Bootloader, Unlock Baseband, and autodelete Bootneuter.app are all checked. if you’ve already unlocked your phone, you shouldn’t have to unlock it again, but it also won’t hurt anything if you do. once your custom .ipsw ile has been built, you’re almost done! if you’re running winpwn, go back to the main screen and click “ipwner,” then select the custom .ipsw ile that you just built. on both systems, you will need to enter DFU mode at this point [Hack #2.05] to allow iTunes to install the .ipsw ile on your phone. once again, the application will guide you through this process. Launch iTunes. if you’re on Mac os X, hold down the option key while you press the Restore button in iTunes. on Windows, hold down the shift key as you click Restore. select the custom .ipsw ile that you made, and wait for the restore to inish. congratulations—you’re done! pwnage has a number of conditional steps—and uses iTunes to do the deed. if you want an even simpler jailbreaking experience and you have a fresh iphone with no complicated prehacking history, then Quickpwn (Figure 1-11) is a good choice (www.quickpwn.com).
Figure 1-11. Quickpwn
Jailbreaking the Latest Firmware With your iphone jailbroken, you are now free to manipulate it as you see it. or, as iFuntastic says, to make your iphone your iphone. apple’s intent to lock down its phone is strong. But an army of curious hackers seems to be able to keep inding exploits that give it control over the iphone. Because any code made by man can be broken by man, and because software is very complex and always seems to have some bugs in it, it stands to reason that any new irmware will eventually be broken.
18
iphone hacks
HACK # 1.04 When no exploits could be easily found for later irmware versions, a clever approach was found— simply roll back the version. apple then patched the irmware so that users couldn’t roll back the irmware—at least, not yet. so even if at some point in the future, it seems that all hope is lost for software jailbreaking methods, it’s probably just a matter of time before the hack is found. and if the iphone ever gets really, really impenetrably secure, there’s always the hardware approach— such as the famous hardware hack by Geohot (http://iphonejtag.blogspot.com/2007_08_01_ archive.html) and methods derived from it. The iphone dev team has been the most consistent and reliable force for responsible iphone hacking since the iphone’s release, so before you download a payware application from some glossy site, seek out the iphone dev team sites http://wikee.iphwn.org and http://blog. iphone-dev.org to see what they have to say.
HACK 1.04:
install third-party apps
open your iphone to a whole new world of applications! although apple’s app store is certainly the easiest out-of-the-box way to get new applications, things weren’t always this easy. in the beginning, there were no third-party applications. Then there were ways to copy applications manually to the iphone over ssh/scp, sMB, or appleTalk. a format called “pXL” (package and eXtension Library) for downloading applications through web downloads briely appeared and then fell into disuse. But then the company nullRiver brought out installer.app (Figure 1-12). This application—which set an example for apple to follow—allowed for incredibly easy discovery and instant installation of new programs. The best part about it is that it runs directly from your iphone and downloads new applications over Wi-Fi or eDGe, which is great for people who are always on the go and don’t always have access to a computer. ipod touch owners could use installer.app as well via Wi-Fi.
Figure 1-12. installer.app
chapter 01 - insTaLL ThiRD-paRTY apps
19
enter installer.app since its introduction shortly after the iphone’s initial release, installer.app has become the most popular way to install third-party apps and utilities. Thousands of third-party applications existed before apple had even announced their app store efforts. and for those original iphone users still running a pre-2.0 irmware, installer.app is still their only source of applications. When apple’s 2.0 irmware came out—in conjunction with the app store and around the time of the iphone 3G—most of the third-party “toolchain” applications would not work on the new irmware. This was not so much an intentional result from apple, but simply the side effect of apple completely revising its sDk. (The same thing happens with new versions of Mac os X or Windows; the tools to develop software changes frequently.) But none of the applications on installer.app had a polite “sorry, i don’t support the 2.0 irmware” message and thus there was general confusion. The install tab takes lists of apps from various privately operated sources and sorts them into a list that you can choose from. From the install screen, tap an app to get a basic description of the app. on this page there is also an install button, which will download and install this package on your iphone, and a More info button, which sends you to a website with more information on the app. after you install a package, if it’s an application, it will simply appear on your home screen, and if it’s something else, like a skin pack or theme or ringtone, it should appear in the appropriate place. if not, try restarting your iphone. The Update tab shows whether there are any newer versions of apps that you have already installed through installer.app. if there are, you can read about them and install them through the same procedure for installing apps. The Uninstall tab shows all of the packages that you’ve installed through installer.app. selecting one and tapping “Uninstall” will get rid of it. The sources tab shows where your list of packages is coming from. You can tap any of the sources to get more information about them, including contact information for the maintainer. You can get additional sources through packages in the install tab. nonetheless, when the 2.0 irmware was released, and people started to port their 1.x toolchain applications to the 2.0 sDk, nullRiver came out with a new version of installer and that version remains the de facto installer solution for third-party application installation on jailbroken phones.
enter cydia There were several major critiques of the nullRiver installer application. First and foremost was that it was closed source and operated by a private company—thus, whenever it had trouble there was little recourse (of course apple’s app store is also closed source and proprietary, but they also happen to make the iphone, so there’s some chance that they’ll be responsive to change requests). and one of the noted problems was the immature installer/uninstaller management provided in nullRiver’s installer. Thus, Jay Freeman (known online as saurik) ported apT, the extremely wellsupported open source package manager from Debian Linux. The project is here: www.telesphoreo. org. cydia is a GUi front end for the Telesphoreo port of apT created by saurik.
20
iphone hacks
HACK # 1.04 To quote the author: “in order to provide some relief for these issues, i have decided to start a project called Telesphoreo with the goal of creating a distribution of GnU and BsD’s userspace for the iphone as a collaborative, open source project. The name is an ancient Greek word meaning “to bring fruit to perfection or maturity,” which i feel is what needs to be done to apple’s product: it’s passable as a phone, but as a portable workstation it is almost unmatched...with the right software.” The cydia application, shown in Figure 1-13, accesses these new, well-documented installation sources, and has become the alternative to installer.app for application installation; many of the same applications are available from both cydia and installer.app (Figure 1-14).
Figure 1-13. cydia
Figure 1-14. cydia and installer.app
repositories Both installer.app and cydia share the concept of repositories, which are additional sources of programs. apple’s app store can be considered one large repository—there’s only the app store, and only apple can decide whether a program goes on the list. in contrast, installer and cydia allow you to add any sources you want. some companies that provide a number of iphone applications maintain their own sources. More often, developers submit their applications to another popular repository. if you develop your own iphone applications, you may want to create your own source repository.
chapter 01 - insTaLL ThiRD-paRTY apps
21
a repository is included by adding its URL, such as “http://installer.iclariied.com”, to the sources page, as shown in Figures 1-15 and 1-16.
Figure 1-15. adding source repositories to installer.app
Figure 1-16. adding source repositories to cydia
You can also install additional repositories by searching for them in the sources category, which in turn will add them to the source list. For instance, to get a larger selection of applications to chose from, locate community sources in the community section of the list and install it. With community sources installed, the list of applications becomes much longer, offering you more choices to customize your iphone. Figure 1-17 shows the procedure.
22
iphone hacks
HACK # 1.05 Figure 1-17. adding community sources
trusting Sources Two reasons apple has carefully controlled the app store—besides any inancial, business, and brand protection reasons—are quality control and trust. By vetting applications and ensuring that they look good, work well, and have no viruses, spyware, or unrevealed side effects, apple provides a meaningful service. it’s important to note that by jailbreaking your phone and then running installer or cydia, you’re leaving the walled garden of the apple app store, and entering a large and potentially—but not usually—cruel world. however, people download and install applications all the time for Windows, Mac os X, and Unix platforms, and intelligent users generally know how to detect bad software. so if an application—or app source—seems ishy, ask around before you install it on your phone. You’re not on completely your own, as there is a lively community that may be able to help you. and the more you participate, the larger that community becomes [Hack #2.06].
HACK 1.05:
Manipulate Your iphone’s Filesystem
now that your iphone or ipod touch has been jailbroken and freed from the shackles of conformity time to learn how to navigate the iles and folders of its ile directory. Being able to ind your way around the iphone’s ilesystem is absolutely mandatory for mastering the full customization capability of your iphone or ipod touch.
[Hack #1.03], it’s
if you’re familiar with the hierarchical storage system on hard drives, where iles are sorted into nested containers called folders or directories, then you’ll ind that underneath the glossy user interface, the iphone is no different. and if you’re familiar with the directory structure of Unix-like operating systems such as Linux, BsD, and Mac os X, you’ll have an even better sense of where things are stored on the iphone.
chapter 01 - ManipULaTe YoUR iphone’s FiLesYsTeM
23
There are as many ways to look at iphone iles as there are ways to access any computer. Depending on what server software you install on the iphone, you can use FTp, hTTp, aFp (apple ile sharing), or techniques like the Unix scp (secure copy protocol). But most of these techniques use the wireless network connection on the iphone. But if you want to move iles the quickest, you can use a copy utility that works over the iphone’s UsB connection. The irst step of familiarizing yourself with the ile directory is to get good browsing software for your computer. Diskaid is an excellent choice. The user-friendly interface of this program makes it perfect for beginners. Yet the ability to modify iles and folders in the iphone’s ile directory makes this same program highly useful for even the most advanced hackers as well.
access iphone Files from Your computer as mentioned earlier, the ideal ile-management software for both Mac and pc is Diskaid, available from www.digidna.net/diskaid. it’s free, and it can be used with or without jailbreaking. once your ile-management software has been installed, start it up while the iphone is connected to your computer. Figure 1-18 shows the interface of Diskaid. once the software is loaded, you’ll see the basic, “safe” media directory. The drop-down menu in the lower left will allow you to access the root directory, which has the guts of the device.
Figure 1-18. Diskaid
Understand the hierarchy Try opening up each folder and taking a look around. however, be careful not to modify any of the iles until you know what they are, as you could do unnecessary damage to your phone. of the folders, the main ones to spend some time browsing through are Applications, System, and /var/mobile. Remember that your root directory, /, is the origin of the main folders. an important lesson in iphone ile directory browsing is to understand folder path addresses. When you see the phrase /private/var/tmp, it will help you to know that this phrase actually means to look in your / (root) directory for the private folder. once you ind the private folder, open it to be greeted by another group of folders. Look down this list to ind the var folder, and open it up to see even more folders. Look through this new list to ind the tmp folder, and open it. You’ve now arrived at your destination, as in Figure 1-19. all the mysterious phrase /private/var/tmp was trying to say was to just look inside the tmp folder by following the path from /private, through var, and into tmp.
24
iphone hacks
HACK # 1.05 Figure 1-19. The /private/var/tmp folder
also note that in Unix, there is a feature called “symbolic links,” which is similar to aliases on Mac os X or shortcuts on Windows. on Unix ilesystems you can refer to the folder by any of its symbolic links, so /private/var and /var are effectively synonymous. in Diskaid these are symbolized by the “curved arrow” icon for directories. here are some brief explanations for each of the main folders in the Home or (root) directory. / This “slash” symbolizes the top of your ilesystem, the root directory, simply called “root.” pathnames (folder/directory paths) are symbolized with this forward slash, such as /var/mobile. Applications contains—you guessed it—applications. in addition to the stock iphone applications, some of the third-party applications that you may install will be placed in this folder. This is where you’ll typically go for such things as customizing application icons or even modifying the program code. User-installed applications from the app store will be installed in /var/mobile/Applications/. Library contains various preferences and frameworks, as well as the ringtone and wallpaper folders. System This is where a lot of the Mobile os X system iles can be found. The programs that customize your phone with custom graphics, carrier logos, and skins change many graphics iles in this folder. bin bin is short for binary, meaning simply a program you can run, usually command-line based. on an iphone, you’ll ind the various essential shell utilities and command-line programs here. cores This is where core dumps are stored. When a program crashes, the os sometimes writes a ile to disk showing the memory state of the program just before it crashed, for the purposes of debugging.
chapter 01 - ManipULaTe YoUR iphone’s FiLesYsTeM
25
dev dev stands for device. in Unix, almost everything is treated as a ile from the programmer’s perspective—the hard disk, network cards, and Bluetooth can all be accessed with iles such as /dev/disk0. etc a shortcut to /private/etc, the etc directory is traditionally where coniguration iles—the text iles that deine settings for programs—are stored. private contains a lot of important iles, including music, photos, and some email data. sbin This is the place for superuser binaries—programs for system administration. tmp The tmp directory is where temporary iles used by programs are written. The expectation is that the contents of this directory are frequently deleted, like a “trash can.” usr usr is intended to be for shareable, read-only data. Folders such as /usr/sbin and /usr/bin contain additional commands, and /usr/lib contains libraries of software code shared by the whole system. var a shortcut to /private/var, var stands for variable and is intended to contain variable data, such as logs, news, mail spool iles and so on, which is constantly being modiied by various programs running on your system. on the iphone, it also happens to be the directory that contains much user data, originally in the /var/root directory but now stored in the /var/mobile directory. /var/mobile a lot of the iphone user’s personal data is stored here, including music, pictures, and more. /var/root prior to irmware 1.1.3, user data was stored here. it has moved to /var/mobile. as you gain more experience navigating through your directory, you can begin using the other main ability offered by your browser software: modiication of iles and folders. Diskaid allows you to add, replace, or delete any ile or folder in your directory. These abilities open your iphone up to an all-new breed of customization options, from changing icons and backgrounds [Hack #8.02] to modifying the iles that an application is based on.
Browse Your iphone directory on the iphone itself Because your iphone is probably with you far more than your personal computer, you will probably want to be able to access the ilesystem on the go. There are a few utilities that make this easy as well.
MobileFinder You can ind MobileFinder in cydia. once installed, you’ll see the icon for MobileFinder on your springBoard. Just tap it to start the application (Figure 1-20). once the application starts, you’ll be greeted by a screen like that in Figure 1-21.
26
iphone hacks
HACK # 1.05 Figure 1-20. MobileFinder icon
Figure 1-21. Browsing the root ile directory with MobileFinder
MobileFinder has started you at your root directory. To open a folder, just tap it. if you need to go back to the previous list of folders, just hit the Up button at the top left of the screen. MobileFinder displays the folder you’re currently in at the top of the screen to help prevent you from getting lost. These convenient features can be seen in Figure 1-22.
Figure 1-22. pressing the Up button at the top left displays the previous directory; the current directory is shown at the top.
if you ever ind yourself lost in a sea of folders, and wish to return to the root directory, just repeatedly press the Up button at the top left of the screen until you get back. alternatively, you can press the folder icon with trailing dots at the top of the folder list, which serves the same function as the Up button.
chapter 01 - ManipULaTe YoUR iphone’s FiLesYsTeM
27
To customize your MobileFinder experience, press the settings button at the top of the screen. You’ll be able to change numerous attributes affecting the ile directory and its appearance, as shown in Figures 1-23 and 1-24. When you are done with the settings screen, press the Finder button to resume browsing.
Figure 1-23. The top half of the settings screen
Figure 1-24. The bottom half of the settings screen
The bottom ive buttons on the MobileFinder screen help you with ile operations: you can copy, move, and delete iles with the three buttons on the left. The new button creates a new ile, folder, or bookmark. The info button provides any available information about a selected ile. in addition to modifying iles, MobileFinder can launch applications. Just tap an application, and it will launch. although MobileFinder may not be as easy to use as Diskaid, it makes up for this by eliminating the need for a computer to do this type of work. For more information about MobileFinder, simply read the release notes for the app in cydia. note that there’s a version of MobileFinder on the app store—but it lacks the features of the jailbroken version.
Mobile Safari Did you know that most web browsers can also be used to browse your ilesystem? For example, if you type File:///C:/ into Windows explorer on a pc, you can browse your hard drive.
28
iphone hacks
HACK # 1.05 Unfortunately, this behavior is stripped out of Mobile safari, but you can set up a web server on the device to solve the problem. on a jailbroken device, install lighttpd [Hack #9.10]. also, make sure that openssh is installed (preferably with cydia). once lighttpd is installed, you’ll need to create a coniguration ile before it will run. ssh to your phone [Hack #9.04]. navigate to /etc and type nano lighttpd.conf, then press enter. This step opens up a new ile in the nano editor. enter the following lines: dir-listing.activate = "enable" server.document-root = "/"
The document root in the second line, inside the quotes, can be any directory you want. We’re using “/” or the root directory, so that everything on the phone can be viewed. There are plenty of other options that you can set for your web server as well. We’ll just add one more for security: server.bind = "127.0.0.1"
This line makes sure that only the phone browser can view our iles. You can also add your home network preix to allow other computers on your network to see the iles, or you can leave the line out altogether. To start up your web server, type lighttpd -f /etc/lighttpd.conf and make sure that there are no error messages. Go to safari, and navigate to localhost or 127.0.0.1 (Figure 1-25). now you can browse the iles on your iphone! This hack has the added beneit that any ile that Mobile safari can handle—such as audio/video iles, pDFs, and so on—can be accessed and viewed.
Figure 1-25. Browsing your iphone’s ilesystem on your iphone using Mobile safari
There are thousands of iles on your iphone that might hold the key to the hack you wish to accomplish, so getting to know your ilesystem is a good irst step. — adam stolarz, christopher kurpinski & David Jurick chapter 01 - ManipULaTe YoUR iphone’s FiLesYsTeM
29
HACK 1.06:
Back Up Your iphone’s Files
You’ll kick yourself later if you don’t! Your iphone most likely contains valuable information that would be tragic to lose. in fact, many people rarely connect their iphones—or ipods, for that matter—to their computer—once they do the initial load of contacts, music, and pictures. plus, with the iphone’s own 3G/Wi-Fi connectivity, integrated iTunes and app store, and now, push email features, there’s almost no reason to plug the iphone back into the computer. except for one reason: backups. Unlike in a corporate iT environment, you probably don’t have a system administrator backing up your phone each night. and if you’re like millions of iphone users, your techie friend helped you unlock it so that you could use T-Mobile about six months ago and you’ve been afraid to mess with it, but you want to make sure you don’t lose your chat history and your pictures. The moral of this story is this: it’s never too late to back up. actually, that’s wrong! it’s often too late to back up. so keep reading. There are several major ways to back up the iles on your iphone: iTunes apple provides a thorough backup procedure for all the apple-sanctioned features of your phone. however, it’s currently an all-or-nothing proposition: there’s no way to selectively back up certain features more frequently, so you often have to wait several minutes for it to go through all its different backups. and if the sync fails or stops working for any reason, you may think that you've backed up when you haven’t. The cloud With apple’s new push email and push contacts, you really won’t have to worry about losing any important emails, calendars, or contacts. (Getting duplicate entries might be a new problem, however.) and simply by using exchange, or Gmail, or any iMap-based email server, you’ll ensure that your email stays unharmed in the event of iphone damage or replacement. Manual copies on a jailbroken phone, you can browse the ilesystem [Hack #1.05] and copy the most important iles back. You can easily back up your iles on your computer using iTunes so that if disaster strikes, all will not be lost. The problem is, what do you back up? The simplest solution is everything—but just like a full pc or Mac backup, you’ll still need an expert to help you sift through those 16 MB of who-knowswhat to ind the exact ile you need to get your chat logs or address book back. Fortunately, there are solutions to most of these problems. We’ll detail them here.
Strategy 1: Use itunes The simplest solution for any phone, jailbroken or not, is to back it up with iTunes. The bacon-saving feature of iTunes allows you to protect all these iles:
30
iphone hacks
HACK # 1.06 • • • • • • • •
Text messages notes call history contact favorites sound settings Widget settings certain network settings app store settings
To back up your iles, irst start iTunes with your iphone connected to your computer. From the Devices section, click on your iphone so that it’s highlighted and its information is displayed in the main iTunes pane, as shown in Figure 1-26. Finally, click the sync button at the bottom right of the iTunes window. Your iles will be backed up on your computer.
d
Technically, syncing and backing up are not the same, but if you sync the iPhone, it will also back it up. The Apple article at http://support.apple.com/kb/HT1766 explains the difference. Basically, a full sync or an update will trigger a backup. During a restore, you’ll be offered the chance to back up the iPhone as well.
To verify that iles have been backed up on your computer (or just to ind the date on which it was last backed up), go to the iTunes preferences menu. after the preferences window appears, click on the Devices tab. You’ll see your iphone’s preferences, as shown in Figure 1-27. on the Devices tab, locate your iphone in the box that says “The following iphones are backed up on this computer.” The date on the right is the last time it was backed up. To set iTunes so that it will back up your iphone every time you connect it to your computer, just check the box next to “automatically sync when this iphone is connected” in the options section at the bottom of the iTunes window. now, whenever you start iTunes with your iphone connected to your computer, it will automatically sync and back up your iles. (however, if your phone is jailbroken, make sure that you choose “no” when it offers you a irmware update.) Backing up your important iphone iles on your computer will save you a great deal of frustration if you ever have to restore your iphone [Hack #2.04]. With the simplicity of iTunes syncing function to back up your iles, you’ll be up and running much more quickly with your global iphone settings fundamentally intact.
Figure 1-26. The iTunes main iphone screen
chapter 01 - Back Up YoUR iphone’s FiLes
31
Figure 1-27. Device backups
on the Mac, these backups are actually stored in ~/Library/Application Support/MobileSync/ Backup/ (where ~ is your home directory: /Users/you). erica sadun has created an extremely useful command-line program called mdhelper (available from http://ericasadun.com/ftp/ Macintosh/mdhelper-universal.zip) that can be used to crack open these backups and get the goodies out of them. sometimes, for a variety of reasons, iTunes doesn’t offer you to restore your iphone to an earlier backup, or you want only part of the backup. With mdhelper, you can extract just the parts you need. To use it, run applications→Utilities→Terminal and change to the directory where mdhelper resides. Run it using this command: ./mdhelper
and you’ll get these options: Usage: mdhelper options -h
Print this message and exit
-d
Show the backup directory
-l
List contents for each platform
-L
List the summary for each platform
-f
List all files and mdbackup names for each platform
-m
Extract all available manifests
-X phrase Extract all files where the device name starts with the match phrase -C phrase Extract all files containing the phrase in the original filename -M phrase Extract all mdbackups whose name contains the match phrase -x files
Extract each mdbackup file listed by path
here are some example usages. To extract databases for sMs (to be placed back in /var/mobile/ Library/SMS/sms.db) and notes (/var/mobile/Library/Notes): ./mdhelper -C sms.db
32
iphone hacks
HACK # 1.06 The following commands extracts all the property lists, which contain bookmarks (/var/mobile/ Library/Safari/Bookmarks.plist) and map bookmarks. ./mdhelper -C .plist
The following command extracts sQLite databases, which contain address Book (/var/mobile/ Library/AddressBook/AddressBook.sqlitedb) and calendar (/var/mobile/Library/Calendar/ Calendar.sqlitedb) data: ./mdhelper -C .sqlitedb
There are dozens of other settings; if you explore /var/mobile and /var/mobile/Library, you should be able to see what is what.
Strategy 2: Use the cloud There are several core features—namely email, contacts, and calendars—that have been pushed into what is called “the cloud.” The cloud is a cute way of describing servers that are somewhere on the internet. if you’re using Gmail or another iMap-based email server, or exchange, you’re already using the cloud. Thus, if you (gasp) had to get a new iphone, your email would be intact—it’s not only on the iphone—it’s also on a remote server. another feature with cloud data storage is the push feature. With push, changes made on the Web or on computers to calendars, contacts, and email are instantly pushed over the eDGe or 3G or Wi-Fi internet connection to your iphone. This feature ensures that there is a copy of all this data securely stored on apple’s servers, as well as on your phone, and probably on your computers that are syncing to MobileMe as well (Figure 1-28).
Figure 1-28. apple’s MobileMe “cloud” syncing
Many of the iphone applications that accessorize existing online services—eBay, amazon, paypal, Wordpress, Jott—rely on accounts that you already have online. so saving data to the cloud is built into these applications, and all you need to do to get running on a new phone is reinstall the applications and reenter your login information. [Hack #11.01] and [Hack #11.03] show you how you can create scripts and applications to back up anything not covered here to the cloud.
chapter 01 - Back Up YoUR iphone’s FiLes
33
Strategy 3: Manually Back Up some iles can be manually backed up with no jailbreaking funny business. For instance, the iphone shows up in Windows and on the Mac as a digital camera, in addition to being a phone. photos To back up photos, you can simply drag the pictures off the phone on Windows or slurp them off using iphoto or image capture on the Mac. if you leave them on the iphone or ipod touch (assuming that you have room) then you’ll have two copies—one on the computer, one on the device—and thus you’ll have options if one or the other of those machines eventually crashes. Music and photos But what if, Jobs forbid, you should lose your desktop computer, and some of your movies, music, and photos are now only on your iphone or ipod touch? if you’ve jailbroken it, you should have no problem pulling them out of /var/mobile/Media using [Hack #1.05]. desktop iles now that your iphone has become your primary computer, and your desktop is falling into disuse, you’d better back up your critical iles onto your phone. an app store application called air sharing makes this easy and smooth, even if you haven’t jailbroken your phone. if you have a Mac see [Hack #9.06] to learn how to mount the iphone ilesystem using appleTalk or ssh. app Store applications even if you use app store applications, you may not sync to iTunes that frequently. and if you’re concerned that iTunes isn’t backing up some really important data for you, or you want to make a backup on a different computer, then appBackup (www.scott-wallace.net/iphone/appbackup) is for you. ironically, appBackup requires jailbreaking, even though its purpose is to back up app store apps. each app store app has its own sandbox, a private ile area where its data is stored. appBackup can zip up these data iles—on an app-by-app basis, or for all applications—and then store them in /var/mobile/Library/AppBackup/tarballs (Figure 1-29). You can ind appBackup on cydia, under Utilities, in the “BigBoss” repository. if you use MobileFinder [Hack #1.05], you can actually back up all the app data without using a computer. navigate to the /var/mobile/Library/AppBackup/tarballs folder and click send→e-Mail. Then send the ile to yourself—you now have an online backup of that data. To restore it later, copy the ile back into the same directory, run appBackup, and restore.
34
iphone hacks
HACK # 1.06 Figure 1-29. Backing up an app store ile to email
Jailbroken applications sometimes the data that you want to back up just isn’t backed up by iTunes or the cloud, and you’re going to have to go hunting for it. For instance, a fantastic application by saurik called cycorder [Hack #4.09] allows you to record great, high-quality video on your iphone. Unfortunately, the iles aren’t automatically backed up by iphoto or iTunes. Luckily, the video is stored in /var/mobile/ Media/Videos. Using any of the techniques in [Hack #1.05] or [Hack #9.06], you can copy these iles to your desktop, or email them to yourself one by one using MobileFinder. Fortunately, many jailbroken applications do sensible things, such as storing user data in /var/ mobile, like many of apple’s native applications do. Thus, a full backup of the /var/mobile directory may not capture every custom setting and all user data on the phone, but it will get most of it.
d
Each time you upgrade the irmware on your jailbroken iPhone, you have to reinstall all your applications. [Hack #10.10] shows how to back up those applications as well.
if you have an iphone with numerous app store and jailbroken applications and lots of custom data, you owe it to yourself to back them up.
chapter 01 - Back Up YoUR iphone’s FiLes
35
02
trouBLesHoot Your IPHone or IPod touCH troubleshooting is more of an art than a science. that’s a polite way of saying that troubleshooting involves a lot of trial and error and doesn’t always work. By the time you’re troubleshooting, something’s already broken and it’s not working the way it should. if you ask for advice, you’ll probably get some obvious suggestion, even the one you’ve already tried, and your would-be savior may shrug and say, “that should have worked.” if you’ve ever owned a luxury car, you’ve experienced “platinum service”—and the price that goes with it. But if you’ve extensively modiied your car with aftermarket parts and you take it to the dealer for engine work, you will ind it hard to get warranty service on your customizations. The same goes for the iphone. Walk into an apple Retail store Genius Bar and ask them if you can upgrade the irmware on your stock iphone, and you’ll have no problem. ask them how to rejailbreak your phone so you can continue to use it on T-Mobile after you upgraded to the Beta 3.1b irmware with cut-and-paste that you got off pirate Bay, and you’ll get the icoldshoulder. This chapter presents the self-help and community support that you can get for your hacked iphone. some of these tools are basic—and similar to what you’ll get if you step through the troubleshooting steps on apple.com. But apple’s advice doesn’t take into account the system-wide skinning you’ve done—not to mention other wild things you might have done, such as downgrading your irmware and patching the bootloader so that you could dual-boot iphone Linux. To continue the car metaphor, the irst couple of hacks are like checking luid levels and changing a tire. These quickly move into changing spark plugs and maybe even the brakes. Later in the book, you’ll be swapping out the engine—so this chapter also shows you how to call aaa for your hacked iphone. The main things to know about iphone debugging are:
1. 2. 3. 4.
36
iphone hacks
Millions of iphones have been successfully hacked. iphone hacking applications are constantly improved. The earliest hacks are the lakiest, and waiting often pays off. however, guinea pigs are necessary. You can usually unhack your phone, and it’s a good idea to do this if you need to get hardwarerelated warranty support.
HACK # 2.01
HACK 2.01:
triage Your iphone
Remain calm. The iphone (or ipod touch) is a well-designed, complicated computer. Despite looking like a single unit, it actually has a number of peripherals—just like a pc. an iphone’s performance can be reasonably compared to a top-of-the-line consumer pc from around 1998–1999, except with a more modern os and applications. Therefore, we can approach repair of the iphone (or ipod touch) like we would a conventional pc. here’s an example of the specs for this “pc”: • • •
operating system: Mac os X cpU: 400Mhz peripherals: touch screen, Wi-Fi, Bluetooth, wireless broadband modem, sound card, built-in microphone, Gps receiver, 4–32GB hard drive, accelerometer, 3D video card, 2 megapixel camera, 480x320 LcD screen.
if you have experience debugging pcs, debugging the iphone is actually not that hard. The usual checklist (Figure 2-1) for debugging a pc involves inding out which of the areas the problem is in.
1. 2. 3. 4.
applications: is a speciic application having or causing trouble? operating system: does it lock up on boot and never get to the application launching screen? if not, can you launch applications? Bios: is the computer getting through its power-on self-test and inding something to boot from? hardware: is the hardware plugged in and working?
Figure 2-1. Four areas to debug
a lot of the same techniques can be applied to the iphone. here are some of the common-sense approaches that still apply, translated into iphone-speak.
applications if you have a working iphone that can make calls, but the phone is laggy or just acting weird, it could just be application trouble. The following are some ways to diagnose application trouble.
chapter 02 - TRiaGe YoUR iphone
37
problems: • • •
You get stuck in an application and can’t get out. Battery life is draining faster than you expect due to background processes. applications crash as soon as you launch them.
solutions:
1. 2. 3. 4. 5.
Force-quitting the running program may ix problems with a single application [Hack #2.02]. Rebooting the iphone gets you to a known state [Hack #2.03] and may ix whatever temporary problem was occurring. Uninstalling or disabling bad, broken, or conlicting programs—especially background processes [Hack #2.04]—can help. Get an updated version of the application that’s compatible with your irmware. it could be bad application settings. Go to settings→General→Reset→Reset all settings, which will reset most applications as well as system coniguration settings.
Operating System on a conventional pc, problems with the os are more severe. DLL conlicts, missing drivers, or overall system instability leads us to believe that not just one program is giving us trouble but the whole operating system is having a problem. problems: • • • •
You have similar problems with any application you run. Major system services aren’t working at all—sound, Bluetooth, and so on. The whole system is lagging. You can’t even get past the apple logo, or to the application launching screen.
solutions:
1. 2. 3.
it could be bad application settings. Go to settings→General→Reset→Reset all settings, which will reset most applications, as well as system coniguration settings. if the iphone crashes or hangs on boot up, the os may need to be repaired [Hack #2.04] or reinstalled from scratch [Hack #2.05]. Make sure to back your iphone up before the trouble [Hack #1.06], in case it crashes and must be reformatted.
BiOS on a pc, you’d suspect Bios problems when you can’t even get to an os boot screen. on an iphone, the symptom would be that you never see the apple logo when you turn it on. solutions: if you can’t even get the os to boot, your boot loader may be broken, or the Bios may be misconigured. in the iphone’s case, this is usually the result of repeated irmware upgrades with various back-alley unlocking programs. Upgrading the irmware with the pwnage application, which should in turn repair the irmware bootloader with Bootneuter, may ix these problems [Hack #1.03].
hardware Don’t rule out that your iphone might be wigging out due to hardware troubles such as bad memory, corrupted irmware, or device malfunction. 38
iphone hacks
HACK # 2.01 problems: • • •
Your iphone won’t boot at all—it seems dead. Your iphone tries to boot and then crashes. Your iphone says “Repair needed.”
solutions:
1. 2. 3.
if your pc is unplugged, it won’t turn on. similarly, if your iphone has a dead battery, it won’t turn on. plug it into a wall or your computer and let it charge for a while (longer than 10 minutes) and see if it “wakes up.” Figure 2-2 shows an iphone that’s hungry for power. Reinstall everything from DFU mode [Hack #2.05], cross your ingers, and hope it’s not hardware. This approach works more often than not. The iphone is a robust device. if your phone says “Repair needed” (Figure 2-3), it could mean hardware, irmware, or software. apple may recommend that you take the phone to the Genius Bar for diagnosis. however, one glance at your hacked boot logo may eliminate their sympathy (and your warranty). Thus, you may want to virginize [Hack #2.05] your phone, if you can, before you bring it in for service.
Figure 2-2. iphone needs food, badly
Figure 2-3. Repair needed
Summary There’s very little to fear with a “broken” iphone. except for accidental hardware damage, like cracked screens, the iphone is unusually durable. The “body count” of truly bricked iphones is so low that it shouldn’t be a concern.
chapter 02 - TRiaGe YoUR iphone
39
HACK 2.02:
Force Quit an iphone application
The fastest way out of a hung situation. if you’re a pc user, you might not be used to apple’s habit of making one button do many things. and even though technically the iphone has four buttons, if you include the volume controls, pretty much all the resetting, rebooting, and reprogramming of the iphone uses just two buttons—home and power. The irst hack of note is Force Quit. This is the equivalent of command-option-esc/Force Quit on a Mac, or ctrl-alt-Del/end process on a Windows pc. if you’re in an application on the iphone that is hung or isn’t responding quickly enough because of network access or some other problem, you can get out to the home screen. To force quit an application that’s frozen, press and hold the home button for at least 6 seconds to close the frozen application (Figure 2-4).
Figure 2-4. hold down home for 6 seconds to Force Quit
d
There are other applications that capture this button push and may make it do something different. For instance, if you’re using Lance Fetter’s backgrounder application [Hack #9.14], you might see a “Backgrounding Enabled” message (Figure 2-5). In this case, just continue to hold the button and the app will quit.
Figure 2-5. Backgrounding enabled
if your iphone is still sluggish or unresponsive after you force quit the application, the next thing to try is rebooting [Hack #2.03].
40
iphone hacks
HACK 2.03:
HACK # 2.02 #2.03
reboot Your iphone
What to do when it just isn’t working right. if you’re stuck in a program and force quitting [Hack #2.02] didn’t do the trick, your phone may be totally frozen. sometimes you can’t get anything to work—or work right. Flaky apps may have put your operating system into an indeterminate state—or those apple-forbidden background apps that you bravely ran may have slowed your phone to a plodding crawl.
power Off normally The irst step to rebooting your phone is to simply try to turn it off. hold down the power button on the top (Figure 2-6) until you see the “slide to power off” graphic. if your touchscreen is responding, and you can slide it, whew. Let it turn off, then press the power button. You’re back in business.
Figure 2-6. hold down the power button
if that doesn’t work, your next option is a “hard” reset. To perform this, press both buttons (home and power, as shown in Figure 2-7) at the same time for about 10 seconds—the phone will reboot.
Figure 2-7. hard reset: press and hold both power and home buttons
chapter 02 - ReBooT YoUR iphone
41
Then, when you see the boot logo, let go (Figure 2-8).
Figure 2-8. Time to let go
if this doesn’t ix things, a good idea is to ensure that your phone is charged. Your next step might be to restore [Hack #2.04] your phone. (screenshots shown are from the iphone Dev Team’s pwnage Tool.)
HACK 2.04:
restore and recover Your iphone
Reinstall Mac os X on your device with recovery mode. ordinarily, if you want to reinstall os X on your iphone, you just plug it into your computer and click “Restore” in iTunes (Figure 2-9).
Figure 2-9. Restoring an iphone
restore however, restoring works only if iTunes recognizes your iphone. if that’s not happening, then recovery mode is the answer. Recovery mode lets iTunes know that the iphone is ready to be restored. Restoring your iphone puts it into an almost completely factory-fresh state that includes the erasure of all data, including songs, videos, contacts, photos, calendar information, and any other data that was added to your iphone after its purchase. Because the loss of all your data can be inconvenient at best, restoring should be your last resort after trying any applicable troubleshooting techniques. The only more drastic restoration beyond restoration is DFU (Device Firmware Upgrade) mode [Hack #2.05]. 42
iphone hacks
HACK # 2.04
d
At times, you might want to use restore mode even when you’re not restoring. For example, you may also be asked to enter restore mode by some hacking applications, because it puts the iPhone in a state where it waits for an application to talk to it, whether that’s iTunes or a less oficial app. And you can back out of restore mode easily.
entering recovery Mode There are a couple of ways to get into recovery mode:
1. 2. 3. 4.
Make sure that your phone is off. if your phone is working normally, just hold down power for ive seconds and then slide to turn off. if your device can’t boot or is hung, you’ll turn it off by holding power and home until it powers off. hold down the home button (Figure 2-10). connect it to your computer via UsB. keep holding the home button until your phone displays a screen similar to Figure 2-11, then let go.
Figure 2-10. hold down home until you are told to let go
Figure 2-11. a device in recovery mode
chapter 02 - ResToRe anD RecoVeR YoUR iphone
43
restoring the Firmware if iTunes is running, it’ll restore your device, as shown in Figure 2-12.
Figure 2-12. iTunes notifying you that it’s found a device in recovery mode
The next step, if you’re going through with it, is to click Restore (Figure 2-13).
Figure 2-13. iTunes has made the Restore option available
in many cases, you will be option-clicking (Mac) or shift-clicking (Windows) the Restore button. This will allow you to restore to the irmware of your choice. a link to all of apple’s irmware iles can be found in [Hack #1.02], and you can either download a custom irmware online or create your own with jailbreaking tools like pwnage [Hack #1.03]. Figure 2-14 shows the irmware selection dialog.
Figure 2-14. Loading a irmware image
44
iphone hacks
HACK # 2.04
exiting recovery Mode if you change your mind about recovery mode, it’s easy to get out of with a hard reset. if you just leave the device for a while, it will power down, at which point you can simply turn it back on. To speed things up:
1. 2. 3.
Disconnect the iphone or ipod from the computer. hold down the power and home buttons until you see the boot logo (Figure 2-15). When you see the boot logo, let go (Figure 2-16).
Figure 2-15. hard reset: press and hold both power and home buttons
Figure 2-16. Let go of both buttons
it’s almost guaranteed that within your irst week of iphone hacking you will think you’ve “bricked” your phone. Luckily, it is very easy to ix. When all else fails to bring back your iphone’s functionality, look to the Restore function, either in recovery mode or DFU mode [Hack #2.05] to solve your problem. This trusty technique should ix almost any imaginable hacking- or non-hacking-related iphone issue.
d
Fully restoring your iPhone to a factory state (including irmware) is called virginizing. Restoring an iPhone, iPhone 3G, or iPod touch in DFU mode with an Apple-provided irmware image is all you usually need to do to virginize your phone.
chapter 02 - ResToRe anD RecoVeR YoUR iphone
45
HACK 2.05:
enter dFU Mode
Reinstall everything with Device Firmware Upgrade Mode. in the process of hacking your phone, you may get into a state where you just can’t get the os to boot. or you may get errors when attempting to restore your device. or you may be trying to unlock your phone (chapter 7) and you need to replace not just the os (as in jailbreaking) but the bootloader irmware as well. DFU mode performs a similar function to restore mode, except that in DFU mode, the iphone never even tries to boot os X. it’s kind of like booting a pc off a restore disc, which then replaces your os with a pristine installation. More likely, though, you’ll be trying to do something clever with your phone, and the instructions for that clever feat will ask you to enter DFU mode. For all of these situations, DFU mode is the troubleshooting mode you seek. in DFU mode, your iphone never gets to boot to Mac os X. instead, it sits there waiting to have its memory—and Bios—completely erased and rewritten.
entering dFU Mode here are the basic steps to get into DFU mode. You have to get the timing right.
d 1. 2. 3.
If you have any trouble following the instructions here, you can use the Pwnage application (available at http://blog.iphone-dev.org), which will guide you through the process. The screen shots given here and throughout this chapter came from this excellent application.
Turn off your phone (Figure 2-17). hold down both the home and power buttons for exactly 10 seconds, then release the power button and keep holding the home button (Figure 2-18). after another 10 seconds, let go of the home button as well (Figure 2-19).
Figure 2-17. power down the phone
46
iphone hacks
HACK # 2.05 Figure 2-18. hold both for 10 seconds, then release the power button
Figure 2-19. hold home button for another 10 seconds, then release
in DFU mode, there should be nothing on the iphone screen except backlit blackness, as shown in Figure 2-20.
Figure 2-20. DFU Mode: screen is lit, but black
on Windows, you should hear two UsB beeps—one “device disconnected” beep after the irst 10
chapter 02 - enTeR DFU MoDe
47
seconds, then one “device connected beep” once you enter DFU mode. on Windows Xp, you should also see a device identiication bubble in the taskbar (Figure 2-21).
Figure 2-21. Taskbar notiication in Windows Xp
once you’re in DFU mode, iTunes should give you the same recovery mode message it gives with the normal recovery mode [Hack #2.04] (Figure 2-22).
Figure 2-22. iTunes detecting the iphone in DFU mode
next, option-click (Mac) or shift-click (Windows) the Restore button. This will allow you to restore to the irmware of your choice. a link to all of apple’s irmware iles can be found in [Hack #1.02], and you can either download a custom irmware online or create your own with jailbreaking tools like pwnage [Hack #1.03] (Figure 2-23). if you simply click “Restore” and allow iTunes to choose the irmware, you will virginize your phone.
Figure 2-23. Loading a irmware image
48
iphone hacks
HACK # 2.06
exiting dFU Mode You can back out of DFU mode as long as you haven’t started loading a new irmware image. The steps are: 1. With the phone plugged into your computer, hold down both the power and home buttons for 10 seconds or longer—until the screen changes. 2. on Windows, you may hear a beep or get a UsB device notiication as your iphone comes out of DFU mode. 3. Your phone should boot as normal. if it’s still off after 10 seconds, you should be able to turn it on by pressing the power button briely.
HACK 2.06:
Get Quality Support with iphone hacking
courteous, experienced hacking support is available 24/7. although this book attempts to address as many issues as possible, it is still likely that you may encounter a completely new and unique situation with your iphone. Luckily, the internet is full of great resources that can help you determine a solution to the problem. The big problem is that iphone hacking is, by deinition, unoficial and mostly unauthorized. and even when hacking is tolerated, or even privately encouraged, it is unreasonable to expect a large corporation to support not only its own software, but the broad scope of possible hacked variants of that software. Thus, it’s necessary to go elsewhere for support. Fortunately, support is available— in fact, the organized support available for iphone hacking surpasses that of most software companies, and is free. For those unfamiliar with the open source software movement, it is quite a cultural shock to ind that they can often contact the real author of a piece of free software—and get courteous and helpful email support. in an age of self-help forums and pay-per-incident support calls, the accessibility and, for lack of a better word, the humanity shown by open source software developers is legendary.
the community although there are hundreds—if not thousands—of websites, forums, portals, and blogs dedicated to the iphone, the actual core of hackers who do the real work are few in number. perhaps several dozen key contributors do the intellectually stimulating but long and painstaking work of discovering the exploits, creating stable, well-tested software to open up the iphone and ipod touch, and packaging it so that anyone can use it. in the lurry to monetize the iphone phenomena in every way possible, some application vendors have taken open, free work and software from a core iphone hacking team, wrapped it in a proprietary application, passed it off as their own work (or given perfunctory acknowledgement) in order to make money through licensing, advertising, and “please Donate” online tip jars. arguably, these carpetbagging “script kiddies” have added some value—perhaps in packaging up hard-to-use command-line tools into a friendly “click here to jailbreak” application. But as they did not develop the original hacks themselves, they are not necessarily capable of ixing the bugs, or reversing any damage that their one-trick applications may cause.
chapter 02 - GeT QUaLiTY sUppoRT WiTh iphone hackinG
49
The best people to support a hack—and to accurately represent what it’s capable of doing—are the authors themselves.
the iphone dev team We keep speaking about the iphone hacking community. speciically, the iphone hacker community consists of several dozen core individuals who have enabled or created most of the innovations you will see in this book. The largest group has associated under the banner of the iphone Dev Team. Their website and blogs have moved around a bit, but at the moment their main portal can be found at http://wikee.iphwn.org (Figure 2-24) and their blog at http://blog. iphone-dev.org (Figure 2-25).
Figure 2-24. iphone Dev Team portal
50
iphone hacks
HACK # 2.06 Figure 2-25. iphone Dev Team Blog
hackint0sh The hackint0sh forum (www.hackint0sh.org) is a huge community of more than 80,000 members and covers a wide range of apple hacks including ipods, iphones, apple TVs, and Mac os X in general. This is the primary forum for support on iphone Dev Team hacks and an excellent resource for new and experienced hackers (Figures 2-26 and 2-27).
Figure 2-26. hackint0sh welcome
chapter 02 - GeT QUaLiTY sUppoRT WiTh iphone hackinG
51
Figure 2-27. hackint0sh forum
the iphone Wiki another fantastic, ad-free, real-deal site is www.theiphonewiki.com (Figure 2-28), started and maintained by GeoHot (George hotz), who was irst to unlock an iphone and who continues to make major breakthroughs on iphone hacking. The wiki has the clearest, most concise, just-thefacts analysis of all the known exploits on the iphone and ipod touches. although sometimes hard to read for nonengineers, this is a warm respite from the biased shilling and link posting that pervades the gadget blogosphere. hotz’s own very technical blog can be found at http://iphonejtag.blogspot.com.
Figure 2-28. The iphone wiki
52
iphone hacks
HACK # 2.06
iclariied another great resource that is well edited, well maintained, and easy to use is http://iclariied. com (Figure 2-29). This site is clean and concise; they also operate their own iphone application repositories for both installer.app and cydia [Hack #1.04].
Figure 2-29. iclariied’s website
modmyi.com another well-established site supporting iphone hacking is www.modmyi.com (Figure 2-30). although their site is cluttered, their content is good. Like iclariied, they provide iphone application repositories and hosting for user-created applications and skins.
chapter 02 - GeT QUaLiTY sUppoRT WiTh iphone hackinG
53
Figure 2-30. The modmyi site
real-time tech Support: irc sometimes the wikis, forums, and step-by-step tutorials just don’t have the answer. and no matter how much searching you do, sometimes it helps to have a human being point you in the right direction. if you still can’t ind what you’re looking for on any iphone hacking websites, then this is your solution: iRc (internet Relay chat) connects users from all over the world. iRc servers provide chat rooms called channels where you can get help day or night. To start chatting, you must irst install an iRc client on your computer or iphone. Mac users can download colloquy from http://colloquy.info. pc users can download miRc from www.mirc.com. To get an iRc client on your iphone, you can search for iRc in cydia or installer; Mobile colloquy and iRcm are two applications available as of this writing. once you have your iRc client running, add this server: irc.osx86.hu with the port set to 6667. if you already have iRc properly conigured, you can just type this URL into your browser: irc://irc.osx86. hu/iphone. see Figure 2-31. although this is by no means a minitutorial on iRc, you can get a list of channels to join by typing: /list
and you can join a channel by typing /join , such as: /join #iphone
several useful channels are #iphone, #iphone-dev, and #itouch.
54
iphone hacks
HACK # 2.06 if you’re not familiar with iRc, the basic rules are: don’t post too much; don’t harass; be polite; follow the directions you see when you join the room. once you’ve joined one of the channels, you can ask your questions. You’re likely to get your answers, as many of the iphone Dev Team developers inhabit these rooms whenever they’re online, which is most of the time.
Figure 2-31. iRc client in the #iphone channel
Some Favorites one of the best ways to ind reputable, primary sources of information on iphone is to seek out the websites of your favorite application authors. For instance, a proliic contributor to the community, erica sadun, has created a number of indispensable command-line utilities and provided source code as a starting point for iphone development, and she’s even written a very popular book on the subject: see http://ericasadun. com (Figure 2-32).
chapter 02 - GeT QUaLiTY sUppoRT WiTh iphone hackinG
55
Figure 2-32. erica sadun’s website
Jay Freeman (saurik) is a Dev Team member and software master who single-handedly developed Winterboard (for iphone skinning), ported Java to the iphone, and created the open iphone distribution application cydia. he also completely simpliied development of jailbroken applications so that you can do iphone development right on the iphone itself! see www.saurik.com (Figure 2-33).
Figure 2-33. Jay Freeman’s website
BigBoss, a Dev Team member and early repository hoster, created the popular and tremendously useful Bossprefs application used to conigure many of the system-wide settings on jailbroken phones. BigBoss’s site at http://thebigboss.org has great resources and is one of the biggest application repositories (Figure 2-34).
56
iphone hacks
HACK # 2.06 Figure 2-34. BigBoss’s website
d
Some forums have pleas for donations, with comments like “Help keep applications like this in development,” despite the fact that they have no relationship to the developers. If you feel compelled to donate in order to support the iPhone hacking community, consider donating directly to the individual hackers and developers who create the applications you use. You can usually ind their personal blog or website with a little searching.
chapter 02 - GeT QUaLiTY sUppoRT WiTh iphone hackinG
57
03
messAgIng And CommunICAtIon Over the last several decades, computers, phones, and internet platforms have provided us with dozens of different modes for text-based multimedia communication: email, chat, text messaging, instant messaging, and multimedia messaging. The iphone and ipod touch support email exceptionally well, providing high-idelity support for many common email attachments. The addition of near-instant “push” email support to the iphone—for free—has enhanced real-time communication. This chapter introduces the iphone email system and various clever ways to use it. it also covers the other must-have communication tools—sMs, iRc, and iM—and ways to get the most out of these protocols. Finally, it presents several workarounds to solve the iphone’s remaining deiciencies in these areas.
HACK 3.01:
Get the Most from iphone email
You can use a free Yahoo! push email account as extra “cloud” storage for your iphone. sure, the iphone is a “computer in the palm of your hand.” But it lacks a few key features that desktops have. The iphone has a tiny keyboard, making it dificult to enter long URLs. Frustratingly, the iphone still lacks (as of this writing) copy-and-paste functionality, making the manipulation of URLs—a key part of internet power suring—a dificult task. and the iphone has resisted the urge to provide system-wide ilesystem access, preferring to keep data (pictures, videos, podcasts, and notes) in their own application “silos.” Fortunately, the iphone does have a feature that can be leveraged into a makeshift copy-and-paste and ilesystem—email. Many of the built-in iphone applications have an integrated “email this” feature that allows URLs and picture attachments to be emailed. and because the iphone can connect to the many free mail servers, saving iles and URLs is easier than it seems.
58
iphone hacks
HACK # 3.01
iphone email Support The iphone’s email application is probably the easiest to set up of any phone-based email. it has lexible support for iMap, pop, exchange, and aoL. one of the ways that iphone email excels is in its ability to preview hTML email, display most common attachments (.pdf, .doc iles, and .xls iles), as well as to follow the links in emails. one of the main complaints about early versions of the iphone was its lack of “push” email—the iphone “pulled” email on a schedule and the shortest interval that you could set for updates was every 5 minutes. That was resolved with irmware Version 2, putting the iphone on an even playing ield with the ubiquitous BlackBerry. You can get push email from an exchange server, from apple’s MobileMe service, or even from a free Yahoo! email account (Figure 3-1). iphone (and ipod touch) email is easy to set up even without being connected to a computer.
Figure 3-1. Yahoo! push email
email as a clipboard and hard drive although there was a time, long ago, when large email attachments were a burden, for most of the free email services, those times are past. Yahoo! and Google both provide free iMap accounts with tremendous storage (Google calls their plan “ininity+1,” as they are continually increasing the amount of storage available to each user). Therefore, it’s quite easy to set up an additional email account that’s only for private use for your own personal storage. anything that the iphone can play can be attached to an email. Most graphic image formats, Mp3 and aac music, Mp4 videos, Microsoft ofice (Word, powerpoint, and excel iles), and pDF iles can be viewed. as mentioned, Yahoo!’s email even supports push on the iphone, so it’s an ideal candidate for this use, as there will be almost no delay between sending yourself a ile or link—from your desktop—and having it show up on the phone.
chapter 03 - GeT The MosT FRoM iphone eMaiL
59
Setting Up The irst step is to create a free account at Yahoo! (Figure 3-2).
Figure 3-2. Yahoo! email signup—you know the drill.
Go to settings→Mail→accounts→add account and choose Yahoo! Mail (Figure 3-3). Fill out the required information in the new window (Figure 3-4). once you’re done, just hit the save button at the top right. Your iphone will then connect with Yahoo! to verify the information. once it inishes verifying, your additional account(s) will be saved and visible in the accounts section of the Mail screen. if you click advanced, you can verify that push mail is enabled.
Figure 3-3. so many mail options!
60
iphone hacks
HACK # 3.01 Figure 3-4. Yahoo! free push email storage
You can send any reasonably sized iles—including multimegabyte Mp3s and movies—to this email “hard drive” (Figure 3-5).
Figure 3-5. sending iles to the private email account
once these notes-to-self get pushed to your iphone, you can access any of the documents for view or playback by clicking their icons in the message (Figures 3-6 and 3-7).
chapter 03 - GeT The MosT FRoM iphone eMaiL
61
Figure 3-6. email storage
Figure 3-7. Viewing an attachment
if you ever need a hard copy, you can quickly and easily forward them to someone who has a printer. You can even create “folders”—a very ilesystem-esque concept—via the Yahoo! Webmail page or the iphone and organize your various “iles” (attachments) just like you might on your hard drive. The great thing is that these will be cached (downloaded) onto your iphone, be webaccessible, so if you should need to restore your iphone, you won’t lose any of them. another useful trick is to bookmark links on websites. Many websites have a “recommend this” or “email this link” feature for articles. You can use this private iphone email address for those kinds of messages, so they don’t clutter up your normal inbox.
d
While we’re on the subject of free “push” services, it’s important to note that Google offers free Calendar and Contact syncing. Check out www.google.com/mobile/apple/sync.html.
copy and paste as mentioned before, the closest the iphone comes to copy-and-paste is the inclusion of an “email this” in many iphone applications, allowing one to send web URLs, notes, pictures (Figures 3-8 and 3-9), and on jailbroken phones, movies, and any other ile accessible on the phone.
62
iphone hacks
HACK # 3.01 Figure 3-8. “copying” a URL to the “clipboard”
Figure 3-9. “copying” a photo to the “clipboard”
if your phone is jailbroken, installing MobileFinder (found in cydia [Hack #1.04] and shown in Figure 3-10) will allow you to attach any ile in the entire ilesystem to an email. This is very convenient for backups and for sending movies, audio iles, or other content that is on the iphone and needs to be backed up, shared, or saved in the inbox for convenient access. Using MobileFinder [Hack #1.05], navigate to the ile you want, as in Figure 3-11, then click the “e-Mail” button on the bottom left. This will launch your default email account with the selected ile attached.
Figure 3-10. MobileFinder icon
chapter 03 - GeT The MosT FRoM iphone eMaiL
63
Figure 3-11. Backing up the address Book via email with MobileFinder
HACK 3.02:
Unleash the Full power of texting
Go beyond apple’s barebones sMs application. The Mobile sMs application that comes on the iphone is functional, but it lacks many of the text messaging features that people have grown used to on other phones. an initial lack of multiplerecipient texting was remedied in irmware Version 1.1.3, but some serious limitations remained. Multimedia Messaging service (MMs), also known as picture messaging, provided by every mobile carrier and supported by most camera phones, is completely missing from the iphone. There are other reasons the built-in sMs just doesn’t cut it. Many people want to send canned messages from a message template—“i’m going to be late, please have the call without me”— without having to type it all. and even though the ipod touch, not being a phone, doesn’t have any built-in texting support, people want to send messages with it as well. Luckily, there are some useful tricks and third-party applications to help you get around the sMs and MMs limitations. Many of these solutions use built-in features of the iphone or are app store apps and thus don’t require jailbreaking.
Send Multiple text Messages via email prior to irmware 1.1.3, sending a sMs to multiple recipients was impossible. even if your iphone has 1.1.3 or later, the sMs that you send to multiple recipients still diminishes your plan’s monthly allowance of text messages. sending text messages via email conserves your valuable text message allotment and allows iphone owners to use email groups to still send sMs to multiple recipients. The only requirements for accomplishing this are that you know what cellular service provider each of your recipients uses, and that you are connected to the internet with either Wi-Fi, 3G, or eDGe. no jailbreak is required! as long as you know this information, the rest of this process is a piece of cake.
64
iphone hacks
HACK # 3.02 First, write down the 10-digit cellphone numbers of the contacts that you would like to send the sMs message to. next, open your email account and compose a new email. in the To ield, type in the 10-digit phone number followed by an “@” sign and the domain address associated with that person’s cellular service provider. The domain addresses and character limits of major U.s. cellular service providers are listed here: •
• • • • •
Older AT&T Wireless: [email protected] (110- and 160-character limits for TDMA subscribers and mMode/Next Generation network users, respectively) Cingular: [email protected] (160-character limit) Newer AT&T Wireless: [email protected] T-Mobile: [email protected] (140-character limit) Verizon: [email protected] (160-character limit) Sprint PCS: [email protected] (160-character limit)
say, for example, that you wanted to send messages to the recipients whose numbers are (619) 123-4567, an aT&T Wireless subscriber, and (818) 123-4567, a Verizon subscriber. You would write them as [email protected] and [email protected], pressing the blue plus sign button to add additional recipients. characters written in the subject and message ields of the email will be included in the text messages as “(subject)message”. Figure 3-12 shows the completed message.
Figure 3-12. entering multiple numbers into a new email to send as sMs
Because you are sending the sMs messages via email, it won’t be billed as a text message, and it won’t count against your monthly allowance of text messages. however, it will still count as an incoming sMs message for the recipient, which could count against their monthly text message allowance and/or incur a charge, depending on their service provider. in addition to multiple sMs recipients, this email technique will work for a single recipient. By sending sMs text messages to one or more recipients using your email, you’ll be saving money, as these won’t be billed as normal outgoing sMs text messages. a similar approach is taken by several of the app store sMs messaging applications, such as Maildash by pureBlend software (Figure 3-13) and Quicksend from absolute apps. These applications use sMs gateways to forward emails to sMs clients.
chapter 03 - UnLeash The FULL poWeR oF TeXTinG
65
Figure 3-13. Using Maildash
Send SMS through Your instant Messenger a second way to get text messages out of your iphone or ipod touch is through instant messaging. Both Yahoo! and aiM use sMs gateways that allow you to text directly from an iM client. To send text messages via iM, just add a “buddy” using the recipient’s phone number with a plus before it, as shown in Figure 3-14. You’ll get responses to this sMs in your iM chat.
Figure 3-14. adding a mobile number in Mac aiM
although aiM can text only domestically, Yahoo! has some worldwide texting capability. You can see a list of supported locations here: http://messenger.yahoo.com/features/sms. There’s an app store app called beejive (Figure 3-15) that also sends sMs through aiM or Yahoo! messaging, and integrates with your iphone address book so you don’t have to manually add the recipient phone numbers.
66
iphone hacks
HACK # 3.02 Figure 3-15. sending sMs with beejive
Sending MMS Messages here is a way for you to send and receive MMs without any jailbreaking whatsoever. as with sMs, to send a picture message, you must irst know what cellular service provider the recipient uses. once you know this information, use one of following MMs email addresses, replacing xxxxxxxxxx with the recipient’s 10-digit mobile number: • • • • •
AT&T Wireless: [email protected] Cingular: [email protected] Sprint PCS: [email protected] T-Mobile: [email protected] Verizon: [email protected]
once you have the recipient’s information ready, open the picture from your iphone’s camera Roll, and click the icon at the bottom left to pull up a menu (Figure 3-16). select email photo, and you’ll be brought to the email composition screen with your picture attached to the email. on the irst line, enter the recipient’s cell number followed by the appropriate MMs email address as shown in Figure 3-17. if you want to send it to more than one person, just add an additional email address in the To ield. Then press send, and the recipient will receive the picture as a normal MMs message.
d
Although sending this MMS via email is free for you, the recipient will still be charged by their service provider for an incoming MMS message.
If the recipient has an iPhone that does not support MMS, you will have to send the picture to their regular email address instead of the previously described MMS email addresses.
Once you know this process will work, you can add a “phone-email” to your contacts’ email listings in your Address Book. You could also do this in advance on your computer’s address book and sync it over to your iPhone.
chapter 03 - UnLeash The FULL poWeR oF TeXTinG
67
Figure 3-16. The email photo button
Figure 3-17. sending an MMs message to a recipient using Verizon Wireless
receiving Multimedia Message Service (MMS) on the iphone Unfortunately, the iphone does not support Multimedia Messaging service (MMs). some carriers implement an alternate method of receiving the message via the Web. in the U.s. market on aT&T, when you receive an MMs, you may get an email message such as the one in Figure 3-18, telling you to log into a web page. Without copy-and-paste functionality, accessing this message is a pain, but it can be done.
68
iphone hacks
HACK # 3.02 Figure 3-18. The email
enter this data into the form they send you (Figure 3-19).
Figure 3-19. Retrieving an image
This allows the message to show up, as you can see in Figure 3-20.
Figure 3-20. The picture retrieved
chapter 03 - UnLeash The FULL poWeR oF TeXTinG
69
Because of this inconvenience, it’s best to have your would-be senders ind an alternative way to send you multimedia messages. some options are:
1.
2.
d
have the sender attach the media via email to any email address you can check on your iphone. if you have a lot of friends who send you messages, you can set up a separate email account [Hack #3.01]. as long as the media is in an iphone-compatible format (JpeG, pnG, TiFF, Mp3, and so on), you’ll be able to play it back or view it on the iphone. and because this process is done completely by email, neither you nor the sender will incur any MMs charges from your service providers. if the sender is on an iphone as well, the solution is obvious—have them email the picture. alternatively, if the sender only knows your cell number, they can host the picture on a web page (if it’s not already hosted), and send an sMs message containing a link to the web page. Depending on their phone, they may have a feature that allows them to send a link as a text message, or to copy and paste the URL from their phone’s web browser into an email. [Hack #3.04] shows how to receive MMS natively—but requires jailbreaking.
HACK 3.03:
text Your iphone with Your desktop instant Messenger Texting is a fast way to get data to your iphone. email is a great way to send messages to your phone [Hack #3.01], but often, tiny ephemeral to-dos or URL messages get lost in the morass of distracting email messages. and if you don’t have push email conigured just right, the message might not arrive right away. The sheer inconvenience of booting up an email program, typing in your iphone email address, and waiting for it to send begs for another solution. Fortunately, there’s a way to get important notes onto the iphone: text messaging. Using an iM-tosMs gateway such as those provided by the aoL instant Messaging (aiM) or Yahoo! Messenger desktop clients, you can very easily send URLs and short messages to your phone. This gives you prominent notiication on your phone’s screen, as well as an audible alert, so if the message is “don’t forget to buy milk,” you’ve got a good chance of noticing it before you get home.
Depending on the text message option attached to your cellular plan, you may pay extra to send or receive text messages.
add Your phone to Your instant Messenger First, create an account on either aiM or Yahoo!; for this example, we use an aiM user called “iphonehacks.” The look of the screen varies by client (we’re using a Mac here) but the approach is the same in most clients: add a user using the plus sign and the 10-digit number (Figure 3-21).
70
iphone hacks
HACK # 3.03 Figure 3-21. cell phone numbers in aiM
note to Self sending a note to yourself is quite fast due to the fast-delivery design of the text messaging system (that’s part of what your text message plan is paying for). Typing phone numbers into the iM is probably the quickest way to get them from the desktop to the phone and not lose it, which is especially useful if someone is reading a number to you (Figure 3-22). The number will be converted to a text message through aoL’s iM-to-sMs gateway, and sent to the iphone. The iphone recognizes it as a phone number, so you can click it and quickly dial it.
Figure 3-22. sending a phone number
now your small bits of information—shopping lists, to-do lists, and the like—won’t get lost in your email inbox when sent via sMs.
Shrinking UrLs for text Messages Let’s say you needed to note down an address for the apple store (Figure 3-23) and you wanted to send that map URL to your phone.
chapter 03 - TeXT YoUR iphone WiTh YoUR DeskTop insTanT MessenGeR
71
Figure 3-23. selecting a Google Maps URL
Because URLs can be very long, if you send them via sMs, they’re going to be chopped into multiple text messages, may cost more to send, and won’t be clickable when you receive them anyway (Figure 3-24).
Figure 3-24. a long URL broken into two messages
The trick is to go to http://tinyurl.com. There you will ind a form where you can paste in the URL. TinyURL hosts a link to your URL that is much shorter—just a few characters (Figure 3-25).
Figure 3-25. TinyURL makes URLs tiny
72
iphone hacks
HACK # 3.04 These tiny URLs it clickably into a single sMs (Figure 3-26). Figure 3-26. clickable tiny URL
it’s worth noting that Google already provides another way to send the URL via its own sMs gateway, as shown in Figure 3-27. a number of websites are incorporating features that allow you to send bits of information to your mobile via sMs, so look for them.
Figure 3-27. Google offers send-to-phone
HACK 3.04:
enable MMS picture Messaging on Your iphone a little change to your iphone’s messaging plan lets you send and receive MMs messages with swirlyMMs on jailbroken phones. The iphone does so many things quite well, making it all the more frustrating when the iphone fails to perform some normal task. Tethering, copy-and-paste, forwarding sMs...the list goes on. and sending and receiving MMs picture messages, just like on any normal phone, is another one of those frustrations.
chapter 03 - enaBLe MMs picTURe MessaGinG on YoUR iphone
73
some people don’t want to work around their phone’s inability to receive MMs, as in [Hack #3.03]— they want it to “just work.” The good thing is that the iphone is very capable of it. it just takes some software—and a change to the texting plan—to make it work. speciically, it requires:
1. 2. 3.
changing your cellular plan to enable Multimedia Messaging (a.k.a. picture Messaging) Jailbreaking the phone [Hack #1.03] installing swirlyMMs
picture Messaging, Wap, and Wap push Wireless application protocol, or Wap, is a standard allowing phones to access the internet. Wap is used extensively on most phones that have a “wireless internet” feature. Because most phones have far less computing power than a desktop computer, this set of standards allowed web pages to be formatted for the small screen and to reduce the bandwidth necessary to deliver them.
d
For the protocol-minded, WAP could be considered a sort of “TCP/IP” for phones, providing TCP-like streams through the Wireless Transaction Protocol (WTP), UDPlike data delivery through the Wireless Datagram Protocol (WDP), and a sort of “compressed HTTP” through the Wireless Session Protocol (WSP).
Wap push is a network-to-phone push protocol that sends a Wap URL to the phone for it to then retrieve automatically without user intervention—sort of like texting a web address directly to the phone. The iphone was promoted as the irst phone with “real internet” and, like many advanced smartphones, was able to use the internet Tcp/ip protocols directly. subsequently, apple developed a separate push architecture for MobileMe and exchange on the iphone. as a result, most iphone data plans do not have the “Wap push” feature enabled by default. Before you can add support for MMs, you must add Wap push to your plan, without removing access to the normal Wap gateway that the iphone uses. Typically, you can call your provider and request that it be added to your plan if you don’t already have it. if they offer to transfer you to “iphone technical support,” don’t let them, because you’re asking for a very un-iphonic thing. The technical changes that need to be made, once you get hold of your carrier’s technical sales representative (see following section), are:
1. 2. 3. 4. 5.
enable Wap push. preserve both the old and new Wap gateway (i.e., don’t disable the iphone features). change the texting plan to a non-iphone plan (i.e., a texting plan that supports picture messaging). Leave the iphone data plan intact (allows visual voicemail to work). Resend over-the-air activation messages, or oTas, to the phone.
The forums at www.swirlyspace.com have lots of data on how to conigure various worldwide GsM carriers to allow MMs.
adding Wap push to a U.S. at&t account although your carrier may vary, the majority of U.s. domestic iphones are on aT&T, so this hack will show you how to get it working on aT&T.
1. 2. 3.
74
iphone hacks
call 888-892-9760. navigate through the responses until you reach an operator. Validate your account credentials to their satisfaction. ask to speak to a technical sales representative. ask if you can please remove your iphone text messaging plan, and add the normal text messaging plan with MMs features (Wap push).
HACK # 3.04 sometimes, depending on the level of expertise of the tech support person, they may not understand the goal. one way to make it clear is to say that you want the ability to use the siM card in both an iphone and in another phone that supports picture Messaging (MMs). That way, they will know that they need to keep the iphone features working (iphone data plan, visual voicemail, and access to the iphone-speciic Wap gateways that allow Wap trafic to go to the iphone) as well as the new Wap gateways that will enable the Wap push. as an added bonus, you can now swap your siM card into other phones, as long as they are unlocked or locked to aT&T’s network. Figures 3-28 and 3-29 show screenshots of an aT&T plan conigured to allow MMs. The texting plan is “Messaging 200.”
Figure 3-28. Data plan before
Figure 3-29. Data plan after
chapter 03 - enaBLe MMs picTURe MessaGinG on YoUR iphone
75
Using SwirlyMMS swirlyMMs (www.swirlyspace.com) can be installed with cydia on a jailbroken [Hack #1.03] phone. This app allows you to send MMs pictures to phones capable of receiving them, and to receive MMs as well. Launch swirlyMMs, and you’ll see a screen with a couple of buttons. click the settings button and enter your MMs information (Figure 3-30). You will need to contact your cellular provider, or the swirlyMMs forums, to determine the appropriate information. settings for a number of popular providers can be found on www.swirlyspace.com. here are settings that worked for swirlyMMs on the U.s. aT&T network: MMsc: http://mmsc.cingular.com proxy: wireless.cingular.com:80 apn: wap.cingular Username: password:
Figure 3-30. swirlyMMs
Sending MMS after you ill out the settings, click the save button at the top left. click the new MMs button at the bottom right, and you’ll see a screen where you can compose the MMs message, as in Figure 3-31. You can give the message a title if you like. click the plus button to the right of the To box to select from your contacts or just type in a phone number. next, click the plus button to the right of the File: box to select a picture to send, or to take a new picture. Finally, press the send button to send the message.
76
iphone hacks
HACK # 3.04 Figure 3-31. composing a picture message
receiving MMS Receiving MMs is just as easy. Just like the other message-related applications, swirlyMMs will tell you when a picture message has come in (Figure 3-32). at that point, MMs works just like it would on other phones. When you receive a message and click on it, swirly will fetch it and display it (Figure 3-33). From there you can use the buttons on the bottom to save the image somewhere on your iphone’s ilesystem (it’s automatically copied to your photos as well), or forward it to another recipient.
Figure 3-32. swirlyMMs in the launch bar
Figure 3-33. Receiving a picture message
chapter 03 - enaBLe MMs picTURe MessaGinG on YoUR iphone
77
HACK 3.05:
SMS alert
increase the duration of Your iphone’s
Really feel the message. This is a simple but useful hack. The iphone is conigured to vibrate for 0.4 seconds whenever you receive a new message, and there’s nowhere in the settings menu where you can change that. such a short alert duration can make it easy to miss the announcement of a new sMs message. Luckily, there is a way to change this duration on jailbroken iphones [Hack #1.03] so that it vibrates for longer (or shorter, if you prefer) when you receive a new sMs. Most settings on an iphone are stored in iles called Property Lists or plists for short. You can ind out how to edit plists in [Hack #11.02]. You will need to access the /System/Library/Frameworks/Celestial.framework directory of your iphone [Hack #1.05]. Find the ile called SystemSoundVibrationPatterns.plist in this directory (Figure 3-34) and copy it to your computer.
Figure 3-34. Finding SystemSoundVibrationPatterns.plist
Find the section of the ile beginning with the line Default, as in Figure 3-35. The numbers 0.4000... and 0.5000... that are wedged between the phrases are the values for onDuration and TotalDuration, respectively. The value for onDuration represents 0.4 second duration of your iphone’s default sMs vibration alert. To prolong the duration to 1.4 seconds, change onDuration to 1.4, and TotalDuration to 1.5, as demonstrated in Figure 3-36. You can use a different duration if you prefer, but just make sure that TotalDuration is 0.1 greater than onDuration.
78
iphone hacks
HACK # 3.06 #3.06 Figure 3-35. original values of onDuration and TotalDuration
Figure 3-36. new values of onDuration and TotalDuration
once you’re done editing the ile, save it and copy it back to the /System/Library/Frameworks/ Celestial.framework directory of your iphone. This will replace the original ile with the altered ile that you created. Finally, reboot your iphone to apply the changes.
HACK 3.06:
Use instant Messaging on Your iphone
instant messaging is one of the iphone feature set’s most glaring omissions. These apps will let you ill the void. instant messaging is a very common and quick way for people to communicate. Many people “live” in their iM client. Most smartphones have third-party applications that enable you to use iM, and many if not most internet-connected phones have added aoL instant Messenger (aiM) support as a standard function. every Macintosh computer comes with the aiM-compatible ichat program, so the lack of ichat on the iphone was somewhat surprising. Thankfully, the iphone developer community has produced a number of solutions for this iM dilemma.
chapter 03 - Use insTanT MessaGinG on YoUR iphone
79
solutions to this problem fall into several major categories. app store applications—such as aoL’s own aiM client—work predictably: they have the annoying feature of logging you out when you quit them, due to the “no background app” policy for app store apps. Web-based solutions have the worst integration with the phone and are a bit sluggish, but they work, and at least they stay connected when you quit them. some jailbroken iM clients offered persistent connectivity but then decided to “go legit” and get into the app store, losing this feature in the process. Finally, a couple of hacks based on push email and backgrounding have created somewhat of a solution.
d
As of this writing, it is anticipated that Apple will be releasing a more comprehensive push architecture for application developers that will accommodate the needs of IM apps.
Web-based iM applications FlickiM FlickiM (www.lickim.com) is a web-based aiM application (Figure 3-37) representative of a variety of web-based iM products. it remembers your login information and reconnects automatically when you navigate to it. it has corner message windows that pop up when you receive a message in a conversation you’re not looking at, which you can tap to go right to that chat. it also has full support for landscape mode (of course the large widescreen keyboard prohibits reading the chat, but if you’re more comfortable typing with the larger keys, you’re good to go). also you can conigure it to notify you via email or sMs when you receive a new iM. also, it has a variety of skins to match your personal preference. if all you use is aiM, you’re good to go quickly with this client.
Figure 3-37. FlickiM’s main screen and an iM
beejive’s Jivetalk Jivetalk is available both as an app store application and a web application (http://iphone. beejive.com) (Figure 3-38). it supports aiM, icQ, Msn, Y!iM, Jabber, and Google Talk, and you can store multiple accounts for each protocol. By default, the keyboard closes every time you send a message. if you click the gear in the top-right on your buddy list, you can correct that and set other options. For a web app, it works quite well. The web app uses the same servers as their lagship app store product.
80
iphone hacks
HACK # 3.06 #3.06 Figure 3-38. beejive’s Jivetalk web application
app Store apps although there were several excellent native iM applications on jailbroken phones, the siren song of app store riches made everyone “go legit.” as a result, there is little left in the installer/cydia world for free or shareware iMing. as of this writing, Mobilechat (Figure 3-39), iM+ chat (Figure 3-40), and beejive’s Jivetalk (Figure 3-41) are the main options for multi-iM messaging. Mobilechat is relatively inexpensive, but iM+ chat is almost $10 and beejive is almost $15. however, they both operate services that act as an intermediary between you and the iM network, keeping you logged in, so they have real ongoing service costs to support the features of their application. iM+ has a free version with reduced features that you can try out. beejive can even email you or text message you when new messages come in, which can help notify you if you’re doing something else on the device and close it to create a “background” experience.
Figure 3-39. Mobilechat
chapter 03 - Use insTanT MessaGinG on YoUR iphone
81
Figure 3-40. iM+ chat
Figure 3-41. beejive’s Jivetalk app store application
Free apps The various instant messaging apps are categorized in the “social networking” section of the app store, and the major social networks (Facebook, Linkedin, etc.) tend to supply some sort of iphone application. in addition, both aoL (Figure 3-42) and Yahoo! (Figure 3-43) provide a free instant messaging application that works with their particular iM system. Figure 3-42. aoL’s aiM application
82
iphone hacks
HACK # 3.06 #3.06 Figure 3-43. Yahoo!’s iM application
Jailbreak Solutions instant messaging is supposed to be instant, not delayed until you run the iM app. and if your phone doesn’t beep or buzz to let you know that you have a message, messaging isn’t very effective, either. if you have a jailbroken phone, you have a couple of additional options for using iM products in a way that works like it should. Backgrounder [Hack #9.14] can be used to let an iM client run in the background, so that you can go on to run other applications and remain logged in. it’s easy to use—simply hold down the home button slightly longer than normal, and you’ll get a “Backgrounding enabled” message (Figure 3-44). if you have your ringer switch set to silent, aiM will vibrate the phone briely whenever an iM comes in, and it will continue to be logged in in the background. You can run any other app—play video, take calls, and so on—and your instant messaging session will still work.
Figure 3-44. aiM in the background
chapter 03 - Use insTanT MessaGinG on YoUR iphone
83
HACK 3.07:
connect to irc on Your iphone
stay logged into iRc—no matter where you are. The decades-old iRc protocol remains one of the most popular communication methods, especially for those “in the know” in the computing world. and it’s a great way to get support for iphone hacking [Hack #2.06]. This hack covers two ways to iRc on your iphone or ipod touch.
remote irc to Your Mac if you have a Mac, and you chat on iRc, chances are you’ve used colloquy—a powerful and lexible os X iRc client. and now, thanks to a new plug-in, you can monitor your Mac-based iRc connection from your iphone/ipod touch’s safari browser. here’s how:
1. 2. 3.
The irst step is getting colloquy installed on your computer. The latest version can be found at www.colloquy.info/downloads.html. after colloquy is installed, you will need to install the Web interface plug-in, which can be downloaded from www.colloquy.info/downloads/colloquy-web-interface.zip. put the plug-in into /Library/Application Support/Colloquy/PlugIns. set the password that you have to type in when you ire up the connection on your iphone. Fire up Terminal in your /Utilities folder, and type in the following: defaults write info.colloquy WebInterfacePassword yourpassword
4. 5.
start colloquy, or restart it if it was already running. if your iphone is connected to the same Wi-Fi network as your Mac, you can go to http:// ipaddress:6667 (where ipaddress is the ip address of your Mac), type in the password you set earlier when prompted, and you’re good to go. however, if you want to connect to it from eDGe or from a remote network, you’ll need to make sure that port 6667 is properly forwarded to your Mac. This process is a bit different for each router. You can refer to your router’s manual or use www.portforward.com to set this up. once that’s all straightened out, head to http:// ipaddress:6667. if you don’t know your ip off the top of your head, inding out is as simple as visiting www.whatismyip.com.
now your iphone will be controlling your Mac’s colloquy remotely. it will let you talk in whatever rooms you’ve currently joined on your Mac. (You won’t be able to conigure your connections using your iphone.) You can scroll through your list of rooms or the messages in a room by scrolling with two ingers. if you tilt your iphone to landscape view, you can read the iRc log in widescreen. You can’t type this way however, as the keyboard would’ve eaten 80% of the screen, so they didn’t bother adding it. You’ll see the same chat on both your iphone and your Mac, so you can jump seamlessly from your iphone to your Mac and back without losing track of the conversation. also, if your connection dips out for a minute or more, the messages will be sent to your phone when your connection comes back on, so there are no messages lost in the void. any other details, updates, or answers to questions you might have can be found at www.colloquy.info/iphone.
84
iphone hacks
HACK # 3.07
irc Out and about if you want to iRc on the go—away from your home wireless network—you can do so by using one of the following apps.
rooms if you’re looking for a commercial, easy-to-use GUi iRc client, Rooms (Figure 3-45) is available from the app store.
Figure 3-45. some of the screens of Rooms
ircm if you’re just looking to get connected and know your way around iRc already, the quick, free way to get onto iRc is to install iRcm, which can be found in cydia on a jailbroken phone (Figure 3-46).
Figure 3-46. iRcm
iRcm is very simple. add servers with add server, type in the server information, tap back, tap server, and tap connect. it shows a bit of the behind-the-scenes connection log. The double-spaced chats might make it more readable, but in essence they function the same. iRcm also has support for iRc slash commands (e.g., /join and /raw, for those who know what they’re doing).
chapter 03 - connecT To iRc on YoUR iphone
85
04
medIA And dAtA the iphone is a media powerhouse, but there are ways to make it even more powerful. Unlike other smartphones, the iphone builds directly on a rich ipod heritage. This means that it has best-of-breed audio and video performance and compatibility with the widely used tools for preparing content for video-enabled ipods. also unlike most smartphones to date, it runs Unix; speciically, Mac os X, which means that many of the open source, Linux, or BsD projects that could be compiled for the Mac can also run on the device. Both the iphone and ipod touch have extensive networking support—and more wireless connectivity options than most laptops. When you put it all together, you have a portable ipod successor that is for all intents and purposes always connected to the internet, combined with gigabytes of high-speed solid-state storage. if you’re a news junkie or Rss iend, the iphone is your friend. if you’re obsessed with music, your new ipod connects you to others just as obsessed as you. if you’re a bookworm, you’ll be able to overill your iphone’s digital bookshelf. and if you’re a videophile, you can carry dozens of featurelength movies on your ipod or remotely stream hundreds of DVD rips from home—this chapter will show you how.
HACK 4.01:
carry a portable File Server
Make your iphone into the wireless successor to the thumb drive. in [Hack #1.05] we discussed looking at iles anywhere on your ilesystem. although there are now hundreds of ways to push your data into the “cloud”—email, FTp accounts, WebDaV, amazon s3— sometimes you don’t want your data hosted out there on the internet. sometimes you’re not online, but you just need a way to carry your iles with you and get them onto another computer easily. part of the reason for the popularity and ubiquity of thumb drives is the need for a sneakernet—the term for “networking” by walking iles from one computer to another. But using the iphone as a physically connected thumb drive alternative is somewhat inconvenient—you must have your cable with you, you may need to install iTunes, and often a photo application will pop up. and it’s just not as cool. But it’s also silly that you have to carry around your iphone and a thumb drive, and that you can’t peek into your thumb drive and check which iles are on it without plugging it into the computer. Luckily, several app store apps solve both of these issues by turning the iphone into a convenient portable ile server.
86
iphone hacks
HACK # 4.01
air Sharing air sharing is a clean, feature-illed app that makes the iphone or ipod touch into a temporary WebDaV server. WebDaV (Web-based Distributed authoring and Versioning) is a ile-serving protocol that allows you to share a hard drive over hTTp. You launch the app, and right on the bottom of the screen you’ll ind a WebDaV URL (Figure 4-1): in the example, http://10.0.1.190:8080. here are operating-system-speciic instructions: • •
•
• • •
Mac os X: Finder→Go→connect to server, then type in the URL. Windows Vista: start→right-click My computer→Map network Drive, select a drive letter, type in the URL. Windows Xp: start→My network places→add a network place→next→choose another network location→Type in the URL. Linux GnoMe: Use the nautilus File browser, but change the URL preix from http:// to dav:// Linux kDe: konquerer expects the URL to be changed to webdav:// instead of http:// any web browser: Type in the URL. You’ll be able to browse and download iles (but not upload).
one of the nicest things about air sharing is that it allows convenient previews of any ile that you upload and that the iphone is capable of previewing, which includes any multimedia like Mp3s and MoVs. so if you have a set of movies or music that you don’t want to go through the whole sync-to-iTunes process with, or if they’re work- or demo-related and not intended to be part of your personal listening library, this application is a great way to play them back outside of the ipod application.
Figure 4-1. air sharing serves WebDaV
Mobile Studio another very similar application is Mobile studio. its heritage is in the MobileFinder group of applications [Hack #1.05] but it’s been completely sanitized for the app store. nonetheless, it is a very effective FTp server for the iphone, with features similar to air sharing. The good thing about FTp is that it’s ubiquitous—every computer has an FTp client, if only a command-line one—and chapter 04 - caRRY a poRTaBLe FiLe seRVeR
87
thus it’s less clunky than mounting a WebDaV share if you know what you’re doing. Mobile studio presents the URLs that can be entered into most web browsers if you just want to view the iles, or can be connected to by any FTp client on your machine. Mobile studio also provides tutorials within the app on how to get connected from the various oss you might be on. and if you’re inclined to use the command line, typing ftp will get you in.
Figure 4-2. Mobile studio serves FTp
Bonjour Both of these applications offer the ability to use a Bonjour address. Bonjour is apple’s fun name for Zeroconf, a “zero coniguration” network addressing standard that allows local ip network devices to be discovered by name. You can read about its details at www.zeroconf.org. More importantly, if you’re on Xp, Vista, Windows 7, or a Linux distribution, you can make your discovery of these servers easier, and set it up so you can use the same name (the name of your device) each time you connect, instead of an ever-changing ip address. You can get Bonjour for Windows from www.apple.com/macosx/technology/bonjour.html. Most Linux distributions come with Bonjour compatibility.
Limitations Because of the app store restrictions, applications can access iles only in their own private storage area, so you’ll be able to download only iles that you upload to these servers. it’s also worth noting that these apps act as a server only while they’re running—which can be considered both a bug (no sharing if you quit) and a feature (if it ran all the time, you’d be advertising your iles to anyone). By default, these servers have no passwords set. if you’re concerned about security, set a password.
Going Beyond [Hack #9.06] discusses using aFp and ssh, and if you’ve jailbroken your phone, you can easily install those applications in cydia, mount your entire iphone ilesystem on a Mac, and access it using a free scp program on Windows or Linux. But with these apps you get the cute ile previews, the tidy isolation of your iles, and the ability to connect quickly without a password. so even if you’re jailbroken, you will probably ind these apps useful.
88
iphone hacks
HACK # 4.02
HACK 4.02:
convert Videos, dVds, and Blu-ray discs to iphone- and ipod touch–ready Formats
not everything is on the iTunes store, and much of it is already in your collection. But you can put media from any source on your device. There’s a lot of video out there, and not all of it comes in tidy ipod-compatible formats. in fact, before the ipod with video and the sony playstation portable (psp) came along, the DivX/ XviD formats (technically, MpeG-4 part 2 in an aVi container) had pretty much wrapped up the harddrive-based video space. But now, because of apple’s commanding presence in downloadable video distribution, we ind a large amount of content in MoV. To get content to work on the ipod touch or the iphone, it’s necessary to compress it into an ipod-compatible format.
Video compression 101 if you’re familiar with online video, you’ve probably downloaded aVi iles, WMF iles, and perhaps MoV iles. You may have downloaded iles that ended in .xvid or .divx. The irony of this alphabet soup is that most of these ile formats share the same basic compression technique—MpeG-4. Yet you can’t just put them on your ipod touch and hit play. Why must the world be like this? Read on. here’s a quick list of the main things you need to know about video compression: Media container (ile formats) Video is stored in a digital “box” or container. examples are .mov, .mp4, .avi, .wmv, .m4v, and .mkv. You can store all kinds of codecs (see the next list item) in an MoV; thus, the mere presence of an MoV extension doesn’t mean that it will play on an iphone. similarly, you might have perfect iphone compatible data in an aVi container, but the iphone isn’t going to understand it, because it’s in the wrong “box.” Codecs (compressor-decompressors) The codec is the technique used to squish gigabytes of video into mere tens or hundreds of megabytes. examples include DivX/XviD (MpeG-4 part 2), WMV (Microsoft’s Vc-1 codec, similar to MpeG-4), h.264/aVc (advanced video codec; basically, MpeG-4 part 10, a more recent version of MpeG-4), and MpeG-2 (DVD “VoB” iles; also digital broadcast television, satellite, TiVo, and most set-top boxes encode to MpeG-2). Resolution Resolution refers to how many dots are in the picture. Aspect ratio is the ratio of horizontal dots to vertical dots. not all dots are square, because video is often stored at a small resolution and then blown up—or on the iphone, shrunk—to it the screen. Video can be high-deinition (i.e., 1280x720 pixels or 1920x1080 pixels). standard-deinition video is in the range of 640x480 or 720x480. The iphone screen is exactly 480x320, so widescreen (letterboxed) movies can be encoded at 480x270. Frame rate Movies usually run at 24 frames per second (fps). TV shows usually run at 30fps or 29.97fps, or 25fps in europe. sometimes for internet this frame rate is cut in half to 15fps or 12fps.
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
89
Codec proiles and levels in the MpeG-4 standard, there are proiles and levels. Proiles are bundles of audio and video codec settings that target a particular class of devices. You’ll hear of “Main,” “Baseline,” and “simple” proiles. Within a proile are levels—how much computation it takes to encode video in that format. Bit rate The bit rate speciies how much data the device can decode, and how fast. a studio DVD might have anywhere from 6 megabits per second (Mbps) to 10 Mbps of MpeG-2 data, meaning how fast the irehose of data lows. Blu-Ray sends tens of megabytes of MpeG-4 data. Your internet connection might support from 1 Mbps up to 20 Mbps. a portable device like the iphone or the psp might take video that’s only 1-2 Mbps or less. so with all that knowledge, you should have no trouble understanding apple’s iphone speciications: •
•
•
h.264 video, up to 1.5 Mbps, 640x480 pixels, 30 fps, Low-complexity version of the h.264 Baseline proile with aac-Lc audio up to 160 kbps, 48khz, stereo audio in .m4v, .mp4, and .mov ile formats h.264 video, up to 2.5 Mbps, 640x480 pixels, 30 fps, Baseline proile up to Level 3.0 with aac-Lc audio up to 160 kbps, 48khz, stereo audio in .m4v, .mp4, and .mov ile formats MpeG-4 video, up to 2.5 Mbps, 640x480 pixels, 30 fps, simple proile with aac-Lc audio up to 160 kbps, 48khz, stereo audio in .m4v, .mp4, and .mov ile formats
What does it all mean? Basically, the iphone supports two lavors of MpeG-4: h.264 (the new stuff) and MpeG-4 (the old stuff). But it supports them only with particular settings. so getting video into an iphone compatible form isn’t hard, but getting the best possible compression and best possible picture for the best possible storage is, as always, a series of tradeoffs. The best-looking ile for your iphone may not be the best format for your apple TV or, especially, your non-apple home theater pcs. Thus, you have to choose—do you want a lowest-common-denominator (which apple has attempted to provide with its downloadable standard-deinition movies), or do you want to have several versions of your library—one in portable Mp4, and one in a higher-resolution Xvid format? The choice is yours; here, we’ll present a couple of the easiest tools to get started.
handBrake probably the leading free, open source, cross-platform (Windows, Linux, and Macintosh) tool for encoding videos for the iphone/ipod family of devices is handBrake, available for download at handbrake.fr. This tool has come a long way. originally it was primarily a DVD ripping program, but with the recent integration of the famous open source video codec ffmpeg libraries (ffmpeg. mplayerhq.hu), it can now convert almost any ile into an iphone format. Figures 4-3 and 4-4 show handBrake on Mac os X and Windows Xp, respectively. a Linux version with GUi is also available. To use it, select the ile to convert using the “source” button in the top left. on the right-hand side of the main window (the presets drawer) are a variety of settings, and under the apple tab are presets for the apple family of devices and computers. The “Universal” setting is designed to produce a ile that will give good results and be compatible across the full line of devices, from apple TV to older ipods. if you’re trying to optimize for size and quality on an iphone or ipod touch for solely handheld viewing, you can make smaller iles to it the 360x480 screen. however, if you plan to watch these iles on a television on computer screen, Universal is best.
90
iphone hacks
HACK # 4.02 Figure 4-3. handBrake (Mac os X)
Figure 4-4. handBrake (Windows Xp)
command-Line handBrake if you’re more into command-line utilities, perhaps for creating batch encoding worklows for your voluminous library, handBrake has a command line interface. You can download it separately at http://handbrake.fr, and read the documentation at http://trac.handbrake.fr/wiki/cLiGuide. The command line is quite easy to use, and allows you to set any minute parameter for tweaking. in its most basic form, it looks like this: HandBrakeCLI -i inputFile -o outputFile
which uses the default settings to create a 1Mbps Mp4 ile. More complicated options can also be set, such as: HandBrakeCLI -i inputFile.avi -o outputFile.m4v -e x264 -b 1500 -B 160
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
91
which will create an h.264-encoded, 1.5Mbps Mp4 ile with 160kbps audio. To see all the available options, enter this command: HandBrakeCLI -h
Quicktime pro if you have to convert a ile quickly, you have a couple of options. if you have a registered copy of QuickTime pro on the Mac or pc, then you can export (slowly) MoV and h.264 iles with easy savefor-iphone presets (Figure 4-5).
Figure 4-5. QuickTime pro export settings
however, on a pc, although QuickTime pro can export to the iphone, the likelihood that it will be able to open your format in question is low, as it prefers to open MoV iles. so you’re better off using another tool.
iMovie (OS x) iMovie hD, bundled with most Macs, lets you export to a variety of different formats, including one especially for the ipod (which, in turn, works just great on the iphone). iMovie has built-in support for many MpeG-2, MpeG-4, and MoV iles, so it can load things that even the QuickTime player won’t load. The downside is that it takes a while to import the ile, and it translates the resolution to an iMovie hD format, which is then reduced down for the device. The upside is that you can edit the movie and import a variety of formats. once that’s done, go to File→export, click the Mobile button (Figure 4-6), and let ’er rip. after the conversion is done, your new video will be sent straight to your iTunes library.
Figure 4-6. iMovie export settings
92
iphone hacks
HACK # 4.02
photo-JpeG it’s worth noting that the iphone codecs listed previously are the main ones that apple speciies as supported. although iTunes will refuse to transfer them to your iphone, you can also save iles as photo-JpeG—a video format where each frame is simply a JpeG ile, with no fancy MpeG-4 stuff going on. This format is excellent for exporting iles like powerpoint, in which there are lots of highresolution stills that need to be played back [Hack #4.03]. as an example, the QuickTime pro export settings shown in Figure 4-7—30fps photo-JpeG with apple Lossless audio—produced a ile playable on the iphone. The ile won’t transfer in iTunes, but when copied to the device and played in airsharing [Hack #4.01] or emailed as an attachment, it works just ine.
Figure 4-7. QuickTime pro export settings
hardware assist one of the irst things that is apparent when converting movies is that it takes a long time. although “real-time” conversion sounds fast, in fact it simply means that it takes two hours to convert a twohour movie. converting a whole library could take weeks or months. although dedicating a quadcore or 8-core machine to the task is one option, if you have a Mac, there is a cheaper option that will save a tremendous amount of cpU time and increase encoding performance. elgato (www.elgato.com) makes a device called Turbo.264 that is a UsB-connected MpeG-4 encoding accelerator (Figure 4-8). For $100, it adds an MpeG-4 encoder chip to your Mac that when used with special software, allows the Mac to do encoding without using much cpU time at all. if you have an older Mac (such as a power pc), the speed increase can be ten times faster, and even on dual-core intel Macs, the performance is increased several times over.
Figure 4-8. The elgato Turbo.264
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
93
Videora (Windows) if your videos sit on a Windows-based machine, most of your choices involve some $25–$50 shareware app from a company that you’ve likely never heard of. however, there’s a freeware alternative called iphone converter from Videora at www.videora.com/ en-us/converter/iphone. it converts video to a suitable iphone format almost too easily (and all without spy- or adware). it’s a small download and a quick install, and it converts iles quickly. Launch the app and lip over to the convert tab, then click the Video File tab. When you’re prompted to select Mode, pick normal. You’ll have to go through a couple simple steps by pressing the orange next button a couple times. once you reach the Video settings page (Figure 4-9), make any changes to the video quality, but leave the Video Format and Video size settings the same. scroll down and click the start converting button. When a ile is done converting, it will go into both your Library tab as well as be placed automatically into your iTunes library. if you get an error when it tries to transfer it to iTunes, you may have to just browse for the video ile and drag it into iTunes. From there, of course, you can sync it onto your iphone and enjoy.
Figure 4-9. Videora settings
Web-based conversions if you don’t want to download or install anything, and your video is under 100 MB, a simple service called Zamzar (www.zamzar.com), shown in Figure 4-10, can convert all manner of iles to different formats, including converting non-iphone video to h.264 (and it’s watermark-free!). You simply go on, select a ile, choose a resulting format, punch in your email, and start it. after your movie is uploaded, it will be converted. once it’s done, Zamzar will send you an email with the link to the ile, what ile it was, what format it was, and what you converted it to. The ile will stay available for one day. This service is perfect for any sort of small iles, or if you’re traveling and your laptop doesn’t have a conversion program. if iTunes rejects a video converted using the “iphone” format, you could try using the “ipod” format, which often can solve the problem. 94
iphone hacks
HACK # 4.02 Figure 4-10. The convert Files tab on Zamzar, which allows a video on your computer to be uploaded and converted
dVd and Blu-ray on Your iphone if you don’t know what an Mp3 is, you probably aren’t reading this book. and if you aren’t reading this book, you probably don’t know that the way to make an Mp3 is to “rip” a cD by simply inserting the cD in a drive and clicking import in iTunes. With us so far? Well, you may be surprised to ind that it’s not as easy with DVDs. Basically, though cDs are (for the most part) not copy-protected or encrypted, DVDs are. Therefore, most of the mainstream “ripping” programs for audio don’t import DVD video. Yet there are many reasons that you might want to convert and back up DVDs: Scratch prevention children scratch their DVDs. it’s cute to watch them try to insert them in computers and DVD players, and it’s a good “teachable moment”—but it rapidly makes them unplayable. Mobility physical DVDs, though small, aren’t small enough. if you’re going on a trip and want to bring some of your DVD library with you, a copy on your iphone takes up even less space than a DVD. Convenience it’s unlikely that you’d get to enjoy all four seasons that you bought of your favorite show on DVD unless they were there whenever you had a bit of downtime—on the plane, in a hotel, at a family gathering, on a date. Security if your house burns down or gets robbed, do you really want to have to buy all your DVDs again?
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
95
dVd and Blu-ray ripping putting DVD video on your iphone can be accomplished in two steps. First, you need to extract (a.k.a. rip) the video content from the DVD. Then, you convert the video content to an iphonecompatible Mp4 format that can be synced with iTunes. This is hard to accomplish because of copy protection, also known by the fancy name of Digital Rights Management (DRM). copy protection for DVD and Blu-Ray comes in the following various lavors. Content Scrambling System (CSS) This is the form of encryption used by DVD players. There are many codes and each DVD may use a different code. compliant DVD players know all the codes. it was cracked in the late 1990s by the reverse-engineering of a software player. AACS This protection is like css, but for Blu-Ray. every Blu-Ray disc has a key to playing it back. Thousands of unique keys are then used to lock a copy of this key. every authorized Blu-Ray player uses one of these keys. if that player ever gets hacked, it will get excommunicated, and all future discs will have that key disabled and the player won’t be able to play new Blu-Ray releases. it was cracked shortly after Blu-Ray was released. BD+ This is an extra form of protection on top of aacs. even after it’s decrypted, the content of a BluRay won’t look right, because it’s scrambled. each Blu-Ray title has a tiny program on it that the Blu-Ray player must run to descramble the content. This step slows down the speed of cracking new DVD titles, because each disc has to be carefully analyzed to see how its unique descrambling code works. DVDs consist of 4–9 GB of VoB (video object) iles. These are basically MpeG-2 video iles with audio interleaved either in a pcM (uncompressed) or ac3 (Dolby surround) format. if you just insert a DVD in a drive and try to copy the iles off, they either won’t copy, or they won’t work once copied off. They are encrypted. To defeat the encryption, you need a decryption program. The DVD has a speciic ile structure. The video is stored in a folder called VIDEO_TS on the DVD. Blu-Ray discs can be as big as 50 GB. The video is stored in high-deinition 1920x1080 resolution, and encoded with MpeG-2, MpeG-4 aVc, or sometimes Microsoft’s Vc-1 (WMV 9-ish) codec. The Blu-Ray disc has a speciic ile structure. The movie is stored in a folder called BDMV. homeburned discs have a different folder, BDAV. There are two basic approaches to ripping:
1. 2.
d
Get an all-in-one program that rips a DVD or Blu-Ray and converts it to iphone-compatible formats. archive your movies by saving the VIDEO_TS folder or BDMV contents on your hard drive. Then, use a program such as those described earlier in this hack to encode for iphone. The most deinitive resource online for DVD backups is www.doom9.org.
Why is it So hard? Generally, the copyright owners of DVDs and Blu-Ray discs have done their best to keep DVD ripping software off the market. it persists in two forms: open source projects, often hosted 96
iphone hacks
HACK # 4.02 internationally, where there is no inancial motive and, thus, no one to sue; and off-shore corporations in countries that aren’t under a reachable jurisdiction. proponents of these tools contend that the software has substantial legal, noninfringing use—under the fair-use or fairdealings laws of the countries that it is used in. opponents contend that it violates laws about defeating encryption.
ripping on a Mac To rip a DVD, you can use either MacTheRipper (www.mactheripper.org) or FairMount (www.metakine.com/products/fairmount). FairMount requires the VLc Media player from www.videolan.org to function. But it’s not necessary to have VLc Media player running when you’re using FairMount. You can see FairMount mounting a DVD in Figure 4-11. MacTheRipper can be seen ready to rip a DVD in Figure 4-12.
Figure 4-11. FairMount (Mac os X)
With a DVD inserted in your computer’s drive, start up FairMount; it will automatically mount the disc. in Finder, the DVD should now show up as a removable drive, instead of as a disc. When you click on it in Finder, you’ll see that it contains a folder titled VIDEO_TS. You could rip this folder to your hard drive, and then convert the video, or you can just select (or drag) this folder with your video conversion program.
Figure 4-12. MacTheRipper
occasionally, you may run into a title that doesn’t rip in either MacTheRipper or through FairMount. Two other Mac ripping programs that handle a wider range of encryption methods are http:// ripitapp.com and osex (www.macupdate.com/info.php/id/9830). if that still doesn’t work, and if you have Boot camp on your Mac, you can boot to Windows and try one of the pc-based ripping programs, which should do the trick.
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
97
pc ripping There are a couple of options for pc ripping. some are free, and many are free for a while but later start charging. some free options are: DVDFab HD Decrypter a free, simpliied version of this program can be found at www.dvdfab.com/free.htm. This version gives you the basic tools—which are enough. The Full Disc option rips the entire disc. The Main Movie option, shown in Figure 4-13, allows you to select which parts of the DVD to rip. Because you probably just want the main movie, select Main Movie and start ripping the DVD. DVDFab will output a folder containing two folders titled AUDIO_TS and VIDEO_TS. VIDEO_TS will contain a ile ending with .VOB, which you’ll need to convert. The “hD” in DVDFab hD Decrypter is telling you that it can extract some hD titles on hD-DVD and Blu-Ray. You’ll see when you insert your disc (assuming that you have the appropriate drive on your pc) whether those discs can be extracted.
Figure 4-13. DVDFab
ImgBurn another classic DVD decryption tool is imgBurn (www.dvddecrypter.org.uk). imgBurn is the successor to DVD Decrypter, a favorite at the Doom9.org forums. it’s ready to rip in Figure 4-14.
98
iphone hacks
HACK # 4.02 Figure 4-14. imgBurn
a payware solution on the pc for DVD and Blu-Ray ripping is anyDVD from slysoft (www.slysoft. com/en). although it costs money, they have a development team actively working to play catchup with the ever-changing Blu-Ray title encryptions. at the time of this writing it’s the most workable solution for Blu-Ray ripping. You can see it ready to go in Figure 4-15.
Figure 4-15. anyDVD
encoding and conversion once you have extracted your DVD or Blu-Ray disc via one method or another and have the video ready for encoding, you’ll need to use a tool to get it onto your iphone. if you’re going to hook your iphone up to a television or use this ile on your Mac or pc in addition to the iphone or ipod touch, you may want to encode it in 640x480 or similar resolution, instead of the native iphone resolution. and while you’re at it, you’ll probably want to encode it with chapters. This recent addition to the various encoding tools gives you a similar experience to what you would get buying movies from the iTunes store, with chapter markers corresponding to the normal chapters in the DVD. as mentioned earlier in this hack, handBrake is the best free, cross-platform (Macintosh/ Windows/Linux) tool for DVD encoding. Figure 4-16 shows handBrake with a DVD:
chapter 04 - conVeRT ViDeos, DVDs, anD BLU-RaY Discs To iphone- anD ipoD ToUch–ReaDY FoRMaTs
99
Figure 4-16. handBrake creating chapters
Mac encoding on the Mac, there are a few other programs of note. as mentioned earlier, elgato’s Turbo.264 hardware accelerator works with their encoding software, which you can download and check out from their website (www.elgato.com). it presents a very clean interface (Figure 4-17), and when encoding a main title, automatically creates chapters.
Figure 4-17. elgato’s Turbo.264
100
iphone hacks
HACK # 4.03 RoadMovie (Figure 4-18) from Bitield software (www.bitield.se) has excellent support for subtitles and enhanced metadata, allows you to edit and create your own chapters if your DVD lacks them or you want to put in your own, and can also use the elgato Turbo.264 encoder.
Figure 4-18. RoadMovie creating chapters
all-in-one programs that rip and convert if you want a simple one-click way to put DVD video on your iphone, there are a number of programs for both pc and Mac that do both the ripping and converting. You may be able to get a trial version of the program, but it may not be fully functional until you purchase it. a couple of the most popular all-in-one programs that offer trial versions are: •
•
For the Mac: DVD to ipod converter for Mac (www.iphone-tool.com/tool/dvd-to-ipod-converterfor-mac.html) For the pc: cucusoft ipod Video converter suite (www.top5soft.com/video/cucusoft-ipod-videoconverter-dvd-to-ipod-suite.html)
it’s worth noting, however, that some of the best DVD ripping tools in life are free.
HACK 4.03:
present powerpoint on a projector or tV Using Your iphone or ipod touch You can use an iphone or ipod touch to show presentations on most projectors. apple provides two video output cables: the composite aV cable (Figure 4-19) and a component aV cable. These allow the iphone to send movies and slideshows to an external television. if you’re trying to display video on an older television that doesn’t support composite or component connectors, then [Hack #12.05] will show you how to hook up to coaxial input. Because many projectors also accept composite and component signals, an obvious application is to ditch the laptop and show your powerpoint presentations with your phone. alas, though this works, you lose much of the idelity of your presentation because powerpoint’s movie exporter does not preserve the transitions, slide-in-text, or other animations that may be part of a presentation.
chapter 04 - pResenT poWeRpoinT on a pRoJecToR oR TV UsinG YoUR iphone oR ipoD ToUch
101
Figure 4-19. composite aV cable (from the apple store)
There are actually three built-in apple programs that can output to the TV screen: YouTube, the built in movie player, and the pictures application—if you connect the cable to the television. But until recently, app store applications could not access the video output. and until apple releases a keynote player for the iphone, we’re going to have to take other measures.
d
[Hack #12.06] shows how to enable video out for almost any application.
Simple Slide export if your powerpoint presentation makes minimal use of animations and transitions, the basic trick of exporting each slide to a JpeG ile and storing them in your photo library will do the trick. powerpoint on both Mac and pc has a feature to “save as pictures” or “save as Movie” (Figure 4-20).
Figure 4-20. save as pictures
The “save as pictures” option will save iles to a folder (Figure 4-21) that you can drag to iphoto, create an album, and then sync to the iphone or ipod touch with iTunes (Figure 4-23).
102
iphone hacks
HACK # 4.03 Figure 4-21. a folder full of pictures
on Windows powerpoint, choose “save as...” and choose JpeG. Then choose to save every slide (Figure 4-22).
Figure 4-22. saving all the slides
Figure 4-23. syncing with iTunes
once you’ve got the iles onto your iphone or ipod touch, go into photo albums, select your presentation, and press the play triangle. if your video cable is connected, the presentation will play on your projector or TV (Figure 4-24).
chapter 04 - pResenT poWeRpoinT on a pRoJecToR oR TV UsinG YoUR iphone oR ipoD ToUch
103
Figure 4-24. playing the presentation
exporting with animation if you are on a Mac, or are a pc user with access to a Mac, you can use apple’s keynote package (if you have it) to open the powerpoint document and export it as a movie (Figure 4-25).
Figure 4-25. exporting with keynote
if you’re already doing your presentations with keynote, then this is a good option for you. however, if you’ve carefully constructed a complex animation, your presentation embeds additional movies and sounds, or it plays back correctly only on your machine, then you’ll need to try another option.
hack it with Screen capture There are dozens of applications for screen capture and “screencasting.” By using screen capture software, you can run through your presentation—at the speed you want to, as if you were delivering it—and turn it into a video ile. a few of them are free, but record only video, not audio. For a lot of presentations, that’s suficient. a good free option for screen recording on Mac and pc is Jing (www.jingproject.com; Figure 4-26).
104
iphone hacks
HACK # 4.03 Figure 4-26. Jing
Using Jing is straightforward. although it’s oriented towards uploading your videos, it can just as easily save them to disk, as a sWF format (which you’ll need to convert to Mp4 using [Hack #4.02]). To get it working, follow these steps:
1. 2.
3.
Make sure that powerpoint is set to display in an individual window, not as a full screen. Go to slide show→set Up show to change this setting (Figure 4-27). When you present your movie, you’ll have it in a window. choose your size—640x480 is good, and that’s as high-res as you can play back on the iphone, but you may need to go higher if fonts are too grainy (and then size it down when you convert). Jing helps you set a precise window size, such as 640x480. You can pause the recording right after it starts, adjust your powerpoint window, and then resume recording. once you start the slideshow, use Jing to wrap a capture window around your presentation (Figure 4-28), start the recording, and go through your presentation at your own pace so that you’ll know the timings—and when to pause, if necessary—when you inally present it.
Figure 4-27. slideshow setup on Mac os X and Windows
chapter 04 - pResenT poWeRpoinT on a pRoJecToR oR TV UsinG YoUR iphone oR ipoD ToUch
105
Figure 4-28. capturing the slideshow
capturing audio and Video if you’re on a pc, another free option that does capture audio is camstudio (http://camstudio.org; Figure 4-29). You’ll need to download the 2.0 version or newer to get the audio capture feature. it will save the ile as an aVi, and it gives you the option of saving it as an sWF (Flash video). Don’t bother; you’ll need to convert that aVi to a ile that can play on your iphone [Hack #4.02], and Flash is no help there.
d
Photo-JPEG videos [Hack #4.02] can play on an iPhone, making for great still frames when the content is paused.
Figure 4-29. capturing with camstudio
if you need to record audio on the Mac, you’ll ind some options in the $30–$70 range with ishowU (http://store.shinywhitebox.com) and snapzproX (www.ambrosiasw.com/utilities/snapzprox).
presenting once you’ve converted your ile, drag it to iTunes, sync your device (Figure 4-30), hook it up to the TV or projector, and play (Figure 4-31).
106
iphone hacks
HACK # 4.03 Figure 4-30. syncing an exported slideshow
Because you had the chance to rehearse the timings when you made the video, you should have a pretty good sense of when things happen. if you need to pause, perhaps to answer an audience question or because you’re talking longer, you can just tap on your iphone to pause and the image will remain on the screen. and using the seek slider, it’s pretty easy to go back to any part of your presentation.
Figure 4-31. Viewing the slideshow
as low-tech as this may sound, you’re going to need to stretch a video cable from your iphone adapter over to the projector, and if you have audio and video, you’ll need to extend both of them. Luckily, the low-tech solution is easy to ind. at any Radioshack or comparable store, you should be able to ind an Rca female-to-female adapter (also known as a coupler) to connect to your apple composite aV cable (Figure 4-32). Then you can use any long Rca cable to reach the projector. it’s possible that the a/V staff at your venue will have the cable you need, but just in case, you can pick up any thin 25-foot video cable as well.
Figure 4-32. Rca extender and apple composite aV cable
chapter 04 - pResenT poWeRpoinT on a pRoJecToR oR TV UsinG YoUR iphone oR ipoD ToUch
107
But you don’t have to go with the 50-foot wires. apple does provide a remote control for your iphone and ipod touch (Figure 4-33): the apple Universal Dock.
Figure 4-33. apple Universal Dock
You can dock your device, plug in the apple composite aV cable to the dock, plug the cable into the projector, and control your presentation from anywhere in the room. even with all the accessories, this solution is much smaller than your laptop, and you could carry enough gear in your pockets to deliver impromptu presentations.
One More thing if you really want to stay light while you present on the road, you’ll need a tiny projector, like the optomo pico pocket projector (www.optoma.co.uk/optomapico/picointro.aspx, Figure 4-34).
Figure 4-34. now you’re presentable!
108
iphone hacks
HACK # 4.04
HACK 4.04:
Sync Music and Videos from Multiple computers to Your iphone Your device can be friends with more than one iTunes. normally, if you try to sync your iphone with multiple computers, the music and videos that you synced from the previous computer will be overwritten by the media on the new computer. Luckily, there is a native app called swapTunes that solves this problem by creating two separate media libraries on your iphone. swapTunes allows you to sync between two different computers. swapTunes can be downloaded from installer or cydia [Hack #1.04]. after you sync with iTunes on the irst computer, click on the swapTunes icon on your springboard, and a screen that says “swapping your Music/Video Library...” will open, as in Figure 4-35. after about ive seconds, the screen will automatically close to signal that it has inished swapping libraries. now when you open your ipod, you won’t have any music or videos in it. You can now sync with iTunes on the other computer without your previous media getting erased. Just run swapTunes whenever you want to switch between the two media libraries on your iphone.
Figure 4-35. swapTunes switching between libraries
normally, whenever you connect your iphone to iTunes, the capacity bar at the bottom will be multicolored to show amount of memory taken up by audio, Video, photos, other, and Free space, as shown in Figure 4-36. after you swap libraries with swapTunes, iTunes on the same computer will show your iphone’s memory as being solely composed of other media, as in Figure 4-37. Because iTunes doesn’t recognize there are any songs or videos on your iphone, you can now sync it with another computer’s library without the older library getting erased.
chapter 04 - sYnc MUsic anD ViDeos FRoM MULTipLe coMpUTeRs To YoUR iphone
109
Figure 4-36. prior to using swapTunes, iTunes displaying the individual audio, Video, photos, and other components of the iphone’s capacity at the bottom of the program’s window.
Figure 4-37. after using swapTunes, iTunes will not recognize the different categories of the iphone’s media Library, and the media will just be recognized as other.
HACK 4.05:
Stream Music and Videos from Your computer to Your iphone You’re never too far away from your media. although the iphone’s multigigabyte capacity allows a signiicant amount of media to be stored on it, it probably isn’t big enough to hold your entire collection of music and videos. To still be able to access your computer’s vast media collection, you will have to stream it over the internet. The good thing is that you can access your desktop computer anywhere in the world from your iphone, as long as you have internet access. Whether you use a Mac or pc, setting up a media stream from your computer is very easy—and free!
110
iphone hacks
HACK # 4.05
Mac For streaming on Macs, you will be using a system called Telekinesis that allows for (appropriately) remote control of your Mac using your iphone. Telekinesis uses applescript to manipulate your Mac in many ways, differently from Vnc [Hack #9.02]. Download the iphone Remote application from http://code.google.com/p/telekinesis. The irst time you run it, it will ask you to set up a username and password for logging in to your computer. To stream videos over Telekinesis, go into iphone Remote’s conigurations, shown in Figure 4-38. if you enable “share media insecurely,” you won’t need a password, but it also allows anyone who contacts that port and knows the direct path of your iles to download them.
Figure 4-38. check this box, if you dare (you dare)
Make sure that iphone Remote is running. on your iphone, open up safari and type in the ip for your Mac, starting with https://. The example in Figure 4-39 displays https://192.168.1.101:5010.
Figure 4-39. The login screen
accept the certiicate, and log in with the account that you created when you irst ran iphone Remote. This will bring you to the main screen, as shown in Figure 4-40.
chapter 04 - sTReaM MUsic anD ViDeos FRoM YoUR coMpUTeR To YoUR iphone
111
Figure 4-40. Telekinesis main screen
as you can see, there are many different applications that you can use with Telekinesis, but for now we will concern ourselves only with Media. Tap Media to open a browser of your ilesystem, shown in Figure 4-41.
Figure 4-41. navigating the hard drive
The movie in this example is appropriately in the Movies folder. so a tap will bring you to that folder and display the contents as in Figure 4-42.
112
iphone hacks
HACK # 4.05 Figure 4-42. playing a movie
now that you have it all working on your local Lan, you need to get it working through your irewall. The basic procedure is to set a static ip on your Mac, use a dynamic Dns service so that you can attach a name to your home ip address, and then conigure your internet gateway for port forwarding. once you know the URL to your home pc, you can connect from anywhere. [Hack #9.11] has more information on this common but sometimes complicated task. if your media is elsewhere, it’s easy enough to ind with Telekinesis’s browser. now just tap to open the video or song, and it will begin streaming. it will continue to play if you go into another iphone app, but not if you switch safari pages.
pc if you’re a pc user, or you’d rather use a pc to set up your iphone media server, there’s an even easier solution to your remote-media needs. orb is a software + service that helps you access your media anywhere. and naturally, they’ve added support for the iphone. Go to http://corp.orb.com/download_orb, create a user account, download orb, and then install it. once it is installed on your computer, start the program and you’ll see a new icon for orb at the bottom right of your monitor. Right click the icon, and select coniguration. in the coniguration menu, click on the Media tab to select which media folders on your computer will be streamed by orb, as shown in Figure 4-43.
chapter 04 - sTReaM MUsic anD ViDeos FRoM YoUR coMpUTeR To YoUR iphone
113
Figure 4-43. coniguration of the media to stream in orb
Whenever the orb application is running on your computer, your media is being streamed, and is accessible from anywhere. The orb software and website handles all the complicated parts of irewalls and transcoding. once you have orb conigured correctly, you can access it from any browser, not just your iphone, via http://mycast.orb.com. Log into your account, and you now have access to all the media on your computer, even if you’re thousands of miles away from it! Figure 4-44 shows the iphone app.
Figure 4-44. The orb client on iphone
The orb application costs $10, but the good thing is that you can run the free version of their app store app and connect to your server to see whether the service works for you before you buy.
Linux: MythtV The Linux-based DVR project MythTV is a powerful system for viewing and recording TV. With a lot of hard work and a little luck, you can stream recorded shows from your MythTV computer to your iphone.
114
iphone hacks
HACK # 4.05 For the purposes of this hack, we’ll assume that you have to get MythTV set up and running on a computer. if not, instructions can be found on the MythTV wiki (www.mythtv.org) and support pages for your speciic Linux distribution.
1. 2.
3. 4. 5. 6.
7. 8. 9.
10. 11.
Make sure that you have the MythWeb package installed, and that you can view your MythTV web page from another computer. The next step is to transcode the recordings into Mp4 format. Detailed instructions can be found on the MythTV wiki (http://mythtv.org/wiki/index.php/streaming_to_ipod_touch_ or_iphone). The basic process is to create a script that uses ffmpeg to transcode into an ipod-friendly format. Make sure to test this on your MythTV system before continuing. From a terminal, run the script on a recording, and conirm that the output can be played by mplayer, or any other media player. lib-faac is a common source of issues, and depending on the Linux distribution you’re using, you may need to compile lib-faac from its source. after conirming that transcoding works, load mythtv-setup and create a user job to call the transcoding script that you created. in this case, the user job is named “ipod transcoding.” enter MythTV frontend, and set the user job to run automatically after a recording is inished. conirm that MythTV can run the user job correctly by selecting a recording, then click “run ipod transcoding.” Wait a few seconds, then open a terminal and enter ps -ef|grep ffmpeg. conirm that ffmpeg is running. if the only output is only “grep ffmpeg” or blank, go back to the “system information” screen in MythTV, and conirm that the user job status is “running” and not “queued.” if MythTV lists it as running, and there is still no ffmpeg process, then the syntax of the user job is probably incorrect. Double-check it in mythtv-setup and conirm that it is correct. Because MythTV can’t manage the transcoded iles, you will need to create a cron job to delete the Mp4 iles after the associated recording has been deleted. The MythTV-for-iphone project is available on Google code, (http://code.google.com/p/ mythtv-for-iphone/wiki/installationGuide) and provides an iphone-formatted web interface to the recorded MythTV programs. Download the MythTV-for-iphone iles, and install smarty and php-curl. The smarty directories should go in the root web folder. For example, if the mythweb folder is under /var/www/ mythweb, then the smarty folders would go into /var/www/smarty. smarty templates would be installed into /var/www/smarty/templates. create a mythiphone directory (/var/www/mythiphone) and copy the MythTV-for-iphone php iles into it. copy i_settings.php.dist to i_settings.php and edit it based on the settings of your MythTV server. Update apache2.conf and add the line: Alias /recordings at the end of the ile.
The MythTV-for-iphone project references the /recordings folder, and without this alias, the recordings won’t show up. at this point, everything should be installed. on the iphone, open safari and navigate to the iPhone folder on your MythTV server. For example, 192.168.2.101/mythiphone. any recordings that are green should be viewable on the iphone. if you want to access the recordings from a remote location, you will need to assign your MythTV server a static ip [Hack #9.11]. if you want to password protect the mythiphone folder, you should conigure apache’s basic authentication feature (see http://httpd.apache.org/docs/2.0/howto/ auth.html).
chapter 04 - sTReaM MUsic anD ViDeos FRoM YoUR coMpUTeR To YoUR iphone
115
cross-platform: Simplify Media one last candidate that has support for Linux, Windows, and Mac is simplify Media (www.simplifymedia.com). although it works only for audio, it has some features that orb does not, like the ability to share within a small group so that all your media—from multiple computers— is shared to any of your devices. You can even share within a small group of friends and let them access your media library as well. a trio of media lists can be seen in Figure 4-45.
Figure 4-45. simplify Media source lists on Mac, Windows, and the iphone
Other Options it seems like pretty much every home theater system (except maybe Windows Media center) is adding support for remote iphone connectivity. • •
TVersity: http://tversity.com eyeTV: www.elgato.com — christopher kurpinski & adam stolarz
HACK 4.06:
read news, rSS, and Websites Quickly
consume your feeds eficiently. one of the most interesting evolutions over the last decade of the Web has been syndicated content. although not everyone is a “news junkie,” almost everyone has a daily ration of information that they need to get. however, the excessive load times experienced on even the fastest devices and networks can make accessing this content dificult. There are dozens of ways to get concise, cleanly formatted, and edited information to your device, and more app store apps are appearing all the time. This hack will cover a few of the basic ways of maximizing information consumption while minimizing load time.
really Simple Syndication (rSS) Rss is a protocol for syndicating content, and is used by weblogs, news sites, and others. The little orange icon you see on many websites (Figure 4-46) indicates a link to an Rss feed. You can read it on a web page, or you can read it more eficiently in an Rss reader.
116
iphone hacks
HACK # 4.06 Figure 4-46. The universal Rss feed icon
For the purposes of this hack, ind a site that has news you care about, ind its Rss icon, click on it, and you’ll be redirected to the Rss address. copy or write down this web address, because you’ll need it soon. as examples we’ll use slashdot, WoW insider, and the update feed for webcomic XkcD.
View rSS Feeds on Your iphone’s Web Browser The easiest way to view a feed is to just enter it in safari. if you get to the feed on your computer, you can quickly get it onto your phone by emailing it, texting it [Hack #3.03], or bookmarking it and synchronizing your bookmarks. in safari, it will appear like Figure 4-47.
Figure 4-47. WoW insider on safari
Usually people subscribe to several (or a lot) of Rss feeds. an Rss reader aggregates these various feeds into one customized diet of news.
Google news Google provides one popular Rss aggregator that’s optimized for the iphone. There are dozens—if not hundreds—of these web-based aggregators for the iphone, so take this as more of an example than a preference. To view your feeds on your iphone, just open up your safari browser, and go to www.google.com/ reader. Log in, and you’ll see your Rss feed subscriptions that you can select to view (Figure 4-48).
chapter 04 - ReaD neWs, Rss, anD WeBsiTes QUickLY
117
Figure 4-48. Google Reader showing several feeds
View rSS Feeds on Your iphone with app Store apps searching for Rss in the app store will give you more than enough applications to try out. Free Rss Reader by simon oulid (Figure 4-49) is a solid, basic offering. The paid version enables automatic caching of pictures.
Figure 4-49. Free Rss Reader (also works in english)
if you’re looking for a more polished interface, you can spend a few bucks more and get iphonenewsreader (www.iphonenewsreader.com). Figure 4-50 shows the navigation interface and Figure 4-51 shows nice reading presentation.
118
iphone hacks
HACK # 4.06 Figure 4-50. newsfeeds as a stack of magazines
Figure 4-51. headlines on the left, articles on the right
More than rSS if it’s not just Rss feeds you need to keep up with but websites of any variety, check out instapaper. Like many of the social bookmarking tools, it allows you to mark pages of interest while you’re on your pc with the use of a simple bookmarklet. The killer feature, however, is that these bookmarked pages are automatically downloaded and cached for rapid ofline reading when you launch the app (Figure 4-52). a key low-tech-is-better feature of this app is that you can go into a “text-only” mode and enjoy the words without all of the website noise (Figure 4-53).
Figure 4-52. Ready-to-read whenever you’re bored
chapter 04 - ReaD neWs, Rss, anD WeBsiTes QUickLY
119
Figure 4-53. simple and clean
intelliscreen The jailbroken phones always get something a little cooler. You can install intelliscreen using cydia on a jailbroken device. if you’re familiar with Windows Mobile devices, you know that one nice feature they have is useful, at-a-glance information on the screen when the phone is locked. The iphone tells you only the time and the date and what network you’re on. With intelliscreen, you have a variety of conigurable available data—including your Rss feeds. a news-centric screen is shown in Figure 4-54.
Figure 4-54. intelliscreen can show Rss feeds and more
HACK 4.07:
read e-Books on Your iphone
Be well read. The term “e-book” in the general sense describes any method by which one could read something approximating a physical book (sequential chapters of text) on an electronic device (hence the “e”). The problem is that due to the vagaries of reader devices and the unproven inancial and security models, no single dominant e-book standard has emerged. (You can look at a laundry list of e-book formats here: http://en.wikipedia.org/wiki/comparison_of_e-book_formats.)
120
iphone hacks
HACK # 4.07 nonetheless, a number of workable standards have emerged. You may be amused that text (.txt) and hTML (.html) are two of the most common standards, which shows how hard it is to improve upon the basics. a variety of iphone applications will allow you to experience the joy of reading literature on what is probably your most handy reading device.
an e-Book reader anthology at the moment, books are handled rather inconsistently in the app store. Because apple didn’t want to go into the e-book distribution business and compete with amazon (yet?), there is no “books” option that allows you to buy titles to read with some one-and-true apple e-book program. instead, you have several options: download one of several e-book readers that work with a motley crew of DRM-free formats, or download one of dozens of books, such as iPhone: The Missing Manual (o’Reilly), that are packaged individually. a gallery of these is shown in Figure 4-55.
QuICK tIP
Figure 4-55. e-books and e-book readers
KindLe FOr iphOne As this book was going to press, Amazon released its Kindle iPhone application, which allows you to read Kindle books on your iPhone. If you have a Kindle, Amazon’s WhisperSync keeps your Kindle books in sync across devices (on your iPhone, you can pick up reading where you left off on your Kindle and vice-versa). If you don’t own a Kindle, you can still buy books and read them on your iPhone with Kindle for iPhone.
Stanza The most popular app store e-book application is the free stanza, from Lexcycle (www.lexcycle. com). stanza works with the desktop application of the same name, which can work with hTML, pDF, Microsoft Word, RTF, as well as all the major e-book standards: • • • • •
Mobipocket Microsoft LiT palm doc The epub open e-book standard Unprotected amazon kindle
This desktop app (Figure 4-56) lets you easily view and copy your e-books wirelessly over to your ipod. The ipod app also lets you browse from thousands of free e-books and download them straight to your device. chapter 04 - ReaD e-Books on YoUR iphone
121
Figure 4-56. an e-book open in stanza
With an e-book open in stanza, you can share it to your device over a wireless network by enabling sharing. now from your device you can ind all the books that you currently have open in stanza and download them (Figure 4-57). and you’re ready to read!
Figure 4-57. how to steal your own free e-books from yourself
one interesting feature of stanza is an experimental feature to export books as Mp3 audiobooks, so you can listen to them instead of reading them—especially useful if you are driving.
ereader eReader (www.ereader.com), which you can see in Figures 4-58 and 4-59, is an application provided by ictionwise.com and ereader.com e-book store websites, and is the only one so far to support a form of DRM tolerable to a wider range of commercial publishers. The reader supports convenient direct downloads of eReader-formatted pDB books from these two stores. (note that pDB is a container format, and not all pDB books work with the program, so make sure that it matches eReader.)
122
iphone hacks
HACK # 4.07 Figure 4-58. eReader
Figure 4-59. Reading a book in eReader
When you purchase a DRM-protected title, you’ll have to enter your credentials at least once to make eReader unlock these iles (Figure 4-60). You have to get the name you registered with when you made your account online just right, and you have to type in the credit card you used for the purchase. it’s best to use the same credit card for all your purchases, as that is your DRM “key.”
Figure 4-60. Logging in to eReader
chapter 04 - ReaD e-Books on YoUR iphone
123
also, you can feed eReader-formatted pDB books you download from other sites, or pDB iles you’ve created yourself, by serving them from a local web server or uploading them to your eReader.com or Fictionwise.com account and then downloading them to your device (www.ereader.com/personal-content).
BookShelf Bookshelf (www.iphonebookshelf.com) is an app store application (Figure 4-61) that supports several e-book formats, as long as they aren’t DRM-encrypted, including text, hTML, a variety of palm formats (plucker, palmDoc, Mobi), and a few others. To feed it books, run the shelfserver application on your computer desktop (pc, Mac, and Linux are supported; Figure 4-62). shelfserver can also slurp the text out of pDFs to convert them for ingestion as an e-book.
Figure 4-61. Bookshelf means books
Figure 4-62. shelfserver serving up a folder of e-books
You can also download from online book sites that support the shelfserver protocol, listed at www.iphonebookshelf.com.
pdFs For reading e-books that are pDF format, there’s not much to do—you just email the pDF to yourself. The problem is that most pDFs are unreadable on small devices and require much scrolling and clicking when zoomed in to a readable magniication. This is not so much a fault of 124
iphone hacks
HACK # 4.07 the iphone as a known fault of pDF, which was designed to preserve, with high idelity, the look and dimensions of a conventional book. if you’re in a pinch and need to read a large pDF, one trick is to email it to a Gmail account—Gmail lets you read the pDF attachment as a text ile, which can make a single-column view in safari a better experience.
classics one e-book offering available in the app store that has to be mentioned is classics. a model of user interface design, this application packages up nine classic books into a classy and funto-read interface (Figure 4-63). a bookshelf presentation, followed by 3D effects for page turns (Figure 4-64) and attention to hyphenation, spacing, fonts, and readability, this application sets a high bar for e-books on the iphone. Unfortunately, as of now there’s no way to add books to this handsome bookshelf.
Figure 4-63. classics
Figure 4-64. classics: turning the page
comicZeal if you like comics, then there’s another app for you—comicZeal (www.bitolithic.com/comicZeal/ comiczeal.htm). This application provides excellent features for reading comics (Figure 4-65). Because most of the cBR/cBZ comic iles that are downloadable from the internet are of too high a resolution for the iphone’s screen, Bitolithic provides the comicZealcreator for Mac and chapter 04 - ReaD e-Books on YoUR iphone
125
Windows to convert comic iles to the comicZeal .cbi format (www.bitolithic.com/comicZeal/ comiczealcreator/comiczealcreator.htm). These reduced-size iles are easier on the iphone’s cpU, which translates to longer battery life and thus longer readability. The program even starts up a mini web server, so you can type the address into comicZeal and download your iles.
Figure 4-65. comicZeal doing its thing
Finding professional-Quality content The problem with e-books is that no one has created the “iTunes of e-books” (not that amazon.com isn’t trying), in the sense that the majority of new books are not available in a digital format. Music cDs are inherently digital; books, using “dead-tree technology,” are still primarily analog media, despite their digital production process. Like iTunes plus and the variety of music options available on the market without DRM, there are some places where you can purchase unencumbered e-books of twentieth- and twenty-irstcentury content (i.e., content still under copyright).
d
A good resource for e-book sources is http://wiki.mobileread.com/wiki/E-book_stores.
examples include: • • • • • • • •
Feedbooks (http://feedbooks.com) eReader (www.ereader.com) Fictionwise (http://ictionwise.com) ManyBooks (http://manybooks.net) panMacmillan (www.panmacmillan.com) cyberRead (www.cyberread.com) project Gutenberg (http://gutenberg.org) safari Books (http://safari.oreilly.com)
dictionaries if you’re going to read, you’ll often want a dictionary nearby. Fortunately, there are a number of great options for iphone-based dictionaries. Wedict (free) of key import for college students, writers, and people learning another language is a portable knowledge base for all things linguistic. That’s what you get with WeDict, a lexible dictionary for the iphone and ipod touch. one of the cleverest things about WeDict is that you can download it from the app store, but then enhance it (on a jailbroken phone) via cydia.
126
iphone hacks
HACK # 4.07
1. 2.
Download WeDict from the app store add the Merriam-Webster dictionary via cydia (Figure 4-66).
Figure 4-66. Blurring the line between sDk and jailbroken apps
open WeDict, type in the word you want deined, and then hit the search button at the top right to get your results. a gallery of different dictionary results is displayed, as in Figure 4-67.
Figure 4-67. seen here: entries from Merriam-Webster, english etymology, and english-German
ahed one of the remarkable things about the iphone and ipod touch is that you can get full, unabridged dictionaries. Figure 4-68 shows the American Heritage Dictionary, available for a hefty $30—but worth it all. This is the real deal—it’s a standard for many writers and editors, rather than a cheap knockoff, and you won’t be left scratching your head for a missing deinition.
chapter 04 - ReaD e-Books on YoUR iphone
127
Figure 4-68. American Heritage Dictionary
Despite the early, disorganized state of the iphone/ipod e-book economy, there are real gems to be found in the hundreds of thousands of books available in e-book format. Your iphone or iphone touch just became your walking dictionary (and more). it just goes to show that the more you put into the iphone, the more you get out of it!
HACK 4.08:
take panoramas and nightshots with Your Built-in camera Two megapixels is plenty! The iphone’s built-in camera is unable to compete with dedicated cameras for image quality. however, you have it with you everywhere you go, and chances are good that you don’t carry your camera except to special events. Therefore, there are many times when you want to milk the last bit of image quality out of your camera. Two areas where you may want to enhance your iphone camera are:
1. 2.
Low light conditions (night shots) Resolution and ield of view
resolution and Field of View enhancement a 2-megapixel resolution isn’t too shabby for a tiny camera hiding in the corner of your iphone. if you where you want a much bigger image, you may be missing your 8-megapixel dedicated camera. The solution is to stitch your photos together to create a larger frame. one common application for this is when you want to photograph a large poster at a conference, so you can read the text later, but the fonts are too small to see in one frame. if you have a Mac, you can use software called calico panorama, manufactured by kekus Digital (www.kekus.com). it is relatively cheap: $39 as of this printing. on a pc, you can use freeware software called autostitch that uses a prior version of the same code engine (www.cs.ubc. ca/~mbrown/autostitch/autostitch.html). First, take a “panorama set” of photos, that is, a series of photos, making sure to overlap them generously. When going from side to side, i ind it useful to move the camera just enough to put the
128
iphone hacks
HACK # 4.08 right half of the screen onto the left half. Therefore, for a total image width of three ields of view, you will take ive side-by-side photos. if you wish, you can do multiple rows as well. Figure 4-69 shows an example i made at the Getty museum in Los angeles (www.getty.edu), starting with several side-by-side images.
Figure 4-69. Three photos
Run these through the panorama software (in this case, i used autostitch), shown in Figure 4-70.
Figure 4-70. stitched results
The result is the maximum ield of view that the software can produce from the images you gave it. it will automatically align them and adjust contrast and color settings to make the result seamless. The last thing you’ll need to do is crop the edges to produce a inished product, as shown in Figure 4-71.
Figure 4-71. cropped image
chapter 04 - Take panoRaMas anD niGhTshoTs WiTh YoUR BUiLT-in caMeRa
129
Low Light conditions The iphone camera is pretty smart about auto-adjusting contrast when bright and dim objects are both in the ield of view. nevertheless, it requires a minimum light intensity in order to form an image. at night, for example, there often is insuficient light to create a nice photo. however, if you can distinguish any shapes in your image, then you can merge dozens of photos in order to produce a single higher-contrast image. You need to have one well-deined visible object in the image. This can be a penlight, street lamp, or whatever. This provides a single object that is visible in each image and allows you to align the images. next, you will need an open source software package available (for Macs only!) called Lynkeos. Generally, it is used by astronomers to improve the quality of images taken through telescopes—but there’s no reason that you can’t use it to create images of the beautiful city lights taken from your drive home after skiing (when you had only your iphone). First, you need to obtain images. set your camera against an object so that it is very still. even a slight shake of your hand will introduce blurring in the inal image. This means you can set your iphone on its side on a rock, table, against a tree, or something like that. You can even use a shoe as a tripod. shoes and socks are handy because you (hopefully) always have them with you and they won’t scratch your iphone. adjust your iphone position so that you can both reach the snapshot button and so that your frame contains at least one sharp, bright object. You should see it well in your camera roll on every photo. This is critical or Lynkeos will not be able to squarely align the images. Take as many images as you can stand—you will probably need several dozen, and you won’t know if you got enough until you go to process them. The more images you take, the better your inal image becomes—assuming you are photographing a still environment. Unfortunately, this technique won’t work for catching a moving object! (no photographing nocturnal panthers using your iphone!) When you get back home, download the images onto your computer, and use Lynkeos (http://lynkeos.sourceforge.net) to “stack” the images and produce one inal high-quality frame (Figure 4-72). note that Lynkeos is available only for Mac os X.
Figure 4-72. stacking the images
There is a very quick and easy tutorial for Lynkeos available from its help menu. You should go through that tutorial, which takes less than 10 minutes.
130
iphone hacks
HACK # 4.08 Figure 4-73 shows an example of an image before processing; Figure 4-74 shows the results.
Figure 4-73. Before
Figure 4-74. after
it’s like night and day!
chapter 04 - Take panoRaMas anD niGhTshoTs WiTh YoUR BUiLT-in caMeRa
131
panoLab pro if you’d like to do your photo ixing and panoramas right on the phone, panoLab (Figure 4-75) is an option. This inexpensive app store app helps you align your panorama pictures as you take them (Figure 4-76), and lets you easily align the edges of the various pieces using your ingers and multitouch.
Figure 4-75. panoLab pro
Figure 4-76. aligning the photo
panoLab pro also includes an exposure adjustment feature (Figure 4-77) that helps adjust for varying light conditions between shots.
132
iphone hacks
HACK # 4.09 Figure 4-77. adjusting the exposure
You can export your large panoramas at high resolutions to your computer so that they can be printed out or displayed in their full glory. — Zack Gainsforth & Damien stolarz
HACK 4.09:
record and Upload Videos with Your iphone
surprise: Your iphone is a great videocamera. one of the most conspicuous missing features of the iphone is out-of-the-box videocamera capability. almost every other smartphone on the market is smart enough to record decent video clips for posterity. Until apple adds video recording, there are several video camera alternatives for your jailbroken phone.
a Brief history of consumer Filming in the 1940s, we could really ilm only movies and wars. The 1950s and 1960s brought us 8 mm cameras, but only presidents and other wealthy elite could afford the ilm. it was the invention of the VcR in the 1970s that paved the way for the 1980s, when videocameras came to the mass market. Weddings, bar mitzvahs, birthday parties, and births were all preserved for time immemorial using boombox-sized cameras on the shoulder. The 1990s brought us smaller and cheaper cameras and we began branching out, stealthily capturing concerts, movie bootlegs, and police beatings. once we inally went digital and solid-state in the 2000s, videocameras jumped onto phones—and now almost anyone can catch the ephemeral events of life and upload them for viewing by complete strangers. cycorder cycorder (www.saurik.com) by Jay Freeman (a.k.a. saurik), is a fantastic, responsive, and free (ad-supported) application for video capture. You can ind it featured in cydia. cycorder records at a little less than half of a normal TV’s or videocamera’s frames per second, taking a JpeG picture of each 384x288 frame. Because they’re JpeG instead of MpeG-4, each frame is very clear when paused. You can see the specs in Figure 4-78.
chapter 04 - RecoRD anD UpLoaD ViDeos WiTh YoUR iphone
133
Figure 4-78. specs of a cycorder recording
Because of the quality of the recording and the relatively light compression, the bit rate is very high (in this case, almost 2.5Mbps), so a 15-second movie takes almost 5 MB on disk. iphone Video recorder The payware solution, which still requires a jailbroken phone, is iphone Video Recorder (www.iphonevideorecorder.com), shown in Figure 4-79. You can install it by adding the www.iphonevideorecorder.com source to cydia. it allows you to capture either to JpeG MoVs in real time (like cycorder) or to do a post-encode to MpeG-4, which is signiicantly smaller and thus easier to upload. The iphone, as you might imagine, was never intended as a video encoding device (its MpeG-4 chip accelerates only playback, not recording).
Figure 4-79. iphone Video Recorder
a remarkable feature of this software is the ability to upload videos directly to YouTube (Figure 4-80). naturally, you’ll need a YouTube account and you’ll need to add your login and password in the application.
134
iphone hacks
HACK # 4.09 Figure 4-80. Uploading to YouTube
We can only speculate why the iphone shipped without an integrated videocamera application, but it’s easy to remedy on a jailbroken phone.
chapter 04 - RecoRD anD UpLoaD ViDeos WiTh YoUR iphone
135
05
gAme emuLAtIon no one imagined that apple would ever go into the video game space. Macs have long been criticized for their lack of games, and Windows has long been the system of choice for advanced pc gaming. But if you believe the hype, apple’s iphone is a potential “game changer” in video gaming. The iphone is both well suited—and hamstrung—with respect to games. its lack of tactile buttons— depending entirely on multitouch for keypresses—makes it a less satisfying experience than, say, a sony psp. however, its inclusion of an accelerometer gives it some of the “outside-of-the-box” vision that made the nintendo’s Wii controllers (also accelerometer-enhanced) so popular. now, don’t expect people to start swinging their ipods around to play virtual table tennis—at least, not yet. The lack of a high-speed video output capability and a standard method of attaching accessories prevents the iphone from being an immediate replacement for your Wii. But the handheld personal nature of the device, its virtually unlimited offboard storage (i.e., the internet), and its geoconnected features are already inspiring startups to go after location-enabled “social gaming” concepts. and the multitouch screen, though bad for buttons, is good for new control modalities—such as drawing lines or “chording” multiple touch points—and games built around these new control paradigms are in the ofing. But one of the unsung opportunities for the iphone is not to go forward into the new, but to emulate the old. There is a rich, hackerish tradition in the computer world of making any new computer or video game system emulate those that came before it. sony and nintendo regularly allow their new consoles to play (when possible) older “classic” games, because just like an old movie, these games are just as playable now as they were 25 years ago. The iphone and ipod deinitely break new ground enhancing “productivity,” especially when “productivity” means producing high scores in your favorite video game.
HACK 5.01:
Understand the homebrew and emulation Scene
certain useful knowledge helps you get the most out of video game emulators. if you’re familiar with computer science, you may know about Moore’s Law. Gordon Moore was one of the cofounders of intel, and in the mid 1960s, he predicted that computer speed (actually, transistor density, or how many computing units it on a chip) would double about every two years. seemingly, in violation of Murphy’s Law, Moore’s Law has remained true, and we’ve seen a doubling of computing power (or a halving of size for equivalent power) about every two years. What this 136
iphone hacks
HACK # 5.01
means is that in the 8 years from 1999 to 2007, the cpU power in commercially available handhelds multiplied by 16 times—actually quite a bit more, considering the 16Mhz cpU that the palm V was using at that time.
emulation Video game consoles have usually been made with cpU and speed similar to that available to their computer contemporaries. even arcade machines are simply powered by custom computers. Thus, the latest computer can almost always emulate—with fair idelity—the video games of a few years ago. The nice thing about game consoles—arcade, home, or portable—is that they are tremendously consistent in their construction. compared to the variability of pc and even Macintosh hardware, a new version of which comes out every couple of months with new features (often at the cost of driver compatibility), game consoles are designed to last 5, 7, or even 10 years in the market before they are inally retired. as a result of this consistency, and because game systems proliferate in the millions (the playstation has shipped 100 million units worldwide), the number of creative hackers paying attention to these platforms is tremendous. sometimes this attention is for the nefarious purposes of software piracy, but often it is for the benign and even laudable purposes of implementing game modiications, cheats, creating new homebrew games, and general learning. Usually, when a game system comes out, hardware hackers and cheat-system developers will study a platform and ind methods for attaching peripherals—often to the same connections used by the original hardware designers for debugging or to ports built into the product for future expansion. at this time, the platform is usually on a par with computers of that era, making emulation infeasible. But gradually, as general community knowledge grows (especially since the 1990s, fueled by BBs communication, and later, by the internet), the entire RoM (read-only memory) and Bios (Basic input/output system) of the game system are extracted from a gaming system and carefully reverse-engineered and analyzed. Because game pcs use the same kinds of cpU as computers (often Motorola chips, such as 6502s in the 1980s or power pcs in the 1990s), and because full chip emulators are available for most of these chips on pc platforms, it’s only a matter of time before the code extracted from the memory hardware of these systems runs completely “in vitro,” in the test tube of the pc. By the time these systems are fully understood, computer speed has advanced to a point at which a modern pc can easily emulate the full processor and graphics capabilities of the original gaming console, and they often do.
homebrew in the early days of video games, such as the atari era, it was understood that computers and video games are related, and many game systems also had an optional programming cartridge, keyboard, and other tools for interacting with the system. The manufacturers were not too restrictive about modiications to their systems. chapter 05 - UnDeRsTanD The hoMeBReW anD eMULaTion scene
137
Later systems, such as nintendo’s, built a strong business around being a “gatekeeper” of titles, and it was dificult to create cartridges for this system without going through them. But by the 1990s, when games became epic in length, with sprawling levels, it became relatively straightforward to create new levels for games, because the border between a game engine and the data (levels) for that engine was easily distinguishable to reverse-engineers. These “mods” or modiications to games became possible through a variety of hardware tools such as GameGenie, Gameshark, and a community built up around not only “cheating” games but also modifying them. in the same fashion, people began trying to create their own entire games. in the 1990s, sony actually embraced the idea of playstation hobbyist-coders and produced the net Yaroze playstation—a more expensive playstation that included a method of connecting it to the pc and programming games, in c, on the console. The hacking and game cloning community came up with their own workarounds that allowed independent creation of games and game hacks for these systems. once the games could be completely emulated on a pc, the task of extending games or creating games became much easier, and homebrew games could be distributed via the Web to others with the emulator. For consoles like the sega Dreamcast, sony psp, and nintendo Game Boy advance (GBa), convenient loading mechanisms made it straightforward to play homebrew games on the actual hardware. a decade-strong website where you can ind a lot of homebrew activity for all major mobile and gaming platforms is www.pdroms.de.
running an emulator The punch line of all this is of course that the iphone is fast enough to emulate a fair number of games, and that most of the major emulators have been already ported to the iphone. Figure 5-1 shows the /var/mobile/Media/ROMs folder on a jailbroken iphone with all the major emulators installed.
Figure 5-1. The /var/mobile/Media/ROMs/ folder
ZodTTD is the online name of the developer who has been behind almost every game emulator release for the iphone. You can ind his site, and a lot of info about his emulation exploits, at www.zodttd.com (Figure 5-2).
138
iphone hacks
HACK # 5.02 Figure 5-2. ZodTTD’s website (www.zodttd.com)
probably the best way to get started with game emulation is to download some working emulation software for the pc so that you can try out various RoM iles and make sure that everything is working before you transfer them to the somewhat slower iphone. There are only a few important terms that you’ll run into: •
•
•
Game cartridges generally store programs in read-only memory, and when they are backed up on a pc, they are called RoMs. Downloading a RoM means downloading a memory dump of a game cart. in practice, a good emulator can run the majority of RoMs—homebrew and commercial—for a given game system. some game consoles, such as the sony playstation and GBa, require a memory dump of the Bios contained in the system itself in order for the emulator to run. This code is not freely available separately from the console, but there are various hardware and software techniques used to get these iles. some game systems, such as the sony playstation, use a cD instead of a cartridge, and game backups are stored in an .iso ile. This is sometimes referred to as a “RoM,” as it is a copy of the game ile.
For links on where to download game emulators, check out sites such as www.emulator-zone.com and www.zophar.net, or Google “game emulator.” — Damien stolarz & ZodTTD
HACK 5.02:
play nintendo Games on Your iphone or ipod touch With the native application nes, you can be playing nintendo entertainment system games on your iphone within minutes. The nintendo entertainment system (Figure 5-3) was released in 1985, and its 8-bit might brought the entire video game industry out of the confusing failing mess that it had been in two years prior. it set the standard for game design and controller layout for all future consoles. Many of the most memorable classic games were for this very console. it dominated the market until the release of the sega Genesis a few years later.
chapter 05 - pLaY ninTenDo GaMes on YoUR iphone oR ipoD ToUch
139
Figure 5-3. The nintendo entertainment system
Getting a homebrew rOM The page http://bobrost.com/nes details the results of a course taught at carnegie Mellon University by Bob Rost in 2004 on programming for the nes, and provides a number of games developed by students in the class. They are good examples of entertaining homebrew games. You can download the RoM for sack of Flour, a platform game similar to the Mario series, to emulate on your iphone from http://bobrost.com/nes/games.php. it runs smoothly (Figure 5-4), as it should, given how much more powerful the iphone is than the original nes. We were able to guide our jumping sack of lour past at least a few of the many perils contained in the game.
installing neS 1. install nes through cydia [Hack #1.04]. The source is at www.zdziarski.com/projects/nesapp
2. 3.
and if you don’t ind it in cydia, you can download the game from that site, and copy it over to /var/mobile/Applications. You’ll need to install respring through cydia [Hack #1.03] to make the icon appear. Gather up the RoM(s) for the game(s) you want to play. copy these iles to /var/mobile/Media/ROMs/NES/ ([Hack #1.05] explains how to copy iles to your iphone).
When you open the nes application, you’ll see a list of any RoM iles you’ve installed. clicking the settings button will allow you to change some of the gameplay options.
140
iphone hacks
HACK # 5.03 Figure 5-4. sack of Flour
extracting Your rOMs if you have a collection of nintendo games and a nintendo console that you don’t mind soldering, you can get hardware to copy the RoM off your own carts here: http://tinyurl.com/copynes. a pack of nes homebrew RoMs can be found here: http://xbox-emulation.dcemu.co.uk/ nes-roms.shtml and you can always ind something at www.pdroms.de/iles/nes.
HACK 5.03:
play Sega Genesis Games on Your iphone or ipod touch With the native application genesis4iphone, you can be playing sega Genesis games on your iphone within minutes. The sega Genesis (Figure 5-5), known outside north america as the sega Mega Drive, was released at the end of the 1980s. it was known for its many fast-paced action and platform games.
Figure 5-5. The sega Genesis/Mega Drive (photo by Bill Bertram)
chapter 05 - pLaY seGa Genesis GaMes on YoUR iphone oR ipoD ToUch
141
Getting a homebrew rOM pier solar (Figure 5-6) is a role-playing game (RpG) with a turn-based battle system like Final Fantasy i, developed by Watermelon, juicy development. it’s the irst new Genesis RpG to be developed this millennium. You can ind the RoM ile at www.piersolar.com (click the Media link at the top of the page and look for a link to the demo on the page).
installing the emulator 1. install genesis4iphone through cydia [Hack #1.04]. The source is www.zodttd.com; if you don’t 2. 3.
ind it in cydia, you can learn which cydia repository to add by checking ZodTTD’s site. Gather up the RoM(s) for the game(s) that you want to play. We’ll use pier solar as our example. Make sure that the RoM iles end in .SMD. copy your RoMs to /var/mobile/Media/ROMs/GENESIS/ ([Hack #1.05] explains how to copy iles to your iphone).
When you open genesis4iphone, you’ll see a list of the RoM iles that you’ve installed. in this case, tap pier solar.
Figure 5-6. pier solar
extracting Your rOMs if you have a collection of sega Genesis games, you can extract your RoMs with products such as the Venus Multi Game hunter. These products have been out of production for some time, so you’ll have to hunt around on forums for someone selling this equipment. You can ind additional data about available backup systems at www.supermagi.com and http://tinyurl.com/gamebackup. You can also ind a few homebrew Genesis games at www.pdroms.de/iles/genesis.
142
iphone hacks
HACK # 5.04
HACK 5.04:
play nintendo Game Boy Games on Your iphone or ipod touch Your iphone can emulate a Game Boy with a bigger, brighter screen. it’s itting that the iphone should pay homage to the device that originally put portable gaming on the map, nintendo’s Game Boy (Figure 5-7).
Figure 5-7. The nintendo Game Boy (image courtesy Boffy b)
Getting a homebrew rOM horrible Demon 4 (Figure 5-8) is a side-scrolling action/adventure game with many acrobatic features, created by homebrew developer Bertil hörberg. it is similar to castlevania 2, with the addition of RpG-style item collecting. You’ll ind the RoM at www.gambitstudios.com/ freedom2001_entries.asp. You can ind Bertil’s home page at http://beril.se.
installing gameboy4iphone 1. install gameboy4iphone through cydia [Hack #1.04]. The source is www.zodttd.com; if you 2. 3.
don’t ind it in cydia, you can igure out which repository to add by checking ZodTTD’s site. Gather up the RoM(s) for the game(s) you want to play. Make sure that the ile extension is .GBC. copy these iles to /var/mobile/Media/ROMs/GAMEBOY/.
When you open gameboy4iphone, you’ll see a list of any RoM iles that you’ve installed.
chapter 05 - pLaY ninTenDo GaMe BoY GaMes on YoUR iphone oR ipoD ToUch
143
Figure 5-8. horrible Demon 4
extracting Your rOMs if you can ind a used or new Bung GB Xchanger, you can copy your Game Boy games to the pc over a parallel port connection. Googling “GB Xchanger” comes up with several current vendors. You can ind homebrew games for the Game Boy at www.pdroms.de/iles/gameboy.
HACK 5.05:
play Super nintendo Games on Your iphone or ipod touch With the native application snes4iphone, you can be playing super nintendo (super nes) games on your iphone within a few minutes. nintendo’s 16-bit super nintendo entertainment system (super nes; see Figure 5-9) came to the U.s. market in late 1991 and became the dominant video game platform for the irst half of the 1990s, competing for some time even with the newer 32-bit systems and selling almost 50 million units worldwide.
Figure 5-9. The super nintendo entertainment system (super nes)
144
iphone hacks
HACK # 5.05 #5.06
Getting a homebrew rOM in the RoM pack found at http://tinyurl.com/snesroms, you’ll ind hundreds of homebrew RoM iles, including Bio Worm (Figure 5-10) by developer Wani (www.uvlist.net/game-7144-Bio+Worm), a game reminiscent of pac-Man, Bomberman, and centipede.
installing snes4iphone 1. install snes4iphone through cydia [Hack #1.04]. The cydia source is www.zodttd.com. 2. Gather up the RoM(s) for the game(s) that you want to play. Make sure that the RoM ile 3.
ends in .SMC. copy your RoMs to /var/mobile/Media/ROMs/SNES/.
When you open snes4iphone, you’ll see a list of any RoM iles that you’ve installed.
Figure 5-10. super nes games on snes4iphone
extracting Your rOMs You can extract all your snes RoMs with products such as the Venus Multi Game hunter, which was mentioned under the discussion for the sega Genesis. if you can’t ind one, you can ind additional backup systems at http://en.wikipedia.org/wiki/Game_backup_device and www.supermagi.com under “Game Backup Units.” check out www.pdroms.de/iles/supernes for more homebrew snes games.
HACK 5.06:
play nintendo Game Boy advance Games on Your iphone or ipod touch With the native application gpsphone, you can play almost any nintendo Game Boy advance (GBa) game on your iphone or ipod touch. The Game Boy advance (GBa; see Figure 5-11) was the third iteration of technological advancement of the Game Boy series of handhelds from nintendo, released in 2001. it had technical speciications surpassing the snes, and along with the many new games released for it, a number of snes games were ported, which allowed people to play some of their favorite snes chapter 05 - pLaY ninTenDo GaMe BoY aDVance GaMes on YoUR iphone oR ipoD ToUch
145
games wherever they went. and a short-lived and little-known line of “video cartridges,” which let you watch movies or cartoons, even came compressed on a cart.
Figure 5-11. The nintendo Game Boy advance—GBa (photo by christopher Down)
Getting a homebrew rOM You can ind anguna (Figure 5-12), a homebrew game by nathan Tolbert and chris hildenbrand, at www.tolberts.net/anguna. it’s an old-school, Zelda-esque dungeon game.
installing gpSphone 1. install gpsphone through cydia [Hack #1.04]. The cydia source is www.zodttd.com; if you don’t 2.
3. 4.
ind it in cydia, you can igure out how to download it at ZodTTD’s site. The GBa emulator is unique in that you need a RoM for the cart you want to play and also need to extract the Bios from the GBa and save it in a ile called gba_bios.bin. You’ll need to put this ile directly into the gpSPhone.app folder. To do this, browse to your Applications folder [Hack #1.05], go into gpSPhone.app, and put the ile there. see the following section, “Dumping Your Bios.” Gather up the RoM(s) for the game(s) that you want to play. Make sure that they end in .GBA copy your RoMs to /var/mobile/Media/ROMs/GBA.
Figure 5-12. anguna
dumping Your BiOS The developer Darkfader (http://darkfader.net/gba) developed an application called DumpRom that backs up the GBa Bios. The tutorial at http://wiki.pocketheaven.com/GBa_Bios helps walk you through the process.
146
iphone hacks
HACK # 5.07
extracting Your rOMs a variety of tools can back up GBa RoMs. Devices like G-Bank can be found at www.gameboyadvance.net and a tutorial can be found here: www.gameboy-advance.net/gba_roms/make_gba_ roms.htm. You can ind a pack of homebrew Game Boy advance games here: http://gbaemu.dcemu.co.uk/ gba_roms.shtml.
HACK 5.07:
play pS1 Games on Your iphone or ipod touch
With the native application psx4iphone, you can play many playstation games on your iphone or ipod touch. The original playstation (Figure 5-13), known as a ps1 or psX, was a fun video game system from the mid-1990s, released about 10 years after the nes. it used a cD-RoM, instead of cartridges, which allowed for 700 MB of game storage, which at that time may as well have been limitless. instead of illing the whole disc with games, sometimes the game would reside on track one, and the rest of the tracks were simply cD audio tracks, so you could play the audio tracks of some ps1 games in your cD player.
Figure 5-13. The original playstation
copying an iSO for the Game cD-based games are the easiest to back up, because you can just copy the games that you own onto your computer. There are several ways to create an iso ile of the game cD that you want to play: •
•
•
if you’re on a Mac, use Roxio Toast; choose File→save as disk image, then rename the resulting .toast ile to .iso. if you’re on a pc, you can use alcohol 52% (www.alcohol-soft.com), available in a trial version, and choose Datatype→play station in the image Making Wizard (be sure to check “Read subchannel Data;” see Figure 5-14). on a pc, you can also use the Delta software (http://tinyurl.com/deltapsx), which serves as a launcher for the pc-based psX emulator epsXe (www.epsxe.com), by going to Tools→Disk imager and importing the disc (Figure 5-15). chapter 05 - pLaY ps1 GaMes on YoUR iphone oR ipoD ToUch
147
Figure 5-14. Making a disc image with alcohol 52%
Figure 5-15. importing a disc with Delta
extracting the playStation BiOS copying your game was too easy, so here comes the hard part: the playstation Bios. each game depends on software libraries provided by sony on a RoM chip inside the U.s. (nTsc) or europe (paL) versions of the playstation. as a result, your game will not play without this ile. naturally, this software is copyrighted by sony—and they don’t provide it for general distribution. But the code is right there inside your playstation. so how do you get it out? To extract the playstation Bios, you need one of several “game cheat” or homebrew development devices that were available in the mid to late 1990s. Then you’ll need to lash it with a replacement RoM that gives you, among other things, access to the psX memory. Finally, you’ll need to copy the psX binary memory from 0x0bfc00000–0x0bfc7ffff into a ile called scph1001.bin for the emulator to use. a number of “carts” have been designed to plug into the early psX parallel port: • • • • •
Gameshark action Replay Game enhancer Game Wizard playstation Xplorer, also known as Xploder in the United states (see Figure 5-16)
if you can get a playstation 1 Xplorer/Xploder FX, parallel port version, that’s probably your best bet, because these include an interface for connecting to your pc. This is old technology that you’re dusting off, so you’ll have to do things like set your parallel port to spp mode in your pc’s Bios—assuming that you know what a parallel port is, and assuming your pc has one. You may need to pull a 486 motherboard off some shelf in your garage and install Windows 98 on it to get this hack going.
148
iphone hacks
HACK # 5.07 You may be able to purchase an Xploder at www.whitedog.co.uk (a direct link to the product shown in Figure 5-16 is http://tinyurl.com/5glhdv), or you can hunt around on eBay or on relevant message boards where people might be looking to unload one.
Figure 5-16. playstation Xploder
only the older, large gray ps1s have a parallel port; the newer ps1s don’t, so you’ll need to make sure that you have the original model. The psX Bios is usually saved in a ile based on the psX’s model number. You can ind a reference to the various versions of the model number on Wikipedia: http://en.wikipedia.org/wiki/playstation. in Figure 5-17 are a scph-1002(left) and scph-9002 (right). notice that the scph-1002 has a parallel port; you’ll need that to plug into the Xplorer or any other connector such as the action Replay.
Figure 5-17. comparing playstation models— (left) scph-1002 and (right) scph-9002 (photo by niklas sobieski Larsson)
You can ind software for the old Xplorer/Xploder here: http://tinyurl.com/xploder. on that page you’ll see x-killer-v0.55.zip. This utility lets you upgrade the RoM on your Xplorer, and allows you to access the psX memory. as mentioned before, our goal is to create a ile called scph1001.bin (or scph1002.bin, if your psX is a 1002) by saving the memory from 0x0bfc00000–0x0bfc7ffff to disk. You can create a new binary ile using the Memory editor feature in X-killer (Figure 5-18).
chapter 05 - pLaY ps1 GaMes on YoUR iphone oR ipoD ToUch
149
Figure 5-18. X-killer’s Memory editor menu option
if you’re using a different cart than the Xplorer, or even with Xplorer, you may want to lash the cart with the “caetla .34” or “caetla .35” RoMs that offer the most lexibility. You can ind documentation and some of the historical tools used with various carts here: http://gsmcables.i12. com/xianaix.htm.
testing Your BiOS and iSO Given that the epsXe software for Windows is a well-supported project, you may want to do a runthrough with epsXe (www.epsxe.com) to make sure that your iso and the psX Bios ile that you copied from your playstation are working correctly.
Figure 5-19. Testing the Bios in epsXe
a very useful program for getting epsXe working, which will help you igure out how to conigure your emulator for running on Xp, is Delta2 (http://delta.ngemu.com; Figure 5-20). in this test, we had to download and install the p. e. ops soft driver for the psX Graphics tab, and that got our game running. You can also extract isos with Delta.
150
iphone hacks
HACK # 5.07 Figure 5-20. coniguring an emulator with Delta2
installing psx4iphone now that your Bios is ready, the inal steps are:
1. 2. 3.
d
install psx4iphone through cydia [Hack #1.04]. The cydia source is www.zodttd.com; if you don’t ind it in cydia, you can igure out which repository to add at ZodTTD’s site. Get together scph1001.bin and any isos for games you want to play. (note that psx4iphone is case-sensitive.) if you have another Bios ile, such as scph1002.bin, you should be able to rename it to scph1001.bin with no problems. Using a ile transfer technique such as iphoneBrowser or netatalk [Hack #1.05], copy these iles to /var/mobile/Media/ROMs/PSX. Make sure that the BIOS ile you copy from your PlayStation is named scph1001.bin. The ilename is case-sensitive, so SCPH1001.BIN won’t work.
When you open psx4iphone, you’ll see a list of any iso iles that you’ve installed. The settings screen is shown in Figure 5-21.
chapter 05 - pLaY ps1 GaMes on YoUR iphone oR ipoD ToUch
151
Figure 5-21. The settings menu of psx4iphone
in the mid 1990s, my company worked on a multiplayer port of the Wipeout XL. i’ve spent hours in the source code debugging multiplayer differences caused by bad random seeds, and it’s probably one of the games i’ve spent the most hours in (not counting RpGs). it has a great electronic/techno soundtrack, so naturally i wanted to play Wipeout on my iphone. after copying the cD to an iso ile (Figure 5-22) using alcohol 52% in parallels running Windows Xp, i used iphoneBrowser to copy it into the /var/mobile/Media/ROMs/PSX folder on my iphone.
Figure 5-22. My original psX Wipeout cD in front of my monitor
152
iphone hacks
HACK # 5.07 i was actually amazed to get this far (Figure 5-23), because Wipeout was an extremely demanding game and we even had trouble keeping it from skipping on our pentium 200MMX pcs when we were developing it. The frame rate was too low to be truly playable in psx4iphone, but the game could load and run completely without crashing, and ZodTTD (the engineer who maintains the psx4iphone project) is working on optimization. When i read the compatibility list on the forums, it indeed said that Wipeout was one of the games that didn’t run fast enough. But chances are one of the many discs in your collection will.
Figure 5-23. playing Wipeout
chapter 05 - pLaY ps1 GaMes on YoUR iphone oR ipoD ToUch
153
06
teLePHonY HACKs the iphone has arrived, not coincidentally, at a time when the very meaning of telephony is being reinvented on all fronts. telephone service is an utter commodity; it is already available domestically for lat fees and its cost is rapidly approaching zero. Mobile phones have all but eliminated the pay phone and are on their way to completely replacing terrestrial lines, and Voice over internet protocol (Voip) has joined in to help inish the job. now, relatively inexpensive all-you-can-eat cellular plans are increasing in popularity. Quickly, telephony is approaching the cost scalability of the Web. in this interesting time for telephony, a number of new “Telephony 2.0” startups—too many to count, really—have sprung up. Following the successful patterns of their web counterparts, these companies give away interesting voice-based services for free in hopes of accumulating enough users to spur some large corporation to buy them out. There’s a lot you can do with a web page and nearly free inbound and outbound voice capability. You can create clever new voicemail services. You can create conference calls on the ly. You can give out additional phone numbers that dial your cell phone and home phone at the same time. and with Voice over ip, you can ignore your mobile phone minutes plan altogether and call anywhere on earth cheaply. You can block calls you don’t want, and deliver custom greetings depending on who calls. This chapter will cover some of these interesting new developments in web-connected telephony and show how they can be used on the iphone.
HACK 6.01:
Use GSM codes to conigure phone Features
The iphone is a GsM phone, and there are a wide variety of notso-secret GsM codes that you can use to conigure your phone’s behavior with the network. although the United states has several competing cellular transmission standards, most of europe and many parts of the developed world have standardized on GsM. GsM phones are distinguished by their use of a subscriber identity Module (siM) card, which allows for easy swapping of phones when batteries go dead or new phones come out. one of the interesting features of GsM phones is the ability to conigure various carrier settings by entering a code directly on the phone (Figure 6-1). if you learn these codes and refer to them, you’ll have one less reason to call customer service. 154
iphone hacks
HACK # 6.01
some of these codes may not be supported on all carriers, or may be different in countries outside of the United states. Make sure to tap “call” after entering each code. current account Balance #BaL# show current account balance (on T-Mobile monthly) *BaL# show current account balance (on aT&T monthly) *777# show current account balance for prepaid phones
Figure 6-1 . sample GsM code input and conirmation
current airtime Usage #Min# show current minutes used (on T-Mobile) *Min# show current minutes used (on aT&T) call Waiting *43# enable the call waiting feature #43# disable the call waiting feature *#43# show current status (enabled/disabled) Outgoing caller id *31# allow your caller iD number to be seen for this call #31# do not display the outgoing caller iD for this call *#31# show outgoing caller iD status incoming caller id *30# show caller iD for incoming calls #30# do not display caller iD for incoming calls *#30# show incoming caller iD status
chapter 06 - Use GsM coDes To conFiGURe phone FeaTURes
155
call Barring You can use GsM codes to restrict the types of calls that can be made to or from your phone. The general format is: *## *#**# #**# route 33 331 332 35 351
show current status (enabled means restricted) enable these calls (disable restriction) disable these calls (enable restriction)
outgoing outgoing international outgoing international, except home incoming incoming if roaming
network code You may need to check with your carrier to ind out what the network code is. in some cases, the default code is 0000. To change your network code, you can use: **03*330**# type 10 all call types 11 voice calls 12 data calls 13 faxes 16 sMs 18 all data services except sMs 19 all services except sMs 25 all asynchronous data services so for instance, to block sMs (for example, if you’re getting sMs messages that you don’t want), enter: *35*0000*16# 0000 is the default call barring code; if you have changed it, enter yours. To remove the call barring, enter: #35*0000# Don’t forget to tap “call” after entering each code.
call Forwarding You can use GsM codes to set up call forwarding on your iphone. The most common reason to do this is to forward calls to a landline when you are outside of cellular coverage. Make sure to check your carrier’s billing policies on call forwarding before enabling this feature. Use the following format for call forwarding commands:
156
iphone hacks
HACK # 6.01 show status: set: cancel: Reestablish: cancel & Forget:
*## **# ## *# (set forwarding to the last number that was not forgotten) ### (cancels and forgets the number that was set)
code 002 all calls 004 busy, no answer, or out of coverage (useful for switching voicemail providers) 21 sets all options (all calls, busy, no answer, or out of coverage) 67 when busy 62 when out of coverage 61 when there is no answer To set the length of time for the phone to ring before forwarding, add “ * “ before # Time delay can be 5, 10, 15, 20, 25, or 30. if no time is speciied, 15 seconds is usually the default. Option no option *11 *25 *13 *89
apply to all calls only apply to voice calls only apply to data calls only apply to fax calls only apply to line 2 calls
so for instance, to forward all missed calls (ignored, cancelled, call waiting) to voicemail (Figure 6-2), enter: *004*#
Figure 6-2 . Forwarding all missed calls
To check the status of redirection (Figure 6-3), enter: *#61#
chapter 06 - Use GsM coDes To conFiGURe phone FeaTURes
157
Figure 6-3 . checking status of a redirection
To cancel redirections, enter:
QuICK tIP
##002#
Fix the VOiceMaiL BUttOn On an UnLOcKed phOne
enter *43# to activate call waiting; to deactivate, enter #43#.
If your voicemail button doesn’t work after unlocking your iphone, you can use the following procedure to set it up. Go to the “phone” screen, bring up the keypad, and enter the following: *5005*86* #. Press call, and wait a few seconds. When the wait screen disappears, your voicemail button will now be connected to the number you entered. Unfortunately, some carriers use SIM cards that have hardcoded voicemail numbers, and this method will not work on those carriers.
enter Field test Mode entering *3001#12345#* engages Field Test mode (Figure 6-4) to display more detailed technical information about the current cell network. You’ll also notice that your signal strength indicator is now showing strength in dB, instead of bars.
d
To understand some of the terms used in Field Test mode: www.tele-servizi.com/Janus/engield1.html
Figure 6-4 . Field Test mode
display iMei entering *#06# shows the iMei number. This is also printed on the back of your phone. search Google for “GsM codes” to look for more codes that work with your particular carrier. — christopher kurpinski & Damien stolarz
158
iphone hacks
HACK # 6.02
HACK 6.02:
add Speed dial with custom icons
You can create an icon on your home screen that dials a frequently used phone number. Dialing numbers quickly and easily is a key feature of any mobile phone. But many iphone dialing tasks take several more clicks than they need to. This hack will give you a one-click method of dialing from the home screen of your iphone.
d
Pressing the home button twice will take you directly to your phone number favorites list on the iPhone. Try it.
ever wonder why your phone calls voicemail when you hold down the 1 key? Basically, it looks for the voicemail number stored on your siM card, and calls that. and even though you can’t assign speed-dial numbers on the iphone, that voicemail shortcut still exists (hold down the number one and it calls your voicemail center). if your siM card allows you to change the voicemail number on your siM card (some siM cards, like the newer cards on T-Mobile america, do not), then you can use this to set up a single speed-dial number. Bring up the keypad on your phone, type the following code [Hack #6.01], and press the call button: *5005*86*# after the phone inishes processing, hold down the 1 key. if you’re lucky, it will dial the number you just assigned. if not, make sure that you’re entering the code correctly. if everything is correct, and it still doesn’t work, you may be out of luck. This hack can come in handy if you want to use an alternative voicemail provider [Hack #6.06], or if you want a quick way to call your most frequently used number. Best of all, if your carrier supports the visual voicemail feature, this should not affect your voicemail button.
Set Up Speed-dial Shortcuts There are two basic methods for adding a speed-dial icon to your phone: creating a web clip and creating a new application. Speed dial via Web clip The irst method can be done without jailbreaking your phone and takes advantage of the Web clip feature in safari. safari allows you to save bookmarks as an icon on your home page. This can be used to get one-touch access to frequently used websites, but in our case we’ll use it to generate speed-dial bookmarks. Most modern phones recognize URLs that begin with “tel://” as telephone numbers. We can take advantage of this by creating a bookmark to a “tel://” URL on the home page. it’s dificult to do this directly from safari, so we’ll need to use a web service. The downside of this method is that depending on the way the web service is implemented, it may not be totally secure. also, some services may actually route the link through their server, which would require your browser to navigate to their site before placing the call. open safari on your phone and navigate to .tel.qlnk.net. hit cancel, and then hit the bookmark button (Figure 6-5).
chapter 06 - aDD speeD DiaL WiTh cUsToM icons
159
Figure 6-5 . Making a tel.qlnk.net Web clip
instead of creating a bookmark, select “add to home screen.” enter the name that you want to use and select “add.” You can also use “.tel.qlnk.net/?picurl=http://path.to/photo” if you want to add a custom picture (Figure 6-6).
Figure 6-6 . a speed-dial Web clip on the springboard
another site that offers a similar service is www.soft-use.com/speeddial. enter the name, phone number, and (optionally) a link to an online image. press “Generate,” and then “Tap for shortcut” (Figure 6-7).
160
iphone hacks
HACK # 6.02 Figure 6-7 . Generating a soft-use.com speed-dial shortcut
Like before, cancel the call, and select the bookmark icon, then “save to homepage.” Both of these sites allow a custom image to be used, but it must exist on the Web. You cannot load an image from the phone, or a hard drive. Both services will add a new Web clip to your home page. When you want to place a call, tap the icon. a question box will pop up and ask you to conirm the call. select “call,” and the phone number that you entered will be called. What’s happening here is that a bookmark is created using the tel:// protocol. safari opens the bookmark, sees the “tel://” indicator, and knows that it is a phone number. For security reasons, safari always has to ask permission before making a call, which is why you have to select “call” before the call is placed. on a jailbroken phone, the process is even easier. Both of the previous methods still work, and you can also use urlclip (found in erica Utilities) to directly add a Web clip to your homepage. ssh [Hack #9.04] into your phone, or use the Terminal app, and type “urlclip tel://,” where and are replaced with the name and phone number you want to use. This will add the speed-dial Web clip to your home page, but with the default safari icon displayed (Figure 6-8).
Figure 6-8 . a speed-dial button made with urlclip
chapter 06 - aDD speeD DiaL WiTh cUsToM icons
161
Speed dial via application The second method (on jailbroken phones) is to use the application TapDial. after installing, run TapDial and enter the name and phone number that you want to use. instead of a Web clip, TapDial actually creates a new application for each speed-dial number. Unlike the Web clip methods, this is a one-press solution and does not ask for conirmation before calling (Figure 6-9).
Figure 6-9 . Using TapDial
Making it Look Good all of the demonstrated methods will add speed-dial icons to your phone, and some will even let you use custom pictures from the Web. But what if you want to use pictures from your laptop? or the pictures already on your phone? Luckily, if your phone is jailbroken, there’s a way to do just that:
1. 2. 3. 4.
5. 6. 7. 8.
162
iphone hacks
Make sure that you have ssh installed on your phone [Hack #9.04]. create a 58x58 pnG icon for your speed-dial number. copy the icon(s) to your phone, using scp or sFTp. ssh to your phone, and ind the speed-dial icon that you want to change. a. if you used a Web clip method, use find / -name "WebClips" to locate your Web clip directory. For this example (Figure 6-10), it was located at /var/mobile/Library/ WebClips. if you have multiple Web clips, enter each directory, and type “cat info.plist” to see the name and phone number for that clip. b. if you used TapDial, use find / -name ".app", where is the title of your speed-dial icon, to ind the app. For this example (Figure 6-11), it was under /Applications/. Back up the existing icon (optional). Use cp icon.png icon.png.bak to back up the current icon. copy your new icon to icon.png. For this example, we loaded the new icon into our home directory, which is the default. simply type cp ~/ ./icon.png, where is the name of your new icon. exit ssh. The new icon (Figure 6-12) won’t be used right away. You’ll need to use the respring application or restart the phone to refresh the icon.
HACK # 6.02 Figure 6-10 . Finding the Web clips
Figure 6-11 . copying the icon into the Web clip
Figure 6-12 . custom icon on a speed-dial button
congratulations! You’ve got a personalized speed-dial icon. You can use this technique to create as many as you want.
a Quicker Way an app called callMe was released for jailbroken phones, and is the best method yet of creating a speed-dial icon with a custom picture. it uses your contact list and imports the picture for that contact (Figure 6-13). With this tool, it’s easy to create and manage speed-dial icons. The only drawback is that sometimes you don’t want to use the same picture for an icon. For example, when the contact picture is a body shot, it might look good for phone calls, but not for an icon, so the method of adding custom pictures is still applicable in those cases.
chapter 06 - aDD speeD DiaL WiTh cUsToM icons
163
Figure 6-13 . callMe using address book images
can’t decide which method to use? consider this; the Web clip method requires two taps before placing a call, but your shortcuts won’t be lost if you upgrade your irmware. TapDial and callMe are one-tap solutions, but if you upgrade your irmware, you’ll lose all your speed-dial icons.
One More thing You can take icon customization one step further if you want to have lexible icon placement. The iphone will not allow random placement of icons; it groups everything together. You can get around this by creating some blank icons. here’s how: • •
•
• •
Use one of the previously described methods to create a Web clip. edit the Web clip Info.plist ile, and delete the title and URL sections (this prevents the name from appearing). create a 58x58 transparent .png image, and load it into your phone using the methods described earlier. Find the Web clip on your iphone, and copy the transparent pnG to icon.png for that Web clip. Restart springboard on your phone, and you should have a transparent icon. pressing it will launch safari to a blank page. You can create as many of these as you need, and use them as placeholders, to space out the icons on your phone (Figure 6-14). — christopher kurpinski
Figure 6-14 . a couple examples of custom icon arrangement using blank Web clips
164
iphone hacks
HACK # 6.03
HACK 6.03:
access Your asterisk Voicemails on Your iphone or ipod touch Upgrade your asterisk server with special iphone/ipod touch functionality. asterisk is an open source engine for telephony. it often serves as a modern digital replacement for the traditional ofice pBX and can power a large internal company phone network. Many ofices use asterisk to implement their voicemail system. For more information on setting the server up for yourself, check out www.asterisk.org. The iphone application is a plug-in to your existing asterisk server that allows you to retrieve your voicemails easily over a web connection. it is implemented as a web application, served by apache/ php on the asterisk server. You’ll need to install a couple libraries to make sure that the plug-in can work: you’ll need a running apache, php, and the lame libraries (so that you can encode Mp3s). You can ind full and up-to-date instructions at http://tinyurl.com/asteriskinstall.
QuICK tIP You can read all about Asterisk in the O’Reilly book by the same name http://oreilly.com/ catalog/9780596510480/ index.html. You can also ind the book online at www.asteriskdocs.org.
once your server is conigured to work with the asterisk Voicemail for iphone plug-in, you can access it by typing in the address into safari. You’ll see a screen like Figure 6-15.
Figure 6-15 . The main screen for asterisk voicemail for iphone
From this screen, you can access any of the voicemails in your mailbox to listen to, move, delete, or call back. Voicemails play back on your phone as an Mp3 (Figure 6-16).
chapter 06 - access YoUR asTeRisk VoiceMaiLs on YoUR iphone oR ipoD ToUch
165
Figure 6-16 . Listen to, move, delete, or call back asterisk voicemail
having all your telephony on one device is very convenient, and this can bring your asterisk-based desk voicemail conveniently to your phone.
HACK 6.04:
access Your Vonage Voicemails on Your iphone or ipod touch Vonagent lets you listen to your Vonage voicemails on your iphone or ipod touch. if you have Vonage and want to access your voicemails away from home, on your iphone or ipod touch, the Vonagent application will give you an experience as convenient as visual voicemail. The application is currently available for jailbroken phones, so you’ll need to access it using cydia, by adding the http://intelliborn.com/cydiav source. You can go to www.vonagent.com for a stepby-step guide to this. once you’ve got Vonagent installed and running, input your Vonage username and password. hit save, and the main screen should update with your information and preferences (Figure 6-17).
Figure 6-17 . Vonagent information illed in
By tapping on voicemails, you can get to your Vonage voicemails and listen to them (Figure 6-18). 166
iphone hacks
HACK # 6.04 #6.05 Figure 6-18 . accessing and listening to a voicemail
Vonagent goes beyond apple’s voicemail in that you can easily email a message if it needs to be forwarded to someone else to deal with, or if you want to save the information to your own inbox for later follow-up.
HACK 6.05:
Use Voice over ip on Your iphone or Second-Generation ipod touch several applications allow Voice over ip (Voip) on your ipod touch or iphone, allowing you to use your second-generation ipod touch as a phone or save your voice minutes on your iphone. one of the drawbacks of the gateway-drug ipod is that you start craving iphone features. sure, you can usually get twice the storage on your ipod than the current iphone—and it’s smaller—but you want to stay in touch and you don’t know why you can’t just make a phone call. Fortunately, because the second-generation ipod touch supports the microphone input, if you have iphone-style headphones, it can make phone calls just like an iphone—as long as you’re on a Wi-Fi network. additionally, for iphone users who want to use Voip—either to save minutes, or because they are overseas and want to make cheap calls via Wi-Fi—there are several applications that allow you to accomplish this feat. Sip session initiation protocol (sip) is the language that Voip applications use. so applications that support sip allow you to hold voice conversations over the internet. Usually, these applications can make free calls between sip phones, and then, using a gateway, can make paid calls to traditional phone services. You can make a sip account with a variety of vendors, and most of the Voip apps that are distributed for Windows, Linux, and Mac os X are usually bundled with some sort of sip account so that you can pay them money to reach the pTsn (public telephone switch network; i.e., landlines and mobile phones). sip accounts generally provide extremely cheap per-minute rates and are purchased much like prepaid calling cards. a good stable sip account vendor is http://gizmo5.com. They also have a desktop application and offer a few free minutes of calls (i.e., no up-front payment required) so you can see whether sip is for you before making a commitment.
chapter 06 - Use Voice oVeR ip on YoUR iphone oR seconD-GeneRaTion ipoD ToUch
167
There are two features you can get with sip gateways: call out, and call in. if you just have a sip account, you can call to other sip accounts essentially for free. if you want to make calls out to landlines, but you don’t care about receiving calls (on that number, anyway), then you pay only for sip-out minutes. if you become so enamored with sip that you put it on your iphone, your ipod, and your desktop, so that people can call you on your pc or on your handheld, depending on where you are, you’ll need to get a phone number for incoming pTsn to sip calls—a sip-in number. Because there’s really no cost, it’s good to experiment with sip on your desktop and get everything working there, because it eliminates variables when debugging your iphone or ipod sip connection. Fring Fring (Figure 6-19) is an app store application based around instant messaging, but it also supports sip. Like the various other multi-iM programs, it lets you use Msn, Google, icQ, Twitter, Yahoo!, and aiM, but it additionally supports voice—so you can use it to communicate with skype users, other Fring users, and also use the voice chat features of several iM clients (Figure 6-20).
Figure 6-19 . Fring chat add-ons
additionally, Fring integrates a sip account and gives you a number of options (Figure 6-21) of places to create an account, or you can add your preexisting sip account. Fring’s system tunnels the voice trafic through their servers (a hundred milliseconds away in europe) and out to the sip network, instead of your call going straight to the person you’re calling, so this can sometimes add delay in the form of call latency.
168
iphone hacks
HACK # 6.04 #6.05 Figure 6-20 . Fring Voip add-ons
When used with an ipod touch, you have the option to call out using sip or to chat with contacts (Figure 6-21).
Figure 6-21 . Fring ipod touch contact options
The more options that you have conigured, the more options you have to call. Figure 6-22 shows options on an iphone to make a call via sip, skype, or the iphone’s own GsM connection.
Figure 6-22 . Fring iphone contact options
chapter 06 - Use Voice oVeR ip on YoUR iphone oR seconD-GeneRaTion ipoD ToUch
169
truphone another option for sip calling and voice chat is the app store app truphone (Figure 6-23).
Figure 6-23 . truphone call interface
truphone has a similar feature set as Fring: voice chat with other iM clients, skype voice support; it also features an integrated sip service provided by truphone that simpliies coniguration of Voip features. Siax For jailbroken phones, siaX (Figure 6-24) is an option. it does not have the Wi-Fi-only limitations of the app store applications (it will work over the iphone’s 3G network), and it has a few features that the previous applications lack, like the ability to use a sTUn server (for getting through irewalls). siaX also supports the asterisk iaX protocol, so you can make calls through your asterisk server.
Figure 6-24 . siaX
Wi-Fi vs. 3G The app store Voip applications generally do not support 3G connections and function only when on Wi-Fi. although siaX supports 3G, Fring and truphone do not.
170
iphone hacks
HACK # 6.06 Voipover3G is a native application (Figure 6-25), available via cydia, that can trick applications on an app-by-app basis into thinking they’re on Wi-Fi. it works for truphone, Fring, and even the app store and iTunes stores, so you can download larger items over 3G connections.
Figure 6-25 . Voipover3G
With sip, skype, and asterisk options for your iphone and second-generation ipod touch, you can set up lexible phone options so that you can make your calls cheaply from anywhere you want.
HACK 6.06:
Get Visual Voicemail on t-Mobile or Other carriers
You can simulate the visual voicemail feature on other carriers using a voicemail-to-email service and a push email account. as great as visual voicemail is—and it is pretty cool—there are still some things that it can’t do. it’s also a carrier-dependent feature, so you’ll lose the feature if you unlock your phone to use it on a carrier who doesn’t support it. Luckily, there are some services available that you can use to improve your voicemail no matter what carrier you’re on. Figure 6-26 shows apple’s built-in visual voicemail.
Figure 6-26 . Visual voicemail
chapter 06 - GeT VisUaL VoiceMaiL on T-MoBiLe oR oTheR caRRieRs
171
The basic features of visual voicemail are:
1. 2. 3.
Voicemail audio is pushed to your phone. You can see which voicemails you’ve listened to and which you haven’t. Voicemails are automatically “pushed” to your phone; that is, they’re usually ready to be listened to without making a phone call.
Visual Voice email There are three basic steps to getting your pseudo visual voicemail enabled:
1. 2. 3.
create a new push email account just for voicemails. Forward your voicemail to a third-party voicemail service. have the service email your voicemails, attached as Mp3s, to that email address.
Step 1: Create a new push email account for voicemails. Yahoo! provides free email accounts that are fortunately push-enabled on the iphone. [Hack #3.01] shows you how to set one up. You can set some obscure address that no one would want that includes your phone number, like my-5551212, and you can even create rules on the Yahoo! side that automatically trash any email that does not come from your voicemail provider. Make sure that push is enabled and that your phone is receiving email messages from this address before the next step. Step 2: Subscribe to a free voicemail service. There are probably hundreds, if not thousands, of voicemail systems that you could choose. if you already have some sort of voicemail-to-email solution, you could just forward your phone to that. But for the purpose of this hack, we’ll use a nice free voicemail and digital fax service called k7.net (Figures 6-27 and 6-28). [Hack #6.07] discusses other voicemail options. choose the settings shown in Figure 6-27—pcM for the sound and “send to my email” for receiving messages. obviously, you should enter the email address that you conigured in step 1.
Figure 6-27 . k7.net signup
172
iphone hacks
HACK # 6.06 Figure 6-28 . k7.net signup conirmation
Step 3: Forward your voicemail to this new service. Forward voicemails to your new voicemail service, instead of that provided by your cell carrier, such as T-Mobile or aT&T. You can select which kinds of calls to forward: call waiting calls, or ignored calls, or missed calls, or all of them. The exact codes to press vary by carrier [Hack #6.01]. For instance, to set up call forwarding on your U.s. iphone on aT&T, open the keypad on the phone, and enter the following: *004*# , then press “call” (Figure 6-29). now, any missed calls you receive will be sent to your email system instead of your carrier’s voicemail system. Make sure to check your carrier’s billing policies on call forwarding before enabling this feature.
Figure 6-29 . k7.net forwarding conirmation
To clear this number and return to the original voicemail settings, type ##004#, then press “call.” Your “visual voicemail” To see how it works, go into your email and select the account you set up. after you receive a few phone calls and let them go to voicemail, you should see a screen like Figure 6-30.
chapter 06 - GeT VisUaL VoiceMaiL on T-MoBiLe oR oTheR caRRieRs
173
Figure 6-30 . Forwarded voicemail listing
When you click on one of the messages, you’ll be able to listen to it right away, as the voicemail has already been downloaded to your mail (Figure 6-31). even if you go out of cell range, the voicemails are right there to be listened to—just like visual voicemail.
Figure 6-31 . Forwarded voicemail detail
The main drawback of using k7 in particular as a voicemail vendor is that they never show the number that called you in the body of the email—it’s only in the sender ield. other voicemail services vary in the way they include caller iD in the message. Thus, you can’t use the iphone’s number recognition feature and simply click the number to call back. also, because the numbers are not integrated with the address book, you can’t see your address book entry; you see only the number of who’s calling. on the other hand, this messaging approach has some advantages over visual voicemail. Because voicemails are on an email account, you can access your voicemails from a desktop computer, if your phone battery goes dead (Figure 6-32). and this gives you an archive as well. so if you’re one of those people who likes to hold on to old voicemail messages for posterity or recordkeeping, you’ve got them. and if the voicemail would be better handled by someone else you work with, you can forward it on to them.
174
iphone hacks
HACK # 6.07 Figure 6-32 . Forwarded voicemail in desktop email client
— christopher kurpinski & Damien stolarz
HACK 6.07:
automatically translate Your Voicemails to text
a number of companies now offer the ability to translate your voicemails to text, so that you can easily read them instead of having to listen. one of the recent features to appear in the telephony scene is automatic voicemail-to-text translation. it works like this:
1. 2. 3.
You forward your phone’s voicemail service to the new service, and set your outgoing message. When people leave you a voicemail, up to one minute of that message is transcribed by a combination of machine translation and anonymous human translation. The translated message is then sent to you, either in an sMs, an email, or both.
The email usually comes with the audio message itself attached as a media ile, so you can play back the full message or parts that the translator missed or misunderstood. in an age of venture-funded free services, why does it cost so much? it's because they’re actually paying people to do the translation. computer-based translation just isn’t advanced enough to handle speech-to-text. By using an army of workers who get paid per translation, they are able to scale. But because these translations cost real money, each of the companies offering this service still has to charge something, and thus there are limits on the length of messages (between 15 seconds and a minute) and how many messages they will translate in a month.
Various Services it seems like a new telephony company starts up every 15 seconds, given the amount of competition in this area (theoretically, a good thing for consumers). current providers of voicemailto-text include: callWave GotVoice phoneTag spinVox Voicecloud YouMail
www.callwave.com www.gotvoice.com www.phonetag.com www.spinvox.com www.voicecloud.com www.youmail.com
chapter 06 - aUToMaTicaLLY TRansLaTe YoUR VoiceMaiLs To TeXT
175
The services vary tremendously with regard to the quality of translations—even from day to day. They are also naturally affected by issues such as recording quality and the accent of the people who leave you messages. in the U.s. market, the popular U.k.-based spinVox (Figure 6-33) service is provided by another company, Ureach.com. For $10 a month, they offer about 40 translations. For some people, that’s about three days of voicemail, so you’ll deinitely need to get on an all-you-can-eat plan. The problem is that there’s a ixed cost for translations and the quality of the translations may suffer if you opt for this. some of the other services, such as YouMail, offer (limited) “unlimited” translations, and even have options for translating only the irst 15 seconds of the message—so you can get the gist of it and return the call if you need to.
Figure 6-33 . spinVox
SpinVox/Ureach here are some examples of translations through spinVox/Ureach: Example 1: “Mrs. Dollards(?) it’s....anyway it’s 8:48 and i’m gonna phone at 9:00 at Mike’s ofice and then i’m gonna be prepared for that conference call. if you got the message and got my information from last night, i’d called and said to you i think you got an email coz it was sent out to both of us but don’t know if you’ve had the information, if you don’t i can give it you.” sadly, Mr. stolarz became “Mrs. Dollards.” Example 2: “hi Bro i have a habit of writing text messages and sending them to the wrong people. That message was for, for Tina cos she wrote where are you, and i wrote working where are you? But, out of context, just you receiving it, you probably, it sounds like you were supposed to be here and you weren’t and i’m like, where are you? exclamation point. But it wasn’t for you. so don’t be alarmed. But it is a funny slip of some sorts cos i did wanna ind out when you were next available to come over and stuff. so anyway give me a call. ok bye” as you can guess, the translations from spinVox are very accurate; it’s mainly names that give them trouble. Voicecloud here’s another example of translations, this time from Voicecloud:
176
iphone hacks
HACK # 6.08 Example 1: hi, i just wanted to let you know that i sold the book case for a 140 dollars to a nice young couple who had just tried to go to ikea yesterday and buy mine but ikea was sold out so they were very happy to ind the discounted one that they could come get today, that was brand new, so anyway that was a cute story, it all worked out nicely, i have a 140 dollars and the boxes are out of the house, yea, ok bye... Voice-to-Text by Voicecloud Other service features a differentiating feature of one of the services—YouMail—is that in addition to transcription, you can have a custom greeting that's based on caller iD. so if you have a business greeting but you don’t want to give the cold leave-a-message-i-can’t-talk-right-now to friends and family, you can enter them into your address book and give them friendly customized greetings based on Mp3s you upload. You can even implement blacklists, so you can outright refuse to take a message from numbers of people you don’t like. The main problem with all of these services is that if you have a lot of voicemails, you’re just going to blow out most of their translation plans. and the few services that offer “unlimited” transcriptions aren’t necessarily going to give you the same results. Figure 6-34 pretty much sums up how your translations get used up if you’re playing cell-phone tag with bad reception.
Figure 6-34 . spinVox sample text
it’s quite a remarkable fact that some ine gentleman or lady on the other side of the world stayed up late and got paid Us$0.10 to memorialize aT&T’s lack of cell coverage on the 405 by translating a message to that effect. it’s also, to many, a bit eerie. Most people assume that voicemails are private messages, destined only for the listener, and the prospect that an angry or a lirty message will be faithfully typed in by a human agent, perhaps in india, is unnerving. But to a business user who only occasionally gets racy phone calls, the slight reduction in privacy may be worth it for the convenience of sifting through voicemails during a time-wasting meeting.
HACK 6.08:
Update twitter or Your Blog with a phone call
You can use several of the digital transcription services to speak short text updates sent directly to Twitter or a blog. one of the more popular phenomena of late is micro-blogging—the posting of one- or twosentence sMs-sized postings to Twitter or to a social network as “status messages.” For one of the cool kids who used to have a .plan ile just like John carmack, leaving status messages is nothing new. But updates are expected much faster now, irst with instant messaging, and now with Facebook and tweets—and sometimes you’re not in a position to type. some of the services in [Hack #6.07] offer the ability to post directly to Twitter. Jott (www.jott.com; Figure 6-35) is designed around the concept of to-do lists, allowing you to leave voice notes for yourself that get automatically translated to text to-do items in your lists. chapter 06 - UpDaTe TWiTTeR oR YoUR BLoG WiTh a phone caLL
177
however, this same microtranslation service can be used for free to speak 15-second updates to Twitter or a blog—just long enough to ill those 140 characters.
Figure 6-35 . Jott
To use the Jott service, register for their free plan, enter your phone number, and then dial 866JoTT-123. Jott knows who you are and asks “who do you want to Jott?” You say “twitter” and then speak your tweet. it will post it within a few minutes. spinVox offers a similar service, allowing you to post to Twitter, Jaiku, and Facebook. once again, the service is free; you just sign up (Figure 6-36) and call the number they give you: +1-877-5-spoken.
Figure 6-36 . spinVox signup
178
iphone hacks
HACK # 6.08 The service recognizes your phone number, and voilà: your translated text shows up on Facebook and Twitter (Figure 6-37).
Figure 6-37 . spinVox-rendered text on Facebook
if you need to update more than just Facebook and Twitter, metaposting service called ping.fm takes posts and then reposts them to any other service you can think of (Figure 6-38). it uses spinVox as its speech-to-text engine and then posts the message simultaneously to whatever service you designate. now, all your social networks will be updated with the minutiae—or brilliant and sudden insights—of your life. it gives you a number to call and greets you with a very short “leave a message,” and thus is well suited to rapid impulse posting. You can even set up categories, so that your voice-based posts target speciic subsets of your online services, and designate whether they constitute a “status update” (i.e., what you’re doing) or a microblog of something that you wanted to say.
Figure 6-38 . ping.fm supported services
Other Services While you’re trying these services out for blogging, you may ind that their posting features are useful for other hands-free activities. For instance, the paid spinVox features allow you to use your voice to send a text message or email to people—very useful when you need to email a colleague who isn’t answering their phone, or when you need to get the thoughts out of your head and into their inbox. Because so many of these services offer free trials or services, there’s no harm in trying them all. reQall (www.reqall.com) and Dial2Do (www.dial2do.com) compete with Jott and are worth a look. chapter 06 - UpDaTe TWiTTeR oR YoUR BLoG WiTh a phone caLL
179
HACK 6.09:
create a podcast While driving
You can create a podcast—a blog with downloadable Mp3 iles— just by making a phone call. if you live in a major U.s. city, there’s a good chance that you spend hours a day in a vehicle. That gives you lots of time to make hands-free cellular calls and listen to media on your iphone. But once you’ve listened to all your books on tape once, all your music twice, and done every course on iTunes U, it’s time to actually start creating content yourself on the go. There are many different services that allow you to make a podcast using only your phone. For our purposes here, we will use Gcast (www.gcast.com; see Figure 6-39). it’s fairly quick to get up and running.
Figure 6-39 . Gcast’s main page
creating a Gcast account is straightforward. once you’ve created an account, you can call in to create your irst podcast post. calling in a podcast is easy. Dial 1-888-654-2278 from the phone number that you entered during account creation. Then type in your chosen pin on that same screen. The automated service will then start recording, and you can start producing content (by speaking words into your phone). When you’re inished, press #. Then you can choose to scrap your recorded rambling and try again, or go ahead and save and/or post it online. Then hang up. in about ive minutes time, the podcast should be posted online. Like any good podcast, people can subscribe to your Gcast in many different ways. although any Rss reader will work, one of the more popular ways to subscribe to a podcast is via iTunes (Figure 6-40).
Figure 6-40 . current options for subscribing to a Gcast podcast
180
iphone hacks
HACK # 6.09 The Gcast subscribe with iTunes link gives you an XML link that you can use to add your podcast to your iTunes. The link should look something like this: www.gcast.com/u/iphonehacks/main.xml You can put this link on your website or email it to people; they should be able to read it in any Rss reader or podcast client. if you speciically want to target iTunes, use a special “launch iTunes” URL: itpc://www.gcast.com/u/iphonehacks/main.xml You can see how the podcast looks in iTunes in Figure 6-41.
Figure 6-41 . a Gcast podcast in the context of iTunes
Other Options Gcast is a great option if you want a simple podcast that you are going to promote on your own, through your website, or on your text blog. if you’d like other options, such as systems that allow you to do multiparty calls or that promote your blog to an audience, there are a number of other options, including these: hipcast Talkshoe Gabcast Yodio
www.audioblog.com www.talkshoe.com www.gabcast.com www.yodio.com
chapter 06 - cReaTe a poDcasT WhiLe DRiVinG
181
07
unLoCKIng And ACtIvAtIon in the world of GSM-based cellular providers, it is the SiM card, not the phone, that determines what network you connect to. Some people have a collection of GSM phones and swap their SiM card between them (Figure 7-1). it is even a good backup strategy for the mobile businessperson to have two phones, in case one breaks or runs out of battery charge. Figure 7-1. siM card
Because the iphone is a GsM phone, it is physically capable of connecting to most GsM networks. Many mobile phones around the world are subsidized. The manufacturer expects to make $300UsD, $500, or more on the phone. instead, it is sold for $100, $200, or given away “free” for consumers who agree to be locked in to a contract for a year or longer. You pay for part of your phone, and your mobile carrier pays for part of it, in exchange for having you as a customer for a while. and if you leave early, you have to pay to break your contract. You’d think that this would be enough for people to stick with a carrier. But there’s also exclusivity. any mobile phone vendor is free to make exclusive deals with carriers, so that they can have a limited-time “exclusive” on a hot new phone. Yet even when they sell the same phone to all carriers in a market, they still have a habit of locking the phones, so that phones sold by a given carrier will work only with siM cards from that carrier. 182
iphone hacks
HACK #
Methods of Unlocking The goal of unlocking is to remove or change the code that prevents a phone from working on any GsM carrier. The most common methods include the following:
1. 2.
3. 4.
a sanctioned software unlock. This is the cleanest method. in this approach, the carrier or manufacturer does something to release the phone from its GsM bonds [Hack #7.01]. a hacked software unlock. in this approach, the method of locking is reverse-engineered, and some exploit is used to bypass or defeat it. some of these changes can be permanent and resistant to new upgrades, but some are brittle, dependent on software versions, and break whenever the phone’s software is updated (which, for iphones, is often) [Hack #7.02]. siM cloning hacks, which replace the siM with a siM that has been copied, with alterations, to satisfy the phone’s need for carrier X while letting it communicate with carrier Y [Hack #7.03]. “Turbo-siM” hacks, which work by inserting a small shim circuit between the carrier siM card and the phone tricks the phone, the siM, and the carrier network into thinking everything is normal [Hack #7.04].
General Unlocking advice if you have a sanctioned unlock from apple [Hack #7.01], there’s nothing to do. Your iphone will work with any siM card worldwide, and you can upgrade your irmware at will. For any of the various other methods of unlocking, you’re playing a game of cat-and-mouse with apple. and although the irst-generation iphones are thoroughly unlockable, the 3G iphone have been increasingly harder to unlock, as will, presumably, future iphones.
If you have unlocked your iPhone, don’t upgrade your irmware when a new version is released!
as new irmware versions are released, apple clamps down on existing unlocking methods, causing them to break. it’s best to wait until more information pertaining to each new release has been gathered by the iphone hacking community. With more knowledge about the irmware, you’ll have a better idea about what steps should be taken to assure that the upgrade goes smoothly. initially, all the simple unlocking hacks used prior to the update may not work on the new irmware version. at irst, the only unlocking method may be a complicated command-line hack that requires many steps. even if the procedure goes lawlessly, these early unlocking hacks may still have a low success rate. These hacks may be too complex for the average user, thus limiting the number of iphone owners who can beneit from such a method. once the iphone hacking community has had suficient time to examine the details of the new irmware version, simple, easy-to-use applications for unlocking will slowly begin to emerge, and will phase out the complicated hacks that were developed initially. around that time, the usual suspects [Hack #2.06] start to come to a consensus about which unlocking solution works with the latest irmware.
chapter 07 - UnLockinG anD chapter acTiVaTion 07 -
183
all hail those intrepid volunteers devoted to the noble cause of testing cutting edge, untested, and possibly dangerous unlocking techniques!
HACK 7.01:
Buy an Unlocked iphone from apple
if money is no object, you can purchase an unlocked iphone. if you have enough money, in some regions, such as hong kong, Belgium, italy, and australia, you can purchase an unlocked iphone. insert your siM chip from any carrier, activate, and you’re done (Figure 7-2).
Figure 7-2. Unlocking in iTunes (screenshot courtesy of iain Rauch)
This is by far the best and potentially the easiest unlocking solution. You’ll pay a full, unsubsidized list price, which may be shocking, but not much more shocking than the original price of the iphone at $600UsD at release. in hong kong for instance, phones range between $700–$800UsD for the 8GB and 16GB 3G models. Depending on exchange rates, you may do better. For instance, Figure 7-3 shows an unlocked 8GB iphone 3G for approximately $634 plus another $55 or so for shipping.
184
iphone hacks
HACK # 7.02 Figure 7-3. eBay sells unlocked iphones
There are a few drawbacks to this approach:
1. 2.
3.
You’re buying something with potentially less protection under domestic trade law, that takes a while to arrive, and that is subject to the vagaries of international commerce. Your warranty situation may be uncertain. if you walk into an apple store in california with a new phone from australia with a problem, will they cover it under warranty? and even if the answer is yes, if you have to swap phones, they are unlikely to have an unlocked replacement on hand and will probably refer you to the apple ofice in the country the phone came from. These phones are expensive.
however, the advantages of having an apple-unlocked phone are numerous. For one thing, you can be certain that no future apple software upgrade is going to be designed to disable your unlock. Thus, you don’t have to fear upgrades, and you can stay current with the rest of the iphone software world. also, your phone may have excellent resale value should you want to upgrade—unlocked phones have a brisk trade online.
HACK 7.02:
Unlock Your iphone with Software
Free your phone with free software—and a little free time. For the original iphone and 3G iphone, there have been many exploits that have led to a number of software-based unlocking solutions. although all of these techniques eventually reduce to “run this program and click unlock,” the tremendous amount of mental gymnastics and brilliant reverse engineering that go into them is admirable. it’s possible that the world’s most hyped phone has become the world’s most hacked phone, because whether you’re looking for fame or fortune, both can be found in the iphone unlocking arena. The very irst iphone unlock was achieved through hardware [Hack #7.03], but almost immediately a number of software solutions came out. Usually, jailbreaking and unlocking go hand in hand, and the graphical applications used for jailbreaking [Hack #1.03] are usually used for unlocking. Jailbreaking and unlocking both depend on exploits, which are essentially bugs or features with side effects that can be used to gain control of parts of the phone. Finding exploits is painstaking work consisting of decoding thousands of raw, ine-grained instructions to various unfamiliar chips,
chapter 07 - UnLock YoUR iphone WiTh soFTWaRe
185
tracing them step by step, and trying to see how they work. it took almost six months for hacks in the 3G iphone baseband to be discovered and exploited for unlocking. Many exploits have been developed for jailbreaking phones: unlocking is a more dificult task. Jailbreaking simply changes some settings on the lash drive to allow unsigned third-party applications, but unlocking requires sophisticated alteration of the baseband software, and requires an understanding of cellular protocols, baseband programming, and the security layers added to the equation with apple’s iTunes-based phone activation system.
how does it Work? as described in [Hack #2.01], there are two “brains” in the iphone: the baseband, and the iphone aRM cpU. The baseband is the “cell phone brain” of the iphone (Figure 7-4), and it is this chip and its associated code that prevents or allows communication with the siM card.
Figure 7-4. iphone baseband boot sequence and cpU boot sequence
iphone Baseband Boot Sequence
Inineon s-Gold 2 GsM processor “Baseband”
Baseband Bootrom irst code to run
Baseband Bootloader checks signatures, installs updates
Baseband Firmware main instruction set
iphone cpU Boot Sequence Samsung S5L8900 aRM11 cpU
Virtual RoM (VRoM) copied from RoM
Low Level Bootloader (LLB) checks iBoot’s signature
iBoot—also runs Recovery Mode
186
iphone hacks
Darwin kernel
Mobile os X
HACK # 7.02 in a sanctioned unlock [Hack #7.01], there is a section of the baseband called the “seczone” where the lock state (unlocked or locked, and associated information) is stored on the phone. in the seczone is stored a token, a combination of information unique to every phone, including its iMei (international Mobile equipment identity) number and a unique device iD. When an iphone is activated, or unlocked through sanctioned means, this token is sent to apple’s servers, and apple uses encryption technology to digitally sign a “permission slip” for this token that is sent back to the phone to activate or unlock. iTunes sends this information to the iphone, and the iphone obeys the unlock or activation only if the token is properly signed by apple. Because encryption technology is a strong defense, no one has been able to crack apple’s code directly and create an authentic apple signature. Rather, they have taken the approach of making the iphone ignore these instructions from the mothership. and every time that the iphone is updated, these “don’t listen to apple” instructions inserted by hackers tend to be erased or overwritten, and the phone made more resistant to these breaches of loyalty. For the original iphone, several major software unlocking techniques were developed. •
•
anysiM (http://code.google.com/p/devteam-anysim): anysiM (Figure 7-5) was originally available only in a paid application, but once alternative unlocking methods became available, it was open sourced. The irst anysiM technique simply disabled signature checks in the baseband so that any attempt to verify an apple signature would say “success.” This achieved the goal of unlocking, but was sensitive to restores, in that each time a new baseband irmware was released by apple, it would undo the effects of this hack and the hack would need to be reapplied. an unfortunate side effect of this hack was that it irreversibly altered part of the baseband (the locktable, a section relating to lock status), and this resulted in temporary bricking when new basebands were installed. Virginization software was developed—this software could write virgin, locked locktables back to the device. an improved version of anysiM changed the baseband (but not the seczone portion of the baseband or the locktables) so that any Mcc/Mnc pair (Mobile country code/Mobile network code, used to identify a cell network) would appear to be valid. iphonesimFree (www.iphonesimfree.com): often abbreviated as ipsF, iphonesimFree was a software unlock that works differently from anysiM—it is able to survive irmware updates. This hack changed the lockstate table in the seczone to unlocked, and then exploited several bugs: one in the Rsa decryption parsing in the 3.9 bootloader and one in a data validation check, resulting in a token that appeared validly signed. Because the token itself is stored in the seczone, which is not updated by baseband updates, this particular hack survived irmware upgrades.
Figure 7-5. anysiM
chapter 07 - UnLock YoUR iphone WiTh soFTWaRe
187
Bootneuter (for Original iphone) a very stable method of unlocking the original iphone was developed by the iphone Dev Team and incorporated into the pwnage software. This incorporates the various hacks mentioned previously, including repairs for common ravages of earlier unlocking techniques. Bootneuter can be installed in cydia (Figure 7-6) or can be automatically installed when you create a jailbreak irmware image [Hack #1.03] and apply it to your phone (Figure 7-6). Bootneuter allows you to switch between the 3.9 or 4.6 bootloader. “neutering” your bootloader allows a modiied bootloader to be considered valid by the iphone. From there it is a simple operation to unlock the phone. FakeBlank is a modiied version of the 3.9 bootloader (a 4.6 FakeBlank is also available) that “blanks” a section of memory so that advanced bootrom hacking can be done and if trouble arises, the hacker can “roll back” their bootloader. if you aren’t experimenting with bootloader patches (you’ll know if you are) and just want an unlock, then you can leave the default settings.
Figure 7-6. Bootneuter
Yellowsn0w (for iphone 3G) The iphone 3G was released in the summer of 2008, but it took until new Year’s eve of that year to unlock it via software. This unlock was far more dificult to accomplish than the irst-generation unlock because more signature checking and software veriication were added (speciically, the bootrom checks to see whether the 3G bootloader has been altered at boot). Yellowsn0w gets around this problem by loading an in-memory process that, after booting, tricks the phone into thinking it is unlocked. Because the unlock is simply a startup item, you can toggle the unlocked state with applications like Bossprefs (available on cydia) or simply uninstall the program when you don’t need it. Like Bootneuter for irst-generation iphones, Yellowsn0w can be installed with pwnage or via cydia (Figure 7-7).
188
iphone hacks
HACK # 7.03 Figure 7-7. Yellowsn0w
HACK 7.03:
Unlock Your iphone with a SiM hack
You can use a locked phone on a different carrier with a physical hack to the siM card. as mentioned in [Hack #7.02], the second method of the anysiM software hack changed the baseband so that any Mcc/Mnc pair (used to identify a cell network) portion of the phone’s iMsi (international Mobile subscriber identity) would appear to be a valid pair. even if you can’t successfully hack the baseband—for instance, on a 3G iphone—there is a hardware method for doing the same thing. as there already existed a large market for unlocking phones prior to the iphone, many companies were already producing solutions for hacking siM cards. Bladox, a czech Republic–based siM test tool manufacturer, introduced the Turbo-siM in 2004. This clever device consisted of a thin circuit board shaped like a siM card, and a tiny microcontroller (Figure 7-8). By cutting a tiny square out of the plastic casing of the siM card (which did not affect the siM card’s normal functioning), the Turbo-siM could piggyback the siM card, intercept its communication with the phone, and mediate between the two to make sure they “agreed.” siM card sandwich hacks of this nature were some of the most consistently effective for irstgeneration iphones, and are currently the only effective solutions for iphone 3G hacking. as with many hacking solutions, a game of cat-and-mouse has ensued, and many of these siM piggyback cards ceased to work when irmware 2.2 was released for the iphone. Because the piggyback siM has a reprogrammable microcontroller, they can be upgraded with new irmware (with the right programming equipment) to work around new problems. example: i3gSim all this unlocking method requires is that you purchase the unlocking tool, and sandwich it with your non-aT&T siM card. This tool works by tricking your iphone into thinking that the proper aT&T
chapter 07 - UnLock YoUR iphone WiTh a siM hack
189
siM (or whatever network your iphone is locked to) is inserted, even though a siM card from a different GsM provider is inserted. To do this and unlock your iphone, irst turn off your iphone, and then remove its siM card tray. now take a look at the i3gsiM tool. You’ll notice a black chip that sticks out from the card in the top left corner of Figure 7-8. To get the tool to sandwich with your siM card, you will need to cut a notch out of the siM. The portion of the siM card that you will be cutting out will not affect its performance in any way. a sharp knife such a razor blade is perfect for this job. Figure 7-9 shows a siM card with the proper-sized notch cut out of it.
Figure 7-8. The i3gsiM unlocking tool
notice the black chip in the top left that sticks out of the tool.
Figure 7-9. a siM card with a notch cut out of it in the top right so that it can accommodate the i3gsiM unlocking tool
once you’ve got your siM card properly cut, get the i3gsiM tool, your siM card, and the siM card tray ready to put into your iphone (Figure 7-10). Lay the i3gsiM tool on top of the siM card so that the black chip is resting inside the notch, and place them into the siM card tray, as in Figure 7-11.
190
iphone hacks
HACK # 7.03 Figure 7-10. siM card tray, notched siM card, and i3gsiM unlocking tool (left to right)
Figure 7-11. siM card and i3gsiM tool
now just slide the siM card tray back into your iphone, and turn it on. once it’s started up, the carrier name at the top left of the screen will change to the name of the siM card’s provider, as shown in Figure 7-12.
Figure 7-12. an iphone using the i3gsiM unlocking tool. notice how the carrier name at the top left has changed to T-Mobile!
chapter 07 - UnLock YoUR iphone WiTh a siM hack
191
Vendors and caveats There are drawbacks to these solutions. Because they are hacking the phone+network combination, instead of the phone alone, there can be poor implementations: • •
some cards work only with 2G (not 3G) networks. some cards get banned from the cell network.
The reason for cell phone banning is that the hacks used violate network policies by looking like a “cloned” siM card, which is a common method of stealing cell service. even though the only siM being “cloned” is your own, in an extreme case, this could cause the siM to be banned from the network, requiring another siM. Despite these caveats, a unit purchased from a reputable vendor is very likely to work on the networks and irmware versions they specify, and many such products are in successful use. also of note: • several vendors (such as i3gsim and Rebelsim) make cards that do not require any siMtrimming, by moving the microcontroller or producing custom trays for the phone. • Most vendors recommend that you put tape on your siM card as a ripcord so that you can pull it out later. The small force exerted by the paperclip in the hole is insuficient to push out the wedged pair of cards. a few vendors are active in the iphone unlocking market and update their products frequently to deal with new irmware. They all have a mysterious quality to them—no mailing address, all communication through the website—but perhaps this is to be expected of gray market phone hacking vendors. You should deinitely check the community sites [Hack #2.06] and check references—and verify phone compatibility—before you send your money. These vendors are: www.any-network.com www.iphone-sim-unlock.com www.i3gsim.com www.rebelsimcard.com it’s worth noting that companies like www.yessim.com and www.rebelsimcard.com provide the programming tools (Figure 7-13) and bulk sets of 3G cards (in case you’re running a mobile phone unlock shop) and even lets you private-label your siM sandwiches, in case you’re the entrepreneurial type. The programming tool lets you specify what network you want it to spoof for your phone (which varies by country) so that you can log onto the cell network successfully with your iphone.
Figure 7-13. Yessim programming tool for 3G siM
192
iphone hacks
HACK # 7.04
HACK 7.04:
conigure Your iphone after Unlocking
Because apple didn’t intend for the iphone to be used with alternative mobile carriers, some of its functions may not work correctly after you inish an unlock. Luckily, you can ix them and get your iphone working like it should. Fix cellular data Settings once you’ve unlocked your phone via any of the methods described in previous hack, phone calls should work, but your cellular networking may not. on the irst-generation iphone with 1.x.x irmware, this was easy to do via settings→network→eDGe settings (Figure 7-14). nowadays, with 2.x irmware and 3G phones, it’s just a little bit harder.
Figure 7-14. edge settings
There are just a few steps to ixing your networking:
1. 2.
Find out the access point name (apn), username, and password for your network. enter this data in the phone manually with a coniguration utility or with a downloaded carrier bundle.
Step 1: Learn your apn. Find out the apn, username, and password for the network you want to connect to. You can ind these settings by calling your carrier or looking online. a list of common apns by carrier can usually be found on popular iphone or BlackBerry forums such as www.pinstack.com/carrier_settings_ apn_gateway.html. Step 2: edit your apn settings. With the information, you can edit the settings on your phone. To accomplish this you can either enable apn editing, use the iphone coniguration Utility, or download a carrier pack from cydia. Enable APN editing on the iPhone on older irmware, you could go to settings→General→network, but this does not work on 2.x irmware. To reenable this feature, you’ll need to edit the binary carrier.plist [Hack #11.02] corresponding to your carrier. Find the ile /System/Library/Carrier Bundles/ where is the carrier for your siM card (Figure 7-15). chapter 07 - conFiGURe YoUR iphone aFTeR UnLockinG
193
Figure 7-15. carriers
if you’re on a Mac, you can mount your iphone with aFp [Hack #9.06] and double-click the .plist ile to edit it (Figure 7-16).
Figure 7-16. editing the carrier plist
add the following text (if you’re editing the plist as a text ile) or add the following key as a boolean (Figure 7-17): AllowEDGEEditing
194
iphone hacks
HACK # 7.04 Figure 7-17. setting alloweDGeediting to true
now, the settings for that carrier will be editable in settings→General→network→cellular Data network (Figure 7-18).
Figure 7-18. editable carrier settings
iphone coniguration Utility if you have an apple-unlocked phone [Hack #7.01] on 2.x irmware, you can also use the iphone coniguration Utility (Figure 7-19) from www.apple.com/support/iphone/enterprise to create a proile—an XML ile with the needed settings—that you email to your iphone. You can ind versions here: http://support.apple.com/downloads/iphone_coniguration_Utility_1_1_for_Windows http://support.apple.com/downloads/iphone_coniguration_Utility_1_1_for_Mac_os_X once you get it running, you’ll need to connect your phone, create a new coniguration proile, and enter some information about it (Figure 7-19).
chapter 07 - conFiGURe YoUR iphone aFTeR UnLockinG
195
Figure 7-19. iphone coniguration Utility
The network settings are found under the advanced tab. as an example, we’ll enter T-Mobile’s apn wap.voicestream.com, and enter guest for both username and password (Figure 7-20).
Figure 7-20. The advanced tab
once you’ve set all this and exported it, you’ll have a .plist ile [Hack #11.02] that looks like Figure 7-21.
PayloadContent
PayloadContent
196
iphone hacks
HACK # 7.04
DefaultsData
apns
apn wap.voicestream.com password
Z3Vlc3Q=
username guest
DefaultsDomainNamecom.apple.managedCarrier
PayloadDescription Provides customization of carrier Access Point Name. PayloadDisplayName Advanced Settings PayloadIdentifier com.tmobile.iphone.apn PayloadOrganization
PayloadType com.apple.apn.managed PayloadUUID E5B5A7BA-2AB1-4946-899E-B39E318510B2 PayloadVersion 1
PayloadDescription This is APN settings for my T-Mobile connec-tion. PayloadDisplayName APN for T-Mobile PayloadIdentifier com.tmobile.iphone PayloadOrganization
PayloadType Configuration PayloadUUID A339F026-0C7A-4B2F-9A97-25E62FF76C53 PayloadVersion 1
chapter 07 - conFiGURe YoUR iphone aFTeR UnLockinG
197
Figure 7-21. exported network settings
email this ile to your iphone and open it on the iphone. click the attachment and you’ll see the screen shown in Figure 7-22.
Figure 7-22. installing a proile
download a carrier Bundle from cydia a simple way to get carrier bundles for some popular carriers is via cydia. search for the word “bundle,” or the name of your carrier, and you will get a list of carriers (Figure 7-23). You may need to add some sources [Hack #1.04] to ind additional bundles.
198
iphone hacks
HACK # 7.04 Figure 7-23. Downloading carrier bundles
One More thing: Youtube Fix on some phones where YouTube has not been “activated,” it will give an error message and not function after being unlocked on another carrier. if you can’t seem to get YouTube to connect, there is a straightforward ix for this:
1. 2.
3. 4. 5. 6. 7.
Download pwnage or Winpwn. if you used these to do a software unlock, you should already have them. if you are doing a new unlock, you can simply check the “activate YouTube” option when you create the image. With pwnage, you will ind the necessary iles by viewing package contents on PwnageTool.app, then going to PwnageTool.app/Contents/Resources/CustomPackages/ YoutubeActivation.bundle, and viewing package contents again. on Winpwn look in /Program iles/Winpwn/bundles/YouTubeActivation.tar. extract the three iles: data_ark.plist, device_ private_key.pem, and device_public_key.pem. put the iles in /private/var/root/Library/Lockdown [Hack #1.05], replacing the iles that are there. change the ownership and permission of the iles [Hack #9.04] at the command line: chmod to owner=root, group=wheel, permissions = 0644. create a folder called activation_records in /private/var/root/Library/Lockdown/ if one does not already exist. if there is a folder called pair_records in /private/var/root/Library/Lockdown/, delete its contents. Reboot the iphone, connect to a Wi-Fi network, and try out YouTube. it should now work.
With eDGe and YouTube properly working, your unlocked iphone should be as good as new.
chapter 07 - conFiGURe YoUR iphone aFTeR UnLockinG
199
08
CustomIzAtIon people like to personalize and customize their phones. the multibillion-dollar ringtone market is a testament to that fact. and although apple has provided a few ways to rearrange icons and change a background picture, there are dozens of other aspects of the phone that people want to change—but ordinarily can’t. The simplest example is ringtones. although you can make ringtones out of any song you’ve bought online, iTunes doesn’t provide a way to make them with the songs you already have. With the techniques described in this chapter, that’s easy to remedy. system-wide skinning, system sounds, boot screens, and even the words that your iphone recognizes are all susceptible to change once you know how. and if you want, you can even go beyond software and make skin-deep changes to the color scheme of your phone. With almost 10 million iphones sold at the time of this writing, you may no longer feel unique in having an iphone. in some circles, just about everyone has one. But before mourning your complete loss of social cachet, it’s worth noting that according to Gartner Research (www.gartner.com/it/ page.jsp?id=612207), about a billion mobile phones ship each year. if you’re still feeling like a lemming after that reassurance, remember that performing the hacks in this chapter will help you ensure that your iphone is unequivocally one of a kind.
HACK 8.01:
add custom ringtones to Your iphone
The iphone comes with several preinstalled ringtones when you irst purchase it, but if that isn’t enough, there are a couple ways in which you can add your own ringtones. apple has provided a method for creating ringtones from songs in iTunes to sync to your iphone. however, the downside of using iTunes is that you can create ringtones only from songs that you’ve purchased from the iTunes store. Furthermore, after you create the ringtone, you have to purchase it again from the iTunes store. You have to purchase the same song twice! if you would rather customize your ringtone for free, and be able to choose any sound you want, then you’re in luck. There are several different ways to go about doing this.
200
iphone hacks
HACK # 8.01
custom ringtones via itunes although iTunes may be infamous for trying to sell you ringtones for your iphone, it can also be used as a tool to create custom ringtones from songs in the music library:
1. 2. 3. 4. 5. 6. 7.
open the preferences menu on iTunes, click the advanced tab, and click the importing subtab. Make sure that the import Using box is set to aac encoder, as in Figure 8-1. close the preferences menu, right-click the song in your iTunes library that you’d like to make a ringtone from, and select Get info from the context menu, as shown in Figure 8-2. click on the options tab, check the start and stop Time boxes, and enter custom times, as in Figure 8-3. once you have custom start and stop times, click ok at the bottom right to close the song info window. Right-click the song again, and select convert selection to aac, as in Figure 8-4. iTunes will convert it, and place the custom song back in your music library, as in Figure 8-5. Right click the newly created clip and click “show in Windows explorer/Finder.” Drag this ile to the desktop and delete the entry from your iTunes Library. change the .m4a ile extension to .m4r. Double click on the renamed song, and iTunes will automatically place it in the Ringtones library, as in Figure 8-6. now the ringtone can be synced to your iphone (Figure 8-7).
Figure 8-1. setting the import preferences to use aac encoder
chapter 08 - aDD cUsToM RinGTones To YoUR iphone
201
Figure 8-2. selecting Get info
Figure 8-3. setting custom start and stop times
Figure 8-4. converting the song to aac format
202
iphone hacks
HACK # 8.01 Figure 8-5. after converting, the custom song will appear in the library
Figure 8-6. The renamed .m4r song shows up in the ringtones library
Figure 8-7. syncing the custom ringtone
chapter 08 - aDD cUsToM RinGTones To YoUR iphone
203
custom ringtones via Other applications GarageBand if you’re the creative type, you can make tracks in GarageBand and import them directly to iTunes as ringtones.
1. 2. 3. 4.
open GarageBand and either compose a song or open one you’ve already made. select share→send Ringtone to iTunes. a dialog box will tell you that you need to select a looping portion of your song, less than 40 seconds, and will show you the cycle button that you need to press (Figure 8-8). press the cycle Region button, which lets you highlight a section of the song to loop above your track. pick a section of up to 40 seconds to use as a looping ringtone (Figure 8-9). select share→send Ringtone to iTunes again. Your song will appear on the ringtone list and, if you’ve set iTunes up to sync ringtones, it will be sent to your iphone the next time you sync.
You don’t have to compose a song in GarageBand for this to work—you could drop any unprotected music ile or audio clip in GarageBand and turn it into a ringtone.
Figure 8-8. send Ringtone to iTunes
Figure 8-9. Making a ringtone with GarageBand
204
iphone hacks
HACK # 8.01
the app if you want a faster, easier method of transferring ringtones, try iToner, available from www.ambrosiasw.com/utilities/iToner (Figure 8-10). iToner is designed to put sound iles onto the iphone for use as ringtones. it has a very simple-to-use interface and reasonable price tag (a $15 one-time fee can end up costing you less than paying $1–$3 per song).
1. 2. 3.
Make sure that your iphone is plugged into your computer. Download, install, and run iToner. a window resembling an iphone will pop up. Drag and drop the iles you want to add onto the window to add them to the list. press the sync button on the bottom of the window. iToner will add the iles on the list to your phone’s ringtone menu.
and you’re done. iToner is easily worth it if you want to halve the number of steps and quarter the amount of time necessary to put ringtones on your phone from the alternative method presented earlier.
Figure 8-10. iToner
if iToner isn’t your thing, there’s iphoneRingToneMaker (www.efksoft.com/products/ iphoneringtonemaker/index.htm). This app also does Mp3s, WaVs, and oGGs. it also works on Windows.
the iphone app iDrum [Hack #10.01] allows you to create ringtones based on the iDrum songs you make. all you need is the iDrum Ringtone sync app from www.izotope.com/products/audio/idrum/iphone, and you’re golden. Run iDrum on your phone, and iDrum Ringtone sync on your computer. Follow the instructions on iDrum Ringtone sync, and before you know it, your handcrafted tunes will be ripped into iTunes and available to sync as ringtones onto your phone.
the directory if you’ve sshed into your iphone [Hack #9.04] or have an aFp connection on your phone [Hack #1.05], then this hack will be the simplest ever. if for some reason you can’t get the iTunes hack at the top of this chapter working, try this method. Follow the steps as listed previously, but once you have your ringtone converted to aac and chapter 08 - aDD cUsToM RinGTones To YoUR iphone
205
renamed as a .m4r, navigate to /var/stash/Ringtones/ on your iphone and drop the ile straight in there. it will appear on the list on your phone with all the standard ringtones, no restart or sync needed. Whether you’re using a Mac or a pc, there is always a custom ringtone solution that doesn’t rely on the expensive iTunes store method. What will you do with all the money you save?
HACK 8.02:
Skin Your iphone and change System Sounds
You can change the skin of your iphone in nearly limitless ways using WinterBoard. The iphone has a very carefully designed user interface, handcrafted to the last pixel by designers at apple. Though that’s admirable, it does nothing to reduce people’s urge to customize every aspect of their GUi with their own graphics. on a jailbroken phone, this is possible.
introduction to themes on its main screen, the iphone runs an application called springBoard (Figure 8-11), which is the global launcher for applications. it can be thought of as a stripped-down mobile version of similar tools such as the Finder in os X, the ile browsers on Gnome and kDe in Linux, or explorer in Windows.
Figure 8-11. The springBoard
The irst approach to skinning was simply to ind where all the images were stored and manually replace them. eventually the paths for all the images contained in a skin (the black “wallpaper,” the application icons, etc.) were discovered, and the people rejoiced and made full collections of skins to replace these images. This functionality was soon simpliied into an application named summerBoard. summerBoard—whose name is based on the seasonal deinition of spring (get it?)—allowed users to install skin packages from installer and toggle them at will. its power was
206
iphone hacks
HACK # 8.02 limited, however, and there were several icons that it was not programmed to change. some examples are the signal and Wi-Fi indicators, the battery icon, and sMs chat bubbles. other applications such as customize were available to change these. With the arrival of Version 2.0 irmware, the closed source and rarely updated summerBoard was usurped by WinterBoard (Figure 8-12), and there was again much rejoicing (and much skinning, of course).
Figure 8-12. Left: a reskinned springBoard with the killsigncarbonRed skin by killsign. Right: sMs screen reskinned with the abstract Racing stripe skin by poetic_folly and chromium keyboard skin by allen from planet-iphones.com.
Using WinterBoard WinterBoard can be found on cydia [Hack #1.04], and a wealth of skins can be found there too. We mean it: there are hundreds. as you scour the categories on cydia and accumulate skins, they will appear on the WinterBoard menu (Figure 8-13). see Figure 8-14 for an example of what skins can do for your device.
Figure 8-13. The WinterBoard menu with some skins downloaded
chapter 08 - skin YoUR iphone anD chanGe sYsTeM soUnDs
207
a checkmark indicates the package that’s been chosen to skin your phone (Figure 8-14). Figure 8-14. a richly skinned phone, with an animated background
WinterBoard skins “stack,” so that the highest skin in the stack will override any icon below it. Thus, if there are smaller additions you want to install over a larger skin, arrange them so that the smaller packages are above the larger packages (incidental icons higher on the list than full skins). This makes them replace the redundant images in the larger package (Figure 8-15).
Figure 8-15. The skinned signal and Wi-Fi bars: no longer the package defaults
WinterBoard can also support sound packages, allowing you to change various Ui sounds. it’s hard to take a screenshot of those, however, so you’ll have to take my word for it!
Understanding WinterBoard WinterBoard works by having named folders for each theme, containing picture and/or sound iles that are used to replace iles located elsewhere while the theme is enabled. Theme creation consists of making a folder in /Library/Themes/, named whatever you want the theme to be called, then placing iles in this folder with speciic names and subdirectories in order to replace other iles. The folder /Library/Themes/ is actually a link to /var/stash/Themes. WA77b5/. if for some reason you can’t work with /Library/Themes/, use /var/stash/Themes. WA77b5/ instead.
208
iphone hacks
HACK # 8.02
d
If you download an old theme that is for SummerBoard and not WinterBoard, it will still work, but the iles will be located in /var/mobile/Library/SummerBoard/Themes/.
ideally, you should give your folder a .theme ile extension (i.e., /mycooltheme.theme/). You can still work with it as a folder, but it’ll be more of a tidy package and easier to identify. now that you know where the themes go, what sorts of things can you put in them? •
•
Themes/themename/Wallpaper.png will change the wallpaper on your springBoard that sits behind the applications. Themes/themename/Icons/ is an easy way to change the images used to represent applications. place an appropriately sized .png named after the application (e.g., WinterBoard. png or App Store.png) in it. This is useful if your theme entirely remakes the color scheme or icon style of the interface, and the standard candy-colored rounded square icons of most applications don’t it any longer.
To change deeper, more interesting images, you’ll need to make folders for each application based on its bundle name. This is a string in the format com.authorname.appname. For example, com.apple. calculator is the bundle name of the default apple calculator application. Therefore, if you want to make a custom skin for the calculator, you’ll need to make a folder called Themes/themename/ com.apple.calculator and put iles in it corresponding to the iles in the application itself. how do you ind out the names of the iles you want to replace, as well as the package name? Go to /Applications/ (or /var/mobile/Applications/, for app store apps) on the iphone, and open the .app package like a folder. (on a Mac, control-click for View package contents.) This will have all the images in the proper subdirectories that you need to mirror in your theme (Figure 8-16). any image you put in your theme that matches an image in the application will take precedence and replace it while your theme is enabled. To ind out the bundle name, you’ll need to open the Info.plist ile and ind the entry for CFBundleIdentifier. it will be in the com.authorname.appname format. For more information on plists, see [Hack #11.02].
Figure 8-16. The calculator buttons in ile format within the app itself
one common application you’ll want to edit is the springBoard itself. This is what you want to work with if you want to change the icons on the top bar, the dock background, and so on.
chapter 08 - skin YoUR iphone anD chanGe sYsTeM soUnDs
209
changing Sound Files These iles are aiFF format audio iles with the extension .caf instead of .aif. To put sound iles in a theme, put them in Themes/themename/UISounds/ with a subdirectory structure matching that of /System/Library/Audio/UISounds/.
changing carrier Logos sometimes the cleverest statements are made with hacked carrier logos. instead of a boring text string, replace the carrier’s name with their iconic logo. or change it to something from left ield (Figure 8-17).
Figure 8-17. Live in denial or live in the past with a hacked carrier logo
To change your carrier logo, the directories you’ll need to know are /System/Library/Carrier Bundles/ and Themes/themename/Bundles/. The irst one is the directory where all the bundles containing pictures and other data for the different available carriers are located. The second directory is where you must put the directory corresponding to the carrier you’d like to change. For example, /Bundles/com.apple.ATT_US/ is where aT&T modiications go. Just like for applications, you’ll need to ind the Info.plist in the bundle to see what to name your folder. The folder structure for the La cellular logo theme is shown in Figure 8-18.
Figure 8-18. /Bundles/com.apple.ATT_US/ is where aT&T modiications go
FSO_CARRIER_xxxxx.png is the “light” version of the image, for use when the top bar is dark, that is, on the springBoard. Default_CARRIER_xxxxx.png is the “dark” version, with black text for when the top bar is silver, that is, in an application. The other iles are actually somewhat important to the carrier’s operation, so you probably don’t want to try to include those in your theme.
and More if you ind a theme that does something different than what is already described in this hack, you can always do an autopsy on the theme directory and see what it did. it may involve custom iles or special .plist editing [Hack #11.02]. For more insight and advanced feature details, check out www.saurik.com/id/9 for a full-featured rundown on more to do with WinterBoard.
210
iphone hacks
HACK # 8.03
HACK 8.03:
change Your Boot Screen
Don’t forget the boot screen and restore logos when you’re customizing your device. You can use WinterBoard [Hack #8.02] to change practically every image and sound on your phone. everything on your phone reminds everyone how much you like the Raiders/World of Warcraft/the color blue/Star Wars/trucks, except for when you restart your phone (Figure 8-19). Unfortunately, the graphics for the boot screen are not stored on the ilesystem and aren’t susceptible to mere ile replacement. This hack will show you how to inish customizing your iphone’s graphics.
Figure 8-19. The ubiquitous boot screen
There are much more interesting graphics that you could display when booting your phone, and several ways to achieve this.
Via pwnage The simplest way is to do it is when you irst hack your phone. When using the pwnageTool [Hack #1.03], you’ll want to be in expert mode. after choosing a package to modify, click the custom Logos button (Figure 8-20).
chapter 08 - chanGe YoUR BooT scReen
211
Figure 8-20. The pwnage custom Logos screen
The image on the left represents what your “silver apple” will become, and the one on the right represents what the “connect to iTunes” screen will be, that is, the one that appears on a phone in Recovery mode. You can ind, create, or edit images to it the dimensions speciied in the app, then select them for your custom restore package. Whenever you restore your phone with that package, the images that you selected will be used for your boot and/or restore logos.
Via the LogoMe app if you’ve already hacked your phone and don’t want to re-restore and lose your changes, there is another procedure that you can use. The application LogoMe (Figure 8-21) allows you to change your boot screen without restoring your phone.
Figure 8-21. LogoMe
When you start LogoMe, it will download a portion of unmodiied irmware in order to edit and relash it. Find a .png somewhere online that you want to use as your boot screen, type the URL 212
iphone hacks
HACK # 8.04 into the next screen in LogoMe, and download it. on the install Logo tab, you can preview the image (Figure 8-22) to make sure that it’s downloaded properly, and inally install it. Your boot screen is changed quickly and simply.
Figure 8-22. image from eff.org
HACK 8.04:
enhance autocorrection with address Book entries
Teach your iphone your favorite words. The iphone and ipod touch’s autocorrection can be very helpful when typing messages. it reduces the amount of legitimate typos and grammatical errors (Figure 8-23).
Figure 8-23. Thank you, iphone/ipod!
problems ensue when you try to use words that are outside the built-in dictionary (Figure 8-24).
Figure 8-24. no thank you, iphone/ipod!
supposedly the iphone will learn after three instances of your correcting its correction (by tapping the x on the autocorrect popup), but this does not always work, for some mysterious reason. The most noticeable issue is with swear words. The iphone assumes that you want to say, “i’m not taking your shot anymore, it ducking posses me off,” but what does that even mean? are we playing basketball? Fortunately, there’s a more reliable, visible way to make your device remember useful words. if you put these words in an address book entry, the iphone will give them linguistic priority (Figure 8-25). chapter 08 - enhance aUTocoRRecTion WiTh aDDRess Book enTRies
213
Figure 8-25. Your words may vary
put the words you want to use into a custom address book entry in the note section. You could also put these in existing address book entries, if you want to put obscene secret messages that (hopefully) only you know about on your family’s and/or co-workers’ entries.
HACK 8.05:
Skin Your iphone externally
colorWare can color-code your iphone to it your color cravings. Setting the Scene You’ve made your own custom skin and boot screen, but it bothers you that your iphone isn’t personalized at all when it’s lying there with the screen off (and you’ve tried custom cases; they aren’t your thing). if only that dull metal/shiny white/shiny black back of your phone could be made more interesting and colorful. colorWare (www.colorwarepc.com; see Figure 8-26) is a company that has been doing colorization of various devices since 2000.
Figure 8-26. colorWare
214
iphone hacks
HACK # 8.06 They can help you paint the exterior of your iphone to it your wishes. Maybe you miss your old U2 edition ipod, and wish you could have a red-tinted U.s. edition U2 iphone (Figure 8-27)?
Figure 8-27. U2 2.0
or a slick blue ipod touch, with a dock and headphones to go with it (Figure 8-28)?
Figure 8-28. color me blue
it costs a pretty penny, but it could very well be worth it to add that extra personalization you crave.
HACK 8.06:
hide Unwanted applications
Bossprefs and an app launcher will keep your apps out of sight, but there if you need them. are you one of the many iphone or ipod touch users for whom the stocks app is pointless? Do you ind the notes app so useless as to be offensive to your sight? are there some apps that you simply wouldn’t like others to see or mess with? You’ve tried to throw your unsightly apps on to another springBoard page, but they’re still there, wasting real estate. and you don’t want to delete them, because you know at some point they might be useful—and if they’re gone, you’re left kicking yourself.
chapter 08 - hiDe UnWanTeD appLicaTions
215
Your solution is simple: Bossprefs, available from cydia. it has an app that used to be known as poof! integrated into it. What does poof! do? it gives you a list of toggle switches (Figure 8-29) for all the apps currently on your phone (from the app store or elsewhere). if you don’t want to see an app, just set the slider next to it to off, and it will vanish from the springBoard. if you change your mind, you can lip it to on. There when you want it; not there when you don’t—simple as that.
Figure 8-29. hide iTunes to prevent impulse buying; hide Vonagent to prevent voicemail snooping, and so on
now, if you just don’t want it on the springBoard, but want to be able to access it more quickly than it would take to constantly rinse and repeat the previous instructions, all you need is an app launcher...app. several come up when you type “launcher” into the search bar in cydia, and they should all work equally well. here we use appFlow by erica sadun as an example, because it is pretty. These launchers will indiscriminately list all the apps on your phone, hidden or not (Figure 8-30). You can tap any of them and get going quickly and easily. appFlow even features a landscape cover Flow mode (Figure 8-31).
Figure 8-30. keep apps out of sight until you need them
216
iphone hacks
HACK # 8.06 Figure 8-31. stocks, how are you doing? i haven’t seen you in a while.
chapter 08 - hiDe UnWanTeD appLicaTions
217
09
networK HACKs the iphone and ipod touch both shine at networking. Because there’s Unix inside them, there’s an almost limitless supply of open source networking software available to recompile for use on the iphone. Shortly after the iphone was jailbroken and development tools were developed for it, all the usual suspects—web servers, ile servers, scripting languages—were ported over to the iphone. after apple opened up the iphone to developers, some tools appeared in the app Store as well. To an end user, this may not seem like much. But to power users and developers, the iphone is a tool of unparalleled lexibility. You can ssh into your servers. You can use it as a remote control for your media center—or your desktop pc. You can surf the Web with remarkable idelity, download iles, upload iles, and generally do anything that you could want to with a desktop computer running Mac os X, Windows, or Linux. This chapter presents a sampling of some useful networking features of the iphone and ipod touch. Many of the staple applications for server administration are available in the app store, and even more are available for a jailbroken phone. Because of ongoing development, new network apps appear constantly, so keep searching for your favorite protocol or utility in cydia and the app store.
HACK 9.01:
Use Your iphone or ipod touch as a trackpad
Upgrade your several-hundred-dollar device to a several-hundreddollar wireless trackpad. Many people connect computers to their lat-screen TVs in order to watch movies. But it’s not always that easy to remotely control media player software that was designed to be used with a mouse. For instance, if you have a Mac Mini hooked up to your television, the apple Remote won’t control VLc, QuickTime, or the DivX player. a Bluetooth mouse won’t work well on the arm of your couch, and a wireless keyboard with integrated trackpad is a pretty bulky remote. What device do you own that can talk to other computers, and has a touch screen? hmm... There are several apps at several different price points that allow your iphone and ipod touch to control your pc or Mac. The price point ranges from free to $9.99. Let’s take a look at the free Remotepad to get a feel for how these applications work.
218
iphone hacks
HACK # 9.01
Remotepad (http://tenjin.ics.es.osaka-u.ac.jp/Remotepad) is your free solution. it comes in two parts: a desktop server and an app store app. With these two parts, it takes mere moments to set up. Make sure that your two devices are in the same wireless network. start the server on the desktop, and the app on the iphone/ipod. Your computer’s name should show up on your device (Figure 9-1). Tap it, and you should be good to go. Your new screen will be black with buttons, and you can start trackpadding around your computer (Figure 9-2). You’ll have to try it for yourself to see it in action, as a screenshot could never do it justice.
Figure 9-1. The server selection screen
Figure 9-2. Making a real connection
The other apps will have different layouts and features: look for them in the app store or cydia and give them a try if Remotepad doesn’t cut it.
chapter 09 - Use YoUR iphone oR ipoD ToUch as a TRackpaD
219
HACK 9.02:
control Your desktop or Laptop with Your iphone or ipod touch control your whole pc from your iphone or ipod touch. are all the remotes [Hack #4.03], [Hack #10.06], [Hack #12.23] in this book not enough? is something not covered? With this hack you can type responses to instant messages, open new applications, check ile transfer status, and start and stop your media player—the possibilities are endless! First, install a server on your desktop pc, if you haven’t already done so. RealVnc is a good, free server for Windows. For Mac you can either use Vine (www.redstonesoftware.com), or you can go into your sharing settings in system preferences and enable Vnc, as shown in Figure 9-3.
Figure 9-3. The easy way to Vnc into your Mac
Before irmware 2.0 [Hack #1.02], there were a number of jailbroken Vnc clients for the iphone. now that we have Mocha Vnc (Figure 9-4) in the app store, its predecessors have vanished.
Figure 9-4. Mocha Vnc controlling a Mac
To use Vnc, install one of the servers listed earlier onto your machine (or conigure Remote Desktop, also as described previously). Then conigure and launch the server, and enter your desktop’s internal ip into Mocha Vnc. You can zoom using two-inger multitouch, and control your computer just as if you were there! For Windows Remote Desktop users there is an app called Remote Desktop (Figure 9-5). it works essentially like Mocha Vnc, but with special support for Windows Remote Desktop.
220
iphone hacks
HACK # 9.03 Figure 9-5. Remote Desktop
another solution, if you run software from LogMein, is their release of LogMein ignition (https:// secure.logmein.com/products/ignition/iphone), a version of their client software for the iphone (Figure 9-6).
Figure 9-6. LogMein ignition
HACK 9.03:
control Your iphone or ipod touch with Your desktop or Laptop You can control a jailbroken phone right from your desktop. Reafirming the fact that the strong can control the weak, here comes the jailbroken app Veency. Veency is a Vnc server for your iphone/ipod touch, as opposed to Mocha Vnc, which is a Vnc client. What does that mean for you? it means you can do something akin to Figure 9-7.
Figure 9-7. That is not an iTunes control widget—that is an iphone!
chapter 09 - conTRoL YoUR iphone oR ipoD ToUch WiTh YoUR DeskTop oR LapTop
221
Just download a client onto your computer, like RealVnc’s VncViewer for Windows or chicken of the Vnc for Mac. put your computer and device on the same network, and put your iphone/ ipod’s local ip into your desktop’s Vnc client. as there is no password option yet, a conirmation screen will show up on your device (Figure 9-8). an iphone-sized screen will pop up and you will be in control.
Figure 9-8. Big Brother computer knows what’s best
Left-click taps, right-click (control-click on Macs) presses the home button, and middle-click locks the phone. if you want to take this and [Hack #9.02] to create an ininite loop of remote control, that’s your decision—please just don’t make the universe swallow itself.
QuICK HACK SaVe tiMe When tYpinG in the terMinaL Tab autocomplete is performed by entering “Control+I” while in the mobile terminal. Because there is no Control key, the large dot symbol is used instead. To enter a dot, select “.?123”, then press “#+=”. The dot should be on the right side of the keyboard, above the backspace.
222
iphone hacks
HACK 9.04:
connect to Your iphone with a Secure Shell (SSh) terminal program You can use a terminal program to connect to the iphone, copy iles to and from it, manipulate the ilesystem, and run programs. contrary to the corny virtual-reality-in-cyberspace-VR-glove user interfaces depicted in contemporary hollywood movies, most “hacking” is actually done with text commands on a simple monochrome screen. as it turns out, a lot of system administration is done this way, too. secure shell, or ssh, is a network protocol that creates a secure connection between two computers and allows them to exchange data. it has replaced the venerable but insecure Telnet, and is the universal way to “log on” to a Unix or Linux machine remotely. although this book tries to provide links to GUi-based “hacking” tools whenever available, the reality is that almost every hack in this book was initially performed by sshing (that’s the verb form) into the iphone and executing the necessary commands. in fact, if you aren’t a programmer, but you like to try out the most bleeding-edge hacks, you’ll need to know how to use a terminal.
HACK # 9.04
installing an SSh Server There have been various versions of ssh installed by the various jailbreaking tools on the iphone, but as of this writing the stable ssh is provided by cydia. When you run cydia, you can ind ssh on the main screen, or you can search for openssh and install it (Figure 9-9).
Figure 9-9. installing ssh
The ssh server works only over a Wi-Fi network. it probably would work over 3G, but usually the network operator blocks incoming services and does not provide mobile phones with a public ip address. Usually the iphone connects to a Wi-Fi network and gets a dynamic (temporary) ip address. To ssh into the phone, you’ll need to get a terminal program, and you’ll need to know your iphone’s ip address. You can ind the ip address by going to settings→General→network→Wi-Fi and then clicking the arrow next to the network you’re connected to. You’ll see Dhcp selected in blue, and your ip address (Figure 9-10).
Figure 9-10. Finding out your dynamic ip address
if you ind yourself connecting to your iphone a lot, looking up the ip address all the time will become annoying, so you may want to set a static (unchanging) ip address for connection to your Wi-Fi network. To do this, note down the information for your Dhcp address, then go to the static tab and enter it all in, but set the last digit of the ip address to something that you can remember (Figure 9-11). Your iphone will remember this ip address and will use it whenever it connects to this Wi-Fi network again (i.e., at your home or work).
chapter 09 - connecT To YoUR iphone WiTh a secURe sheLL (ssh) TeRMinaL pRoGRaM
223
Figure 9-11. setting a static ip
Whenever you use ssh to connect to your iphone, you’ll be required to enter a username and irmware-speciic password. although late-model irmware added a second user, mobile, the superuser, root, has access to the entire ilesystem and can change things more easily: • • •
User name: root password for irmware 1.0.2 and earlier: dottie password for irmware 1.1.1 to 2.2: alpine
once you have ssh installed and know your ip address, the next step is to get connected.
SSh client Software for Windows if you’re a Windows user, there are two main programs that you should have on your computer to connect via ssh with your iphone: puTTY and Winscp. puTTY is a terminal client for pcs that allows you to connect to ssh servers and enter commands. it can be downloaded from www.chiark.greenend.org.uk/~sgtatham/putty. When you start the program, you’ll see a coniguration window (Figure 9-12). enter your iphone’s ip address in the host name box, choose ssh for the connection type, enter 22 in the port box, and then click open. When you connect to your iphone for the irst time, you’ll be asked to “permanently add the Rsa key ingerprint.” Rsa is a method of encryption, and adding the ingerprint indicates that you trust the remote machine (your iphone), so just select Yes (Figure 9-13). if you ever connect to a different machine with that same ip address with ssh, the program will let you know that the key has changed, as a safety precaution, so that you can verify which machine you’re connecting to. You may have to wait a while the irst time you connect, while the iphone generates an encryption key. a new black window will open, and prompt you to log in and enter a password. Type root as your login name, and use the appropriate password for your iphone’s irmware (see the previous section). Upon entering the correct password, your session will start, and you can start typing commands (Figure 9-14).
224
iphone hacks
HACK # 9.04 Figure 9-12. puTTY coniguration
Figure 9-13. accepting the host key
Figure 9-14. after login, you can enter terminal commands into puTTY’s window
now you’re connected to your iphone and ready to type commands.
chapter 09 - connecT To YoUR iphone WiTh a secURe sheLL (ssh) TeRMinaL pRoGRaM
225
Winscp is ssh client that features a graphical user interface to the iles on an ssh server. it can be downloaded from http://winscp.net. Winscp functions similarly to ile browsing programs such as iphoneBrowser [Hack #1.05]. in addition to its ile browsing capabilities, Winscp also has puTTY built in. When you start Winscp, you’ll see the login window, as in Figure 9-15. click new in the top-right corner, which produces a new window (Figure 9-16). enter your iphone’s ip address in the host name box, and enter 22 in the port number box. enter the appropriate username/password combination, according to your irmware version (see the earlier section in this hack), and then click Login and type “yes” when prompted.
Figure 9-15. Winscp login window
Figure 9-16. connecting via Winscp
a window will open displaying the /private/var/root/ directory of your iphone on the right, as in Figure 9-17. You can navigate through your ile directory, and upload and download any iles to and from your iphone. if you need to run terminal commands, just click the commands tab at the top, as shown in Figure 9-18, and you can open puTTY conveniently.
226
iphone hacks
HACK # 9.04 Figure 9-17. The /private/var/root/ directory of the iphone is shown on the right side of the Winscp window
Figure 9-18. clicking on the commands tab
SSh client Software for Mac Users Mac computers feature a built-in ssh client that can be accessed by opening Terminal, which is found in applications→Utilities→Terminal. in the Terminal window type ssh root@ followed immediately by your iphone’s ip address, as shown in Figure 9-19. When you connect via ssh to your iphone for the irst time, you’ll be asked to permanently add the Rsa key ingerprint. Rsa is a method of encryption, and adding the ingerprint indicates that you trust the remote machine (your iphone), so just select Yes. if you ever connect to a different machine with that same ip address with ssh, the program will let you know that the key has changed, as a safety precaution, so that you can verify which machine you’re connecting to. once you log in, you can now enter commands.
chapter 09 - connecT To YoUR iphone WiTh a secURe sheLL (ssh) TeRMinaL pRoGRaM
227
Figure 9-19. connecting to the iphone’s ssh server in Terminal
if you need a good ssh ile browsing program, then cyberduck is for you. it can be downloaded from http://cyberduck.ch. When you start the program, click open connection at the top left of the window. a new window like the one in Figure 9-20 will open. select sFTp for the protocol, enter your iphone’s ip address in the server box, and enter the standard ssh login and password for your irmware version (see the earlier section in this hack). Finally, click connect—cyberduck will display your iphone’s ile directory so you can make any necessary changes, as shown in Figure 9-21.
Figure 9-20. coniguring the connection settings on cyberduck
Figure 9-21. Browsing the iphone’s ile directory with cyberduck
228
iphone hacks
HACK # 9.04
What do i do now? if you’re new to Terminal, there are plenty of resources to help you learn the Unix shell on Mac os X. if you’ve logged in to your iphone in order to run through the steps of some online walkthrough, it’s worth learning a tiny bit about the shell—the text environment you’re logged into—so you can feel more comfortable with what you’re doing.
d
For a gentle introduction to the Unix shell used by Mac OS X, see Learning Unix for Mac OS X Tiger, by Dave Taylor (O’Reilly).
a good online resource for learning the command line is http://linuxcommand.org/index.php. Linux, you say? Well, the command-line tools are pretty much equivalent across Unix and Unix-like machines.
hacking the hack: SSh with no passwords
fInd mIssIng dIreCtorIes And fILes a FeW cOMMandS WiLL Get YOU GOinG: changes directory, so you can type, for instance, cd /var/
When you’re doing development work or copying iles to and from your iphone from a command line, it can get somewhat tiring typing in your passwords over and over. especially when you’re developing on your computer using the toolchain [Hack #11.06] and testing on the phone, you probably want your make script to automatically copy the application you build over to the phone without demanding a password.
• cd
another reason to eliminate the shell is scripting on the phone. if you want to write scripts to back up iles to the internet, i.e., to your web server, you’re going to need a secure channel between your iphone and the server that doesn’t require passwords.
•
ssh is secure because it uses a pair of encryption keys, a public and a private one. each key can decode data that is “locked” by the other key. Thus, to “pair” two computers, you need to create a pair of keys, put the public key on the destination computer, and keep the private key only on the source computer. To make this clearer: •
•
if you want to log into your iphone from, say, your desktop, you create a private/public key pair on your desktop and copy the public key to your iphone if you want to log into a server from your iphone, you create a private/public key pair on the iphone and copy the public key to the server
The following walkthroughs will show you how to do this: SSh with no passwords in this example, the author’s computer is dps17 (a 17" Mac Book pro) and the author’s iphone is dps-3G. since my iphone has been set to a static ip address i’m going to create an alias to it in /etc/hosts (Figure 9-22), which will allow me to access it by name. You can type in the bolded commands to duplicate the steps.
mobile/Media/
lists what iles are there. pwd tells you what directory you are in. several hacks in this book reference speciic directories or iles that need to be modiied. however, depending on your phone’s irmware version, you may have a different directory structure. in this case, ind the new directory by entering the following command in the mobile terminal, or an ssh session:
• ls
•
find / -name ""
Make an alias and edit the ile as shown in Figure 9-22: dps17-2:~ $ sudo pico /etc/hosts
chapter 09 - connecT To YoUR iphone WiTh a secURe sheLL (ssh) TeRMinaL pRoGRaM
229
Figure 9-22. editing /etc/hosts
ping the iphone: dps17-2:~ $ ping iphone PING iphone (192.168.22.99): 56 data bytes 64 bytes from 192.168.22.99: icmp_seq=0 ttl=64 time=328.536 ms 64 bytes from 192.168.22.99: icmp_seq=1 ttl=64 time=85.387 ms ^C --- iphone ping statistics --2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 85.387/206.962/328.536/121.575 ms
To generate the private/public key pair on the computer: dps17-2:~ $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/dstolarz/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/dstolarz/.ssh/id_rsa. Your public key has been saved in /Users/dstolarz/.ssh/id_rsa.pub. The key fingerprint is: f1:d7:1a:aa:d9:f3:7c:1b:66:17:05:05:a7:ca:ce:90 [email protected] The key's randomart image is: +--[ RSA 2048]----+ |
ooo|
| | | | | |
+ | .
. .| o o o
.|
S E = .. | * o
.|
. + + .|
|
+.. o.o |
|
o .oo... |
+-----------------+ dps17-2:~ dstolarz$ ssh root@iphone mkdir -p .ssh root@iphone's password: alpine
230
iphone hacks
HACK # 9.04 dps17-2:~ $ cat .ssh/id_rsa.pub | ssh root@iphone 'cat >> .ssh/authorized_keys' root@iphone's password: alpine dps17-2:~ $ ssh root@iphone dps-3G:~ root#
iphone→server with no passwords in this example, the author’s computer is dps17 (a 17" MacBook pro), and his iphone is dps-3G. The following assumes that a user named iphonehacks exists on the server (perceptdev.com): Let’s test this new user. here are the commands we typed from a Terminal on the iphone, just to make sure we can actually connect from the iphone: dps-3G:~ # ssh [email protected] The authenticity of host 'perceptdev.com (208.97.133.135)' can't be established. RSA key fingerprint is da:86:84:d0:c0:66:20:17:58:da:b8:86:a1:3b:1f:72. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'perceptdev.com,208.97.133.135' (RSA) to the list of known hosts. Password: Linux perceptdev 2.6.24.2-grsec-p4-peon-1.1.2-grsec #1 SMP Wed Feb 20 15:30:29 PST 2008 i686 GNU/Linux [perceptdev]$ exit logout Connection to perceptdev.com closed.
our goal is to be able to upload iles from the iphone to the perceptdev.com shell account automatically from a script. First we log into the iphone from the computer (you could do this from a Terminal on the iphone, but it’s easier from a computer), then we create and copy our public key to perceptdev.com, and inally we log in without requiring a password. dps17:~ $ ssh root@iphone dps-3G:~ # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/root/.ssh/id_rsa. Your public key has been saved in /var/root/.ssh/id_rsa.pub. The key fingerprint is: e6:68:35:95:ac:7e:d0:e4:27:5a:08:e2:01:4b:1b:59 root@dps-3G The key's randomart image is: +--[ RSA 2048]----+ |
+oE
|
| ..= | | |
|
=
|
o o . . o . B .
S = .
|
* = o
| |
. .
o + . .
.
| | | | |
+-----------------+ chapter 09 - connecT To YoUR iphone WiTh a secURe sheLL (ssh) TeRMinaL pRoGRaM
231
dps-3G:~ # ssh [email protected] mkdir -p .ssh Password: dps-3G:~ # cat .ssh/id_rsa.pub | ssh [email protected] \ 'cat >> .ssh/authorized_keys' Password: tsXE9Z3J dps-3G:~ # ssh [email protected] Last login: Sun Feb 15 13:34:27 2009 from 24.24.166.171 Linux perceptdev 2.6.24.2-grsec-p4-peon-1.1.2-grsec #1 SMP Wed Feb 20 15:30:29 PST 2008 i686 GNU/Linux __ [perceptdev]$
see? no password required! test as a test, we’ll execute a one-line upload to see if we can back up a ile easily. We’ll look in /private/ var/mobile/Library/ for something we don’t want to lose: dps-3G:~ # ls /private/var/mobile/Library/ AddressBook/
Carrier\ Bundles/
Maps/
Application\ Support/
ConfigurationProfiles/
MobilePhone/
Stocks/
BossPrefs/
Cookies/
Notes/
Voicemail/
Caches/
Cycorder/
Operator\ Bundle.bundle@
Weather/
Calendar/
Keyboard/
Preferences/
WebClips/
CallHistory/
Logs/
SMS/
WebKit/
Carrier\ Bundle.bundle@
Mail/
Safari/
YouTube/
SafeHarbor/
Let’s back up the address Book. First we’ll ind out what it’s named: dps-3G:~ # ls -l /private/var/mobile/Library/AddressBook/ total 1512 -rw-r--r-- 1 mobile mobile 1119232 Feb 14 18:09 AddressBook.sqlitedb -rw-r----- 1 mobile mobile 423936 Feb 15 12:16 AddressBookImages.sqlitedb
Then we’ll upload it to perceptdev.com using scp: drwx------
5 iphonehacks pg233143 4096 2009-02-10 15:43 Maildir
dps-3G:~ # scp /private/var/mobile/Library/AddressBook/ \ [email protected]:~/ AddressBook.sqlitedb
100% 1093KB 218.6KB/s
and just to make sure it’s there:
00:05
dps-3G:~ # ssh [email protected] ls -l total 1108
232
iphone hacks
-rw-r--r--
1 iphonehacks pg233143 1119232 2009-02-15 15:34 AddressBook.sqlitedb
dr-xr-x---
2 iphonehacks dhapache
4096 2009-02-10 15:24 logs
drwx------
5 iphonehacks pg233143
4096 2009-02-10 15:43 Maildir
HACK # 9.05 now that you’ve got scripting down, you can build your script into an application [Hack #11.02] or a background task [Hack #11.03]. root and mobile it’s important to note that although you may log in to your iphone as root for convenience, iphone applications run as the user mobile. Thus, if you’re going to be making script-based applications [Hack #11.01], you’ll need to repeat this procedure logged in as mobile. To do this, follow the same instructions above, but on the step where you log into the iphone, log in as the user mobile.
— Damien stolarz & Mathias kettner
HACK 9.05:
administer remote Servers with a terminal program Your iphone can help you hack it with a terminal program on board. if you have to manage Unix/Linux servers with your iphone, a professional terminal client for the iphone is an indispensable tool. The sophisticated Mac os X operating system that powers the iphone is based on the Unix operating system. Because of this, some of the hacking that you do to your iphone may require the use of Unix terminal commands. in the early jailbreak days, a simple native terminal program appeared. it was very helpful for hacking and tweaking the iphone without having to use a computer. But it also quickly showed how dificult command-line manipulation can be on a software keyboard. since the launch of the app store, almost a dozen terminal programs have appeared. Most of these are still similar to conventional terminal programs, but some developers have added features that use the multitouch features of the screen.
touchterm TouchTerm (Figure 9-23) was the irst ssh/terminal client to be released for the iphone. it has a basic and a pro version. Both versions provide a translucent keyboard, so you can use the full screen for viewing while typing. You can pinch and zoom in for a larger virtual screen size, and switch to landscape mode (Figure 9-24). The pro version adds a deep layer of customizability, providing a large number of touchscreen gestures that can be used to paste in commonly used commands (Figure 9-25).
chapter 09 - aDMinisTeR ReMoTe seRVeRs WiTh a TeRMinaL pRoGRaM
233
Figure 9-23. TouchTerm with dimmed-out keyboard
Figure 9-24. TouchTerm (landscape)
Figure 9-25. Double-stroke gesture
You can tap twice to hide and show the keyboard, tap the left side of the screen to bring up various key palettes (Figure 9-26), and tap the right side of the screen to bring up autocompletion features,
234
iphone hacks
HACK # 9.05 so that you rarely have to type a complete word. You can customize the gesture actions to perform your most common server tasks with a minimum of keystrokes.
Figure 9-26. TouchTerm pro keyboard
d
To connect to the iPhone itself, you should connect to “localhost” or 127.0.0.1 and login [Hack #9.04].
iSSh issh is another popular terminal client application. it supports a wider variety of terminal emulations than TouchTerm, including T100, VT102, VT220, ansi, xterm, and xterm-color, so if you need compatibility with full-screen editors and programs beyond the basic text editor, this client may be a better option. issh makes clever use of left/right/up/down strokes in different areas of the screen to emulate the arrows, one of the most commonly needed keys for full-screen applications. Figure 9-27 shows three areas—swiping in area emulates arrow keys in the direction you swipe; swiping in area scrolls into the back buffer, and swiping in area switches between active open terminals, as shown in Figure 9-28.
Figure 9-27. swipe areas in issh
chapter 09 - aDMinisTeR ReMoTe seRVeRs WiTh a TeRMinaL pRoGRaM
235
Figure 9-28. switching between open sessions in issh
Other Options if you have to connect to venerable mainframe or minicomputers with glowing green terminal screens, there are several other speciic programs available. Tn3270 (Figure 9-29) can emulate a mid-1970s, form-input-based iBM3278 terminal. if you’re a manager at your local DMV, then Tn5250 (Figure 9-30) can help you connect to your as/400 server. put all your staff in jeans and matching T-shirts, let them mingle with the customers and handle transactions on their iphone, and run your DMV like an apple store!
Figure 9-29. Using Tn3270
Figure 9-30. Using Tn5250
236
iphone hacks
HACK # 9.06
HACK 9.06:
Mount the iphone Filesystem on Your Mac with appletalk or SSh View your entire iphone ilesystem in Finder! discussed several ways to get iles to and from your iphone. But having to run a program to copy the iles can slow you down when you’re trying to develop software or tools on the iphone. This hack discusses a more convenient way to edit iles on your iphone—by mounting the ilesystem.
[Hack #1.05]
aFp apple Filing protocol, or aFp, is a network-based ilesystem that can be used by Mac computers. setting up aFp on your iphone will allow its entire ilesystem to be viewed and modiied over Wi-Fi from the convenience of Finder in Mac os X. To get aFp working, your device must be on the same network as your Mac. For the actual aFp application, we will use netatalk from cydia. it’s not an app in the traditional sense, as it won’t appear on the springBoard, but it works in the background to broadcast an aFp server whose network name is based on your phone’s name. if your phone and Mac are both on, you should see your phone listed under shared in any Finder window (Figure 9-31).
Figure 9-31. The easy way to connect
if you don’t see that listing, you’ll have to go to choose Go→connect to server (command-k) and connect to afp://IP_ADDRESS (replace IP_ADDRESS with your iphone’s ip address). once you’ve connected, it will ask for a username and password. The default login for an iphone or ipod touch is username root, password alpine (try password dottie if your iphone is running very old irmware). You should probably change this at some point with the passwd command over ssh if you plan on having your device broadcast an aFp server wherever you go. after entering the correct name and password, you’ll have a choice of the root folder or the home folder (Figure 9-32). The home folder is simply /var/root/, which is far less exciting than your real root directory. (Your real root directory, /, is a dangerous place to be. Don’t go poking around deleting iles you don’t know well, or you may render your phone unusable.) You can now do any modifying or browsing that you need. once you’re done using aFp, just hit the eject button next to the server name in the left side of the Finder window.
chapter 09 - MoUnT The iphone FiLesYsTeM on YoUR Mac WiTh appLeTaLk oR ssh
237
Figure 9-32. Browsing an iphone over aFp
MacFUSe MacFUse is a program that allows the Mac to mount various ilesystems—both on disk and over networks or the internet—that Mac os X doesn’t support natively. one of the “ilesystems” it is able to mount is ssh—which is convenient because all jailbroken phones support ssh [Hack #9.04]. The installer for MacFUse can be found at http://code.google.com/p/macfuse (Figure 9-33).
Figure 9-33. MacFUse’s gallery of supported ilesystems
after installing MacFUse, you can use the command line to mount your iphone, but an even easier GUi way to do it is to install Macfusion (www.macfusionapp.org). once you’ve installed both MacFUse and Macfusion, you’ll be able to add your iphone and mount it as either the root or mobile user (Figure 9-34).
Figure 9-34. Macfusion launch screen
To ind out your iphone’s ip address, you can go to settings→Wi-Fi, and select the network name of your currently connected network.
238
iphone hacks
HACK # 9.06
d
If you usually mount your iPhone on a home/ofice network, you can set a static (ixed) IP address in the Wi-Fi networks settings. In this case, we’ve given the iPhone the address 192.168.22.99 on our network so that it will always have the same address when we try to mount it.
With most iphones, as of this writing, the default username/password combinations for the root and mobile users are root/alpine and mobile/alpine [Hack #9.04]. enter these settings, along with the part of the iphone ilesystem you’d like to mount in path, by clicking the + sign on the bottom and then selecting sshFs. You can then edit the settings (Figure 9-35).
Figure 9-35. Macfusion edit screen
once mounted, the Macfusion screen will show green mounted disk icons, and you’ll see the ilesystems in Finder (Figure 9-36).
Figure 9-36. Mounted devices
now that your iphone root ilesystem and mobile folder are mounted as disks, you can customize your phone more easily. You can directly edit plist iles (Figure 9-37) using the plist editor, text iles using the text editor of your choice [Hack #11.02], and even directly view and edit iphone database iles [Hack #11.04].
chapter 09 - MoUnT The iphone FiLesYsTeM on YoUR Mac WiTh appLeTaLk oR ssh
239
Figure 9-37. opening a .plist ile
Linux, Windows, and other OSs The MacFUse system is actually inspired by the original FUse system (FUse stands for Filesystem in User space) from Linux, so you can use FUse on Linux instead. as of this writing, the authors are unaware of a stable working method of mounting ssh as a ilesystem on Windows.
HACK 9.07:
easily Manage all the network Services on Your iphone Running lots of network services on your phone consumes resources and opens up possible security holes. if your iphone is running several network services such as ssh [Hack #9.04], aFp [Hack #9.06], an hTTp server [Hack #9.10], and so on, then you most likely will need a good way to manage them all. at certain times, you may not want to be running every single service. You could manually enter long commands into Mobile Terminal [Hack #9.05] to start and stop these services. But there’s a much easier way to do this. sBsettings is your solution to managing your network services. it can be downloaded from cydia, along with many add-ons for every toggleable service you can imagine. To open sBsettings, slide your inger across the status bar on top of the screen. This will work in any app or on the springBoard. a window will pop down, as in Figure 9-38, with up to 12 toggle buttons for services that you have selected and installed (and have the add-on for). Tap More to conigure and select which toggles to show. another alternative is Bossprefs [Hack #8.06], which can also hide unused applications.
240
iphone hacks
HACK # 9.08 #9.08 Figure 9-38. sBsettings, dropping down from the top of the screen
HACK 9.08:
track and recover Your iphone
With indme, you can track your phone. no cell phone owner wants their phone stolen or lost, but sometimes even with all the precautions in the world, you may still manage to lose track of it. it’s during times like these that you want your iphone to “call home” regularly in case of such a loss, or—let’s be more realistic—theft. That’s what indme addresses. When run, it tells you the tower iD, plus its latitude and longitude courtesy of Google Maps. still, how to get the location report to a place you can get it, but nobody else can...and without receiving a zillion sMs messages? For this part of the puzzle, enter Twitter. You can set up a private account that allows your iphone to phone home but keeps the location data relatively private. To do this, create a new Twitter account just for your iphone (it will need its own unique email address, separate from your main account, so have one handy). open the settings panel, and look for the “protect My Updates” checkbox. it’s towards the bottom of the page, just above the save button. check this and click save. With protected updates, only the Twitter users that you approve will see the updates for this iphone-only account (is it just you? You and a spouse? You, a spouse, kids, and “special friends?” it’s up to you). after creating your phone’s Twitter account, you’re ready to set up your iphone to tweet in on a regular basis. here’s how:
1. 2.
3.
Install findme. You can download indme as part of the erica Utilities package available on cydia [Hack #1.04]. findme will be installed to /usr/bin. Make sure you have curl and sed. Curl is a command-line utility that can be used to GeT and posT URLs, and sed helps edit text streams [Hack #11.01], such as trimming the XML that findme produces. Both can be installed via cydia [Hack #1.04]. Create a tweet shell script. copy the following text into a new text ile called tweet, and add it to your binaries folder:
chapter 09 - TRack anD RecoVeR YoUR iphone
241
curl --basic --user username:password --data status=`/usr/bin/findme \ | sed "s/.*//" \ | sed "s/.*//"` \ http://twitter.com/statuses/update.xml
d
Those single quotes are “`” (grave accents), which should be on the same key as “~” (tilde).
Use the proper path to findme and substitute your actual username and password. Make the ile executable with the command chmod 755 tweet.
4.
create a launch daemon. (You can ind more extensive explanation of recurring launch daemon tasks in [Hack #11.03].) in /System/Library/LaunchDaemons, you’ll ind a simple daemon that runs once a day, called com.apple.daily.plist. copy this to com.sadun.tweet.plist, and edit it as follows: • •
• •
Update the Label to com.sadun.tweet. Delete the two lines that relate to “nice.” You don’t want your script to be usurped by other processes. change the program arguments to /var/root/bin/tweet/. change the start interval from 86400, according to your needs. 86400 is once a day (60 seconds x 60 minutes x 24 hours). You can set it to launch every 10 minutes (600) while you check whether the launch daemon is functioning properly.
Label com.sadun.tweet ProgramArguments
/var/root/bin/tweet
StartInterval 600
5.
Reboot. This allows the iphone to restart, loading your new launch daemon. Your actual tweets should look like this: 39.711611-104.902137"
d
If you’re traveling across the country, and want to share, change your start interval to 15 minutes or half an hour and use a public Twitter account. (Remember to reboot after making changes to the launch daemon.)
enjoy your newfound location awareness! — erica sadun
242
iphone hacks
HACK # 9.09
HACK 9.09:
track, recover, and control Your iphone
iLocalis lets you monitor your iphone’s location and discreetly control it. if you want to know where your phone is, have a selection of tools to help get it back, don’t want to mess with the command line [Hack #9.08], and don’t mind passing your location data through his server, antonio calatrava’s iLocalis service (http://ilocalis.com) is the thing for you. You can download iLocalis from cydia [Hack #1.04]. When you irst run the application, it will ask you to create a username and password for your new account. after your account is created, you can access it online by logging in to http://ilocalis.com, which allows you to view your iphone’s location and control it to some extent, through the easy-to-use website interface (Figure 9-39).
Figure 9-39. iLocalis’s Google Maps display of my iphone’s location
You can customize how often your iphone will post updates, the default being every 15 minutes. also, you can see a number of other options along the side. You can set commands for your phone to carry out the next time it synchronizes. You can make it discreetly call a number, so that you can listen to the ambient noise and play detective. You can set a message to pop up, either as a note to yourself or to startle and confuse the new “owner” of your phone. You can make your phone send an sMs that can let you know whether they’ve swapped siM cards, and provide you with the new number. You can also track nearby friends who use iLocalis and send them messages through the service. You can see examples of how to confuse and demoralize ne’er-do-wells in Figures 9-40 and 9-41.
Figure 9-40. sending the message online
chapter 09 - TRack, RecoVeR, anD conTRoL YoUR iphone
243
Figure 9-41. The hunter becomes the hunted. Well, not exactly.
There are a few other commands that you can set from the iphone only (Figure 9-42). You can have it update your location status to a Twitter account, similar to use of indme in [Hack #9.08]. You can also conigure keywords that you can send in sMs form to trigger responses (they are casesensitive). The “locate” command results in a text back with latitude and longitude information. The “callback” command forces the phone to send a call to the number you texted it from.
Figure 9-42. extra settings for the iphone
if your phone is simply misplaced, there’s a call forwarding feature: you can forward all your calls to a new number until you get your phone back. iLocalis is easy to use and affordable. after the 10-day trial, a small donation extends your account for a whole year. You could of course donate more, if you really enjoy this app. There is another service for jailbroken phones called Findmyi (www.indmyi.org) that can also help with tracking and retrieval—and certainly more to come.
244
iphone hacks
HACK # 9.10
HACK 9.10:
Make Your iphone or ipod touch a Web Server
With lighttpd you can host a web server on your iphone. lighttpd is a lightweight hTTp server package that’s been ported to the iphone. it is available as a tiny package on cydia, but requires slightly more setup than most other apps. We’ll let the description speak for itself for once, in Figure 9-43.
Figure 9-43. That’s how it is
so, as you can see, once lighttpd is installed, you’ll need to create a coniguration ile before it will run. ssh to your phone, either from your computer or on the iphone itself [Hack #9.04]. navigate to /etc/ and type nano lighttpd.conf, then press enter. This step opens up a new ile in the nano editor. all you really need to put in this coniguration for it to work are the following lines: dir-listing.activate = "enable" server.document-root = "/Library/WebServer/" mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", ".mp3" => "audio/mpeg" )
also make sure to create /Library/WebServer (mkdir -p /Library/WebServer). The document root, inside the quotes, can be any directory you want. We’re using “/Library/ Webserver/” as an example. a better choice might be /var/mobile/Media or some other directory that you want to make public, so that you could easily access your music and other media from any computer on the same network. There are plenty of other options that you can set for your web server as well; check out the documentation here: http://redmine.lighttpd.net/wiki/lighttpd/Docs.
chapter 09 - Make YoUR iphone oR ipoD ToUch a WeB seRVeR
245
You’ll probably want to use your favorite text editor to make a sample index.html to dump into the /Library/WebServer/ directory (or wherever you chose to put the iles). To start up your web server, type lighttpd -f /etc/lighttpd.conf and make sure that there are no error messages. if you want it to start up automatically, you’ll want to create a startup daemon [Hack #11.03]. even if you don’t have an hTML page on your server yet, pulling it up should yield a rewarding screen, such as shown in Figure 9-44.
Figure 9-44. The phone is telling the computer that something is in this directory. Yay!
HACK 9.11:
connect to Your iphone or ipod touch from Outside Your home/Ofice network You can conigure your home or ofice router to allow connections to your iphone. The iphone and ipod touch are capable Unix servers. You can run web services, terminal services, and ile sharing, and connect to these servers from any computer. But unfortunately, most cellular providers have ierce irewalls that prevent your phone from permitting connections to any of these services via eDGe or 3G. There are various reasons, besides the novelty of serving your web page from your pocket, why you’d want to allow external connections. if you’ve gotten tech support for your iphone hacking [Hack #2.06] and your assistant needs to ssh into your phone, you’ll need to provide a way for them to get through the irewall to do so.
d
The AT&T mobile network, and probably other mobile networks, have irewalls that severely restrict incoming connections to your phone. Therefore, you won’t be able to serve web pages when you aren’t on a Wi-Fi network.
if you still want to set up an iphone-powered web server at your home or ofice—then read on.
246
iphone hacks
HACK # 9.11
ip addresses public ip addresses are ip addresses like 128.97.128.1 or 206.13.29.12. You can connect to them from any device connected to the internet; they’re unique on the internet, and aren’t hidden deep in a private network. private ip addresses are reserved groups of addresses like 192.168.x.x or 10.0.x.x —addresses reserved for inside a company or home that aren’t unique. static ip addresses are private or public ip addresses that are assigned to a speciic machine and don’t change. Dynamic ip addresses are private or public ip addresses handed to the computer when it boots up. Dhcp stands for Dynamic host (computer) coniguration protocol, and when you select “Dhcp,” it means, “get a dynamic ip address from a router on the network.” The most common coniguration for home internet is to have a device called a router (a.k.a. naT, irewall; see Figure 9-45 for an example) that is connected to a cable modem or DsL modem. The router gets a dynamic, public ip address, and provides dynamic, private ip addresses to machines inside the network behind the router.
Figure 9-45. a Linksys router
in order for someone to connect to your iphone from the internet, the iphone needs a public ip address. Because you can’t connect the iphone directly to a cable modem or DsL connection, you’ll have to do the next best thing: port forwarding from your network router to your iphone.
port Forwarding The trick of port forwarding is simple: you set a static internal ip address for your phone, and then forward the ports of whatever services you want your iphone to serve. To set a static internal ip address, ind out the ip addresses that your router gives out (serves via Dhcp). Then choose one in the same subnet—but outside the range of addresses that the router will use. For instance, if your Linksys router starts at 192.168.22.100, you could choose 192.168.22.99 for your iphone (Figure 9-46). set the router address to the ip address of your
chapter 09 - connecT To YoUR iphone oR ipoD ToUch FRoM oUTsiDe YoUR hoMe/oFFice neTWoRk
247
router: usually this is the same as your device’s ip but with a .1 at the end instead of .99 or whatever you used.
Figure 9-46. checking on your ip
now you need to choose which protocols you want to support. For example, the hTTp protocol (the protocol used for serving web pages) uses port 80. if you’re running a web server on your iphone [Hack #9.10], then you can forward to any port—not just 80—to the ip of your iphone. if you need to let someone ssh into your phone, simply forward any port you choose to port 22 on your phone. The same rule applies for services that you want to enable and forward to your phone (Figure 9-47).
Figure 9-47. Forwarding ports
if you want to open up all of the services on your iphone (on a temporary basis with no irewall) you can put your iphone into the “demilitarized zone” or DMZ, a place where there is no irewall protection between the internet and your device (Figure 9-48). entering your iphone’s ip address as the DMZ server will direct any incoming trafic to your iphone. some malicious users routinely run port scanners, which look for open services on random ip addresses. This hack opens any network service you have running on your iphone to the network at large, and makes it a cracking target, so do this with caution.
248
iphone hacks
HACK # 9.11 Figure 9-48. Demilitarizing your iphone
dynamic dnS There’s one more trick that makes things even easier. Because most home ip addresses are dynamic, they change frequently and can’t be counted upon, making it dificult to get back to that website you’re trying to serve from your iphone. in this case, you need a dynamic Dns service— such as that provided by DynDns (dyndns.org)—to point a domain name at your ever-changing cable modem ip address. Dynamic ip addresses can be used with your own domain name, but the usual quick and effective way is to sign up for a free dyndns.org account (Figures 9-49 and 9-50) and then enable the dynamic Dns feature in the router (Figure 9-51). Whenever the ip address changes, your router will inform dyndns.org, and the name that you’ve mapped to your router will keep sending trafic your way.
Figure 9-49. creating a domain with DynDns
Figure 9-50. List of domains on DynDns
chapter 09 - connecT To YoUR iphone oR ipoD ToUch FRoM oUTsiDe YoUR hoMe/oFFice neTWoRk
249
Figure 9-51. DynDns on the router
once it’s set up, you can test, or ping, your new domain name (Figure 9-52). Don’t be too worried if the ping doesn’t work: some isps and routers have network ilters that disable pings. Just try another service that you know is running, like ssh.
Figure 9-52. ping results for the new domain name
dps17-2:~ dstolarz$ ping iphonehacks.pozone.org PING iphonehacks.pozone.org (24.24.166.171): 56 data bytes 64 bytes from 24.24.166.171: icmp_seq=0 ttl=64 time=0.944 ms 64 bytes from 24.24.166.171: icmp_seq=1 ttl=64 time=1.122 ms
Your iphone hacking helper can now ssh into your iphone remotely by domain name (Figure 9-53).
Figure 9-53. sshing into your phone
One More thing if you have a set of ixed, external ip addresses, there’s no reason that your iphone can’t be directly on the internet. all you need to do is connect a wireless router that acts as a bridge, instead of putting the iphone behind a private set of ip addresses. if your router doesn’t have this feature, an easy way to do it is to connect the ethernet with all the ip addresses to the Lan port of your router instead of the Wan port. Then assign one of your ixed ip addresses in the iphone network settings when you connect to the router. as long as your phone is on, you should be able to use that ixed ip directly, and you can even assign a domain name to it.
250
iphone hacks
HACK # 9.12
d d
If you’re serving from your iPhone, make sure to disable Auto-Lock under Settings→Auto-Lock or run Insomnia [Hack #9.15] to keep your phone connected to the wireless network.
There are many different routers and possible network conigurations, and this hack is just a start. Comprehensive instructions on how to conigure a static IP and port forwarding can be found at www.portforward.com.
HACK 9.12:
print from Your iphone to any Fax Machine
You can print from your iphone—as long as you have a fax machine nearby. no matter how digitally you’d like to live your life, there are many times when you need to print something out. often you’ve already left the house and forgot to print some directions you need to hand to someone else. or you’re at a conference and you need to print out registration information. or you’re at an out-of-town business meeting and want to print a new draft of the contract. although it seems easy, adding print support to the iphone is not that simple. There are thousands of printers to support, and dozens of different protocols. even though work may be in progress to bring printing to the iphone, and to mobile devices in general, you need to print now. Fortunately, you can solve the problem of impromptu printing right away with our good old friend the fax machine.
Fax technology Fax machines are a black-and-white printing technology that outputs between 100 and 200 dots per inch (dpi). speciically, standard resolution is 203x98 dpi, and ine resolution is 203x196 dpi. This means that a fax print will never look fantastic, but as you know, faxes are entirely adequate for printing text documents and simple illustrations. now, the iphone doesn’t have any built-in fax software. however, because the iphone has great internet connectivity, you can use an email-to-fax service to print out your documents.
email-to-Fax Services There are a variety of services to choose from that allow email-to-fax. Generally, these services are bundled with an incoming fax line, which can cost from a few dollars to perhaps $20 a month. But if your purpose is only to be able to print—and not to receive faxes—then you can use a pay-as-you go service. Because these faxes are an outgoing call, they do cost a little bit. Depending on the service, you pay around ten cents per page, which is debited from money on your account like a prepaid calling card. here are a few services to try (we’ve tested most of them): www.faxaway.com www.faxpipe.com www.popfax.com www.fax1.com/send_faxes.html www.greenfax.com/sendonlyplan.php chapter 09 - pRinT FRoM YoUR iphone To anY FaX Machine
251
printing on the Go a very common scenario is that someone mailed you a document and you need to print it out. Getting someone to print something out for you may be more of a favor than you wish to ask for, and this approach is complicated by needing to forward the email to them and hoping that they can read the attachment. however, it’s much easier to simply ask, “Do you mind if someone faxes me at your number?” The process is simple:
1. 2. 3. 4. 5. 6. 7. 8.
Before you need to do this, sign up for one of these services. You can do it from your phone if you have to. Find out the fax number. Launch your mail program. Find the email that has the attachment that you want to print. Forward the email, including the attachment (Figure 9-54). if there is more than one attachment, delete all but the attachment you want to print by moving your cursor to the right of unwanted attachments and pressing delete (Figure 9-55). address the email to @.com (Figure 9-56) and send it. Within a few minutes, your document should print out on the printer.
Figure 9-54. include the ones you want.
Figure 9-55. Delete the ones you don’t.
252
iphone hacks
HACK # 9.12 Figure 9-56. Forward it to a fax machine.
Depending on the service that you use, you may get a conirmation email (Figure 9-57).
Figure 9-57. Text of the conirmation email
Hello from Faxaway, the world’s easiest E-Mail to Fax service! CONFIRMATION OF YOUR FAX TRANSMISSION FAX STATUS: SUCCESSFUL TO 13105551212 COUNTRY: 1-NORTH AMERICA TRANSMISSION: 01-Jun-2009 22:27:06 GMT. 1 Page(s). DURATION: 1.8 Minute TOTAL COST: $0.20 YOUR FAXAWAY ACCOUNT BALANCE: $8.62.
Thus, if you need to print something out—such as at a hotel—you just fax your document to their fax machine, it’s printed out—and they might even deliver it to your room. You’ll need to read the instructions for whatever fax vendor you select. some can accept multiple attachments; some can take only one attachment. some of them use the subject line and the body of the email as the cover sheet for your fax. They also vary in what documents they support. in our testing, Faxaway was a very inexpensive option ($12/year), had excellent support, and supports a wide range of documents for fax printing.
receiving Faxes if you have a lot of business on the go that involves having to print out documents, sign them, and fax them back, you might as well sign up for an incoming fax number at the same time that you set up this hack. [Hack #6.07] explains how to set up a voice mail service that forwards voice mails to your email. Many of those same services—including some of those listed earlier in this hack—allow you to receive faxes that get sent as attachments. Make sure that your services supports pDF, as the iphone will be able to display those. The TiFF format used by these services does not work. of those listed previously, greenfax.com and chapter 09 - pRinT FRoM YoUR iphone To anY FaX Machine
253
faxpipe.com offer a pDF receive option; other services such as eFax.com can as well, but they may not have an email-to-fax service. You can print out the faxes you receive through the same approach as shown previously, if you need a hard copy. otherwise, simply view them on your phone.
HACK 9.13:
tether Your iphone’s edGe/3G network to Your Laptop Bring your iphone’s anywhere-internet to your laptop with iphone Modem or pdanet. For some time, cell phone users have been able to tether their phones to their laptops and use them as Bluetooth modems, utilizing their data plan to power their laptop’s browsing. For a time, this ability was not available on iphones. people were unable to use their mighty eDGe or 3G for nonphone browsing. Jailbroken apps changed this. There are a few tethering apps to be found on cydia. The two covered here will be iphone Modem (www.iphonemodem.com) and pdanet (www.junefabrics.com). For either one, download them from cydia. iphone Modem also has a desktop app for you to use that streamlines the process of tethering and that works on either Mac or Windows. To connect your Mac to the pdanet, you’ll need to make an ad hoc network.
d
If you chose the iPhone Modem route, just launch the desktop app and press Connect. It will do the following step for you.
To do this on a Mac, go to the drop-down menu of your airport status icon and click create network. name the network whatever you wish, and include a password if you so choose. on a pc, go to the network and sharing control panel, and select “set up a connection or network.” specify that it should be a wireless ad hoc network, and click through to create it. again, name it whatever you want, and choose a level of security. check “save” if you want to use this network sometime in the future for the same purpose. now connect your iphone to the network you just made, and start up your app. on iphone Modem, press connect. on pdanet, turn on the Wi-Fi Router. When your app shows a happy connection screen (Figure 9-58), you should be connected. Most apps should work ine over your tethered connection. eDGe is ine for browsing and anything that the iphone feels safe doing over eDGe. 3G is even strong enough to handle skype. it can even, for those so inclined, handle World of Warcraft (Figure 9-59).
254
iphone hacks
HACK # 9.14 #9.14 Figure 9-58. iphone Modem connected with an eDGe iphone, and pdanet connected with an iphone 3G
Figure 9-59. ~300ms ping can get some quests done just ine.
HACK 9.14:
run applications in the Background
keep your apps going with Backgrounder. only a handful of apple’s standard apps will keep updating when they aren’t open—things like sMs, Mail, and the alarms. This means that apps like aiM and Yahoo!Messenger will function and receive iMs only when the phone is unlocked (screen on) and the app is running (on screen). This almost defeats the purpose of their convenient messaging. With Backgrounder running, you can leave these applications running in the background while you do other things, or while your phone is in your pocket. You can use it to more quickly boot up an application that you use frequently, or keep it running for background updates (like the instant messenger apps). chapter 09 - RUn appLicaTions in The BackGRoUnD
255
Download Backgrounder from cydia. it won’t have an icon on the springBoard—it will simply be hooked onto your device’s apps. When you want something to keep running in the background, open it up and then hold the home button for a second or two. a window like th256e one in Figure 9-60 will show up, and your app will stay open after you return to the home screen. iMs will still beep, thus you’ll know when someone sent you an instant message...instantly. some apps of note: if you use this on ocarina, it will continue to respond to microphone stimuli, and resound its standard note. Lightsaber Unleashed will continue to hum in the background, but it will not respond to motion, unfortunately.
Figure 9-60. Backgrounding aiM
HACK 9.15:
Keep Your Wi-Fi running all the time on Your iphone You can keep your iphone connected to Wi-Fi when it goes to sleep with this hack. The iphone has remarkable networking capabilities, in that it rather seamlessly switches between eDGe, 3G, and Wi-Fi connections. But sometimes what the iphone wants to do is not what you want it to do. often if you’re at home or at work, and you need to access iles on your iphone, you’d like it just to stay online instead of sleeping and locking itself. normally, 30 seconds after the screen shuts off, the iphone sleeps. The ix is easy. insomnia (Figure 9-61), an application that has existed for years for Mac notebooks and is now available for the iphone, keeps things running when the phone sleeps, including Wi-Fi networking. You can ind insomnia in cydia [Hack #1.04].
Figure 9-61. keep your iphone awake with insomnia
256
iphone hacks
HACK # 9.15 #9.16 insomnia has no real user interface except for a bloodshot-eyed blue guy (Figure 9-62). Tapping the icon toggles insomnia on or off.
Figure 9-62.
Better wIreLess weB PerformAnCe on An orIgInAL IPHone
insomnia active
note that leaving Wi-Fi on all the time will reduce battery life. however, if you’re usually on Wi-Fi and you have an iphone 3G, you can disable your 3G network to get some of that idle energy back.
programming You can download the source code for iphone insomnia and learn how to incorporate the insomnia code into your own application at http://code.google.com/p/iphone-insomnia. [Hack #11.01]
shows how you can develop your own script-based application similar to insomnia.
HACK 9.16:
trick Your Wi-Fi apps into Working Over 3G
Using Voipover3G, you can download apps and make Voip calls without Wi-Fi. although the 3G network has completely acceptable speeds—even for demanding network services such as the app store, iTunes store, and Voip—these apps stop working when not used over Wi-Fi. But if you need an app, song, or need to make a Voip call and there’s no open Wi-Fi to be found, what do you do? You trick the apps into thinking that you do have Wi-Fi, so that they’ll happily chug along. There’s one simple step to do this: download Voipover3G from cydia. You may now use the app store, iTunes store, Fring, and Truphone—all over 3G. if those are not all the apps that you wish to trick into thinking you’re connected to Wi-Fi, you will need to do something a bit more in depth. Find the ile /Library/MobileSubstrate/ DynamicLibraries/VoIPover3G.plist on your iphone [Hack #1.05]. This plist ile contains the list of apps that Voipover3G will attempt to pull a fast one on. You’ll need to add the bundle identiier that is contained in the Info.plist ile [Hack #11.02] (e.g., com.apple.mobilestore) to this plist just like the other ones that sit there. or, for a really bad idea, you can delete the entire VoIPover3G.plist ile, and all apps will be bamboozled into thinking that they have Wi-Fi—under any circumstances. some apps do not like being tricked like this and will react poorly, because of the slower network performance. now go out there and make some Voip calls!
Get OUt OF the WaY OF YOUr WireLeSS antenna SO YOU can SUrF FaSter if you have a irstgeneration iphone, you can noticeably increase your network performance simply by moving your hand away from the antenna! in fact, page 105 of your oficial iPhone User’s Guide states that the antenna must be kept at least 5/8" from your body to avoid potentially harmful radiation from the cellular wireless signals. When your body intercepts these signals, besides purportedly being bad for you, it is also decreasing the speed of the eDGe network. on the 3G iphone, the antenna has been changed, so this tip applies only to the irst-generation iphone.
Good iphone handling
chapter 09 - TRick YoUR Wi-Fi apps inTo WoRkinG oVeR 3G
257
10
APPLICAtIon HACKs the iphone has shown us more clever things to do with a smartphone than ever before. it seems like the whole world has inally realized a couple of things:
1. 2.
Mobile phones are computers. You can never install enough programs on your computer.
This brief chapter provides a grab bag of hacks that weren’t included in earlier chapters, but we felt just had to be included. From music, measurement, and media management to the conspicuously missing ability to cut and paste, and even a BitTorrent client, we round out the capabilities of the iphone with an eye to the future.
HACK 10.01:
create Music with the iphone and ipod touch
a variety of programs lets you create and play music on your iphone. The iphone is many things to many people, and for many it is a musical instrument. its multitouch screen allows for multiple notes to be played at the same time in a number of simulated instruments—guitars, bass, piano—as well as a real ocarina-inspired wind instrument. in this hack, we show you a brief sampling of some of the clever musical tools available in the app store.
the Basics: Silly instruments The novelty of the iphone’s accelerometer wears off after a while, but not until you’ve had the opportunity to try out a silly instrument like iMaracas (Figure 10-1).
258
iphone hacks
HACK # 10.01
Figure 10-1. iMaracas
although it’s fun, the musical quality of iMaracas probably won’t lure you into spending more on other music programs in the app store. You need a real “gateway drug” such as one of the dozens of chord-capable piano programs to show you the potential of the iphone as a real instrument.
Minipiano The iphone has more cpU power and memory than many conventional electric keyboard synthesizers, so it seems natural that it would be able to emulate a piano well. Because of the limited screen space, you won’t be able to get 88 keys on the screen, but you will ind some remarkable sound coming out of Minipiano (Figure 10-2). if you want more octaves, you’ll need to upgrade to their pro app, Fingerpiano.
Figure 10-2. Minipiano
There are dozens of other piano applications on the app store, competing on sample quality, blending, and ability to switch to different octaves quickly. But because the iphone can’t replace a real piano, perhaps a better use of the iphone is as a musical learning tool.
chapter 10 - cReaTe MUsic WiTh The iphone anD ipoD ToUch
259
Learning a number of promising music education applications have popped up to exploit the combination of interactivity and sonic idelity that the iphone provides. pianochordy (Figure 10-3) is essentially a lash card application for piano chords. But unlike your dusty stack of cards on the piano shelf, this one is interactive, and it has a reward payoff: you get to hear the chord when you get it right. This feedback reinforces both keys and sounds for a beginner, and is a great way to pass idle moments constructively.
Figure 10-3. pianochordy
pianochords (Figure 10-4) takes a different approach, allowing a piano player to look up chords in any key by choosing a root note and then choosing a chord derived from that note.
Figure 10-4. pianochords
if it’s guitar you’re learning, chord charts are the handiest thing to have. The 7-chords (Figure 10-5) application offers a quick list of chords—in tab—with sound! Flash cards never sounded this good.
Figure 10-5. 7-chords
260
iphone hacks
HACK # 10.01
tuning Your instrument Whether you’re a beginner or you’ve been playing all your life, you never escape tuning. The iphone offers an orchestral range of options when it comes to tuning. cleartune (Figure 10-6) and Tuner 440 (Figure 10-7) are two instrument tuners. Using the microphone built into the iphone, these apps can tune dozens of instruments. The free Tuner 440 can tune a variety of string instruments, and the inexpensive cleartune can even tune a wide variety of wind instruments. Just remind your orchestra to mute their iphones before the concert starts.
Figure 10-6. cleartune
Figure 10-7. Tuner 440
recording Your performances once you’re ready to start recording songs, there are a number of options for you. if you like the one-man-band approach, then the aptly named Band (Figures 10-8 and 10-9) application incorporates a drum, a bass, and an innovative keypad that allows you to play blues guitar backing and solos. entire compositions can be built up by lipping through the various screens.
chapter 10 - cReaTe MUsic WiTh The iphone anD ipoD ToUch
261
Figure 10-8. Band’s intuitive Funky Drummer and Bassist interfaces
Figure 10-9. Band’s unique 12 Bar Blues keypad interface
if you’re interested in recording your own analog instruments with the iphone, 4-track (Figure 10-10) is a four-track recorder. it’s worth noting that the Beatles produced some fantastic albums on a four-track recorder—recording one track at a time, then layering on more accompaniments while listening to the irst tracks. Level indicators keep your recording from clipping, and a built-in compressor-limiter fattens the sound. The app will record off the built-in mic of the iphone, or the mic on the stereo headphones, or whatever mic you want if you build a mic input [Hack #12.01]. You can export your recordings using Wi-Fi and continue to edit them in GarageBand.
Figure 10-10. 4-track
262
iphone hacks
HACK # 10.01
Mixing and Synthesis if your musical talents lie in the area of synth and DJing, there are even more applications to create with. You can emulate a Roland TB-303 with Bassline (Figure 10-11) and a range of TR-x0x synths (such as a 707, 808, or 909) with iR-909 (Figure 10-12).
Figure 10-11. Bassline, inspired by the Roland TB-303
Figure 10-12. iR-909
if you’re focused on tapping out drum rolls, digidrummer (Figure 10-13) lets you do just that.
Figure 10-13. digidrummer
But if you’re looking to create drum loops, iDrum (Figures 10-14 through 10-16) is the app of choice. it comes in several varieties, including a hip-hop edition, a club edition, and even a Deep house and Techno edition made in partnership with the London-based Ministry of sound (www.ministryofsound.com). even for a beginner, it’s very easy to learn. each square represents an instrument, and each of the blocks within that square represents a 16-beat pattern. By zooming into the patterns, you can turn off that instrument or sample for that beat. and you can easily turn your mix into a ringtone.
chapter 10 - cReaTe MUsic WiTh The iphone anD ipoD ToUch
263
Figure 10-14. iDrum hip hop edition detail
Figure 10-15. iDrum Deep house and Techno edition detail
Figure 10-16. iDrum Deep house and Techno edition load screen
Ocarina Last but far from least, probably the coolest iphone-based music-making application is smule’s ocarina. This is a top-form application and qualiies as an actual instrument, not just a simulator. You blow into the microphone on an iphone, and press one of the four “stops” on the screen (Figure 10-17), either on your own or with the helpful tablature they provide (Figure 10-18).
264
iphone hacks
HACK # 10.01 But it doesn’t stop there. The moment you start playing, you’re actually part of a global concert of ocarina players, and using the location and internet features of the iphone, your performances go onto a server and out to the world. You can go into a section of the app where notes loat up to the sky from a 3D globe, and leave it there, part of a gentle serenade by ocarinists everywhere (Figure 10-19).
Figure 10-17. smule’s intuitive ocarina interface
Figure 10-18. ocarina tablature for “Twinkle Twinkle Little star”
Figure 10-19. ocarina’s interactive 3D globe
Going on Stage With so many options to create music, it’s only logical that iphone quintets and pop orchestras will be coming together. When you’re playing these instruments, the built-in speakers or headphones just don’t do these instruments justice. You can hook them up to a pair of desktop speakers, or better yet, hook up a wireless audio transmitter to plug into your pro mixing board. chapter 10 - cReaTe MUsic WiTh The iphone anD ipoD ToUch
265
HACK 10.02:
triangulate distances with Your Built-in camera and GpS
Using trigonometry and your digital camera, it is possible to determine sizes or distances of objects with better precision than eyeballing. You probably learned how to use trigonometry in high school for such tasks as measuring the height of a tree or other exercises that may or may not have turned out to be too useful to you. however, there are some times when you want to be able to measure the size of an object, or the distance to it, and the iphone’s combination of camera and Gps bestows some unique beneits. Let’s take a common example. While playing golf, how far is the hole? Most golf lagpoles are 7 feet tall (some are 8 or 9 feet). if you photograph the lagpole with your camera, holding the phone sideways so the screen is wider than it is tall, then you’ll be able to tell how far the lagpole is using this simple formula: 10 / f = distance
where f is the fraction of the screen that the lag occupies. so if the lagpole is 1/5 the height of the screen, then you are 50 feet or just under 17 yards from the lag. Usually, the lag will be very small, so you’ll want to zoom in by clicking on the camera roll and using your two-inger zoom to make the lag larger. it turns out that if you zoom in as far as you can while keeping the phone on its side, then the formula becomes: 45 / f = distance
in this case, 1/5 the height of the screen leads to a distance of 225 feet, or 75 yards. That’s useful! how does it work? First we’ll have to assume that you remember those trigonometry functions: sine, cosine, and tangent. next, you need to note what the speciications are for the iphone camera: the image resolution of the eDGe and 3G iphones is 1200 x 1600 pixels (1,920,000 pixels) •
angular resolution: 2 arc minutes/pixel (+/– 1/2 arc seconds/pixel)1
•
Field of view: 38 x 50 degrees
This means that the total view of the camera is 40 degrees wide by 50 degrees tall, roughly speaking. You could photograph the entire 360 degree view around yourself with about nine photos, assuming they aligned end to end. note that 57 degrees is about a radian,2 so the camera’s angular resolution is about one radian. The next thing you should know is that the tangent of an angle less than about 20 degrees is close to the angle itself. For example, 20 degrees is about 1/3 radian, and tan (1/3) is equal to 1/3,
1. Remember, an arc minute is a 60th of a degree, where 360 degrees makes a circle. 2. in case you don’t remember what a radian is: here’s your cheat sheet. it is an angle of 57 degrees (ignoring decimals). This turns out to be 1/2p of a circle, which means that a circle has 2p radians in it.
266
iphone hacks
HACK # 10.02 accurate to within a couple percent. For larger angles, this isn’t true—so what we are about to say works only for measuring heights that are about half of a screen width. You have probably used a formula like h/d = tan(a), where h is the height of the tree, d is your distance from it, and a is the angle. however, because of the iphone’s camera characteristics, anything less than 1/2 the width of the screen is less than 20 degrees, which means that angle a’s tangent is roughly equal to its size in radians, so you can just call the formula h/d = a. This makes life much simpler. next, if you know the height of your object (such as 7 feet for the lagpole), then you know h. so you can rearrange the equation: h/a = d. and you can determine a from what fraction of the width the photograph occupies. if the object you are looking at is 1/4 of the width of the screen, then it is roughly 10 degrees, because 10 degrees is close to 1/4 of 38 degrees—the screen width. if it is 1/8 of the width of the screen, then it is 5 degrees. now, the tricky part is a, because the equation uses radians. What you really want is a fraction of the screen. so use the fact that: a = (πf)/(38x180) 38 is the number of degrees in the screen width, π/180 is the conversion from degrees to radians.
Then: a = 0.66f
plug this into h/a = d and you get: 7/(0.66f) = d 10.55/f = d
or good enough: 10/f = d
You can play this trick for any object you commonly use. For example, if you live on a farm, you can determine your distance from a silo using a similar formula if you know the height of the silo. Most people don’t want to be doing math while out on a jaunt with their iphone (well...most people don’t; i might be one of the few who actually do!). Therefore, you need some rough simple formulae that are easy to remember. For most purposes, an accuracy of 5 percent is generous, so this is what we get: d = 1.5h / f when you are viewing an image in the camera roll. d = 6h / f when you are viewing an image in the camera roll and you have zoomed to maximum zoom using the pinch gesture.
as before, d is the distance to the object, h is the height of the object, and f is the fraction of the screen the object occupies. These work only when the object to be measured is viewed vertically, and the camera is on its side (as if you were watching video). if you want to measure something horizontal like the diameter of chapter 10 - TRianGULaTe DisTances WiTh YoUR BUiLT-in caMeRa anD Gps
267
the world’s largest pizza at the festival you are attending, then turn the camera vertically so that the home button is closest to your feet. in this case, the height, h, is now the width, h. is that all you can do? no! if you have a 3G iphone, then you have Gps. There is a cheap application from the app store called Tape Measure (Figure 10-20) that allows you to measure distances on your Gps.
Figure 10-20. Tape Measure
Because your Gps is accurate only to within a few meters, you can measure only distances that are larger than about 10 meters to any real accuracy. however, you can measure the heights of mountains easily by walking a distance toward the mountain with your Gps (good for exercise) and photographing the mountain before and after. The difference in angle is proportional to the distance you walked. Therefore, the distance you walked is d, and the difference in angle is a. You just plug these values into the formula given previously. Likewise, you can use Google Maps to locate your distance from a landmark like the seattle Tower. knowing d, you can measure the height easily with just a photo from your iphone.
applying the hack here we have an example with the campanile tower (Figure 10-21) at the University of california, Berkeley. We'll use meters as our units for this example. We don’t know yet exactly how tall it is, but Figure 10-21 shows a photo taken from 435 meters away (with an accuracy of plus or minus 30 meters) based on Gps coordinate differences. as you can see in the photo, the campanile is y fraction of the width of the camera view, which means that we can rearrange d=1.5h/f to be fd/1.5 = h. The measured values are: f = 360 pixels / 1200 = 0.3 d = 435 +/- 30 meters (between 405 and 465).
Thus, calculating the height: h= fd/1.5 = 0.3 (405m to 465m)/1.5 yields: h = 87 meters +/- 6 meters (i.e., between 81-93 meters)
268
iphone hacks
HACK # 10.03 The actual height of the tower is 93.6 meters (according to Wikipedia). so this relects the accuracy of the method ~15% as promised if one assumes h = 87 meters.
Figure 10-21. picture of campanile tower
Fun projects: • • • •
Measure the altitude of a helicopter. Go sailing and measure your distance to shore. Using the fact that the distance to the moon is 384,000 km, measure the diameter of the moon. Measure the height of the Matterhorn at Disneyland. — Zack Gainsforth
HACK 10.03:
add More Ways to Sync
With these apps, you can get data from your iphone or ipod touch to your computer. You can put all sorts of wonderful things on the iphone. But if you lose the original data on your computer, it’s somehow gone forever, trapped in the iphone vault. What if you could sync the other way, and get iles back off your iphone? of course, this is not a new idea. it’s as old as the ipod itself. it is good to know, however, that the systems have been upgraded to support new iphone data such as sMs and call logs.
chapter 10 - aDD MoRe WaYs To sYnc
269
From Your iphone to Your computer ecamm’s phoneView (www.ecamm.com/mac/phoneview) provides access to your call and sMs logs, as well as all the media, contacts, calendars, and so on, that are stored on your iphone. You can also use it to store non-syncable data on the iphone. You can see screenshots of it at work in Figure 10-22.
Figure 10-22. Disk use, call log, and sMs
senuti (www.fadingred.com/senuti) has a simple interface and is dedicated to copying music off an ipod or iphone—it can even automatically add the songs to iTunes (Mac only). Touchcopy (www.wideanglesoftware.com/touchcopy) is available for Mac os and Windows, and has a feature set similar to phoneView, only without sMs and call log.
270
iphone hacks
HACK # 10.04
Migrating from Smartphone to iphone The Missing sync (www.markspace.com/missingsync_iphone.php) is a combination ile transfer and migration assistant. That is, it can help get your contacts and other data from your old BlackBerry, palm, or Windows Mobile device to your iphone.
HACK 10.04:
alter Your Voice and Outgoing caller id on the iphone With ispoof you can make iphone calls in disguise. ispoof allows you to fake your caller iD, alter your voice, and optionally record the resulting conversation (by default, it notiies the person you’re recording). You could use it as part of a practical joke, a con, an elaborate hoax, or for security purposes. ispoof is available from cydia [Hack #1.04]. if you’re willing to sit through a voice ad, you don’t need to sign up. if you do sign up, input the pin that you’re given into the settings section of the ispoof app (Figure 10-23). You’ll now be able to use the minutes you buy and add more minutes on the Replenish screen in the app.
d
iSpoof saves the credit card information you enter, and although it encrypts the transaction itself, there’s no password to input while purchasing the minutes through the app. This means that someone who has possession of your phone could buy minutes using your credit card without your consent. It doesn’t display any usable credit card information in the app, however, so that’s all they’d be able to buy.
Figure 10-23. The settings screen and the minute replenishment screen
The fun part of this app is in Figure 10-24. The call tab lets you make spoofed calls. You can (of course) change your caller iD, but you can also put on a voice ilter to sound deep and bassy or oddly high-pitched, record the call (with or without a legally required notice), or even go straight to voicemail to leave frightening messages or tell your boss you’re sick without a burdensome actual conversation.
chapter 10 - aLTeR YoUR Voice anD oUTGoinG caLLeR iD on The iphone
271
Figure 10-24. ispoof call screen
ispoof has many practical and frivolous uses, and is deinitely worth checking out.
HACK 10.05:
Use Your iphone as a Media remote control
You can use your iphone as a remote control for your computer and media center. if you’ve ever seen a top-of-the-line home theater installation connected to a multiroom sound system, you might have been impressed by the programmable touchscreen controls embedded in the walls near the light switch. and most home theater aicionados eventually get upsold on some sort of super-ultra programmable remote with software programmable buttons. Well, those days may be coming to a close, as iphones and ipod touches become the future of home theater control.
apple tV & itunes apple set the standard for iphone remote media control apps with their release of Remote, which is available from the app store. This app allows your iphone or ipod touch to control your iTunes or apple TV just as seamlessly as it controls its own media. You may think that the pictures in Figure 10-25 are that of the ipod’s own controls, but how else would a seamless remote control app look?
272
iphone hacks
HACK # 10.05 Figure 10-25. apple’s Remote for iTunes and apple TVs
if you have a sonos music system, they provide a sonos controller application for iphones you can use: www.sonos.com/whattobuy/controllers/iphone. The same is true for media systems available from savant: www.savantav.com/products.php?navigationitem=1&subnavigationitem=2&item=0.
Web-based controls Back before the app store, when all that was available for iphone development was the web-based sDk, network-based remote controls were some of the coolest tricks in town. Because the iphone can render web pages that look somewhat like a real iphone app, it seems like everyone was (and still is) putting easy-to-use iphone-oriented web pages into their already web-server-enabled devices. Remote Buddy (www.iospirit.com; see Figure 10-26) is one of the irst and best implementations of this sort of remote. Using your unjailbroken iphone, connecting to only a web application, you can control your desktop fully—using the iphone as a remote trackpad (Figure 10-27), and even automatically launching DVD movies stored on your computer (Figure 10-28).
Figure 10-26. Remote Buddy coniguration
chapter 10 - Use YoUR iphone as a MeDia ReMoTe conTRoL
273
Figure 10-27. Remote Buddy iphone trackpad
Figure 10-28. Remote Buddy DVD interface
combine a Mac Mini and an ipod touch, and you can build yourself a DVD jukebox system. pull the DVD VIDEO_TS folder onto your Mac Mini as in [Hack #4.02], then install Remote Buddy and you can watch any DVD you want at full quality, with all the DVD menus—no conversion required! The ipod touch and iphone are bringing the high-end, conigurable-touchscreen remote control experience into the mainstream.
HACK 10.06:
Make Your iphone or ipod touch talk
When you have no one left to call, use Festival-Lite to make your iphone talk to you. With the utilities in this hack, you can add a text-to-speech engine to your phone, allowing you to turn text into speech! This can be implemented in an existing app or used on its own for various comedic or practical purposes. To get started teaching your phone how to talk, ire up cydia [Hack #1.04] to ind and install the Festival-Lite and erica Utilities packages (and Mobile Terminal, if you don’t have that yet). see Figure 10-29. Festival is a port of a Unix-based TTs engine, and the erica Utility is called play, a simple command-line player of audio iles. 274
iphone hacks
HACK # 10.07 Figure 10-29. The two utilities and how to ind them
as these are just command-line utilities, that’s all the setup you need. once those are installed, connect to your iphone via ssh [Hack #9.04]. Type in the following commands, with your own content where necessary: flite "This is text to speech" -o filename.wav play filename.wav
You can see what that would look like in Figure 10-30.
Figure 10-30. iphone ventriloquism
if all went well, you should be hearing your iphone or ipod touch say the sentence in its new voice. You can even do this directly on your iphone [Hack #9.05] by connecting to your phone (server ip 127.0.0.1) as the user “mobile” and typing the same commands as shown previously.
HACK 10.07:
copy and paste Between applications
clippy (and friends) add copy and paste to the iphone and ipod touch. copy and paste. Until iphone os 3.0, it was the most glaring feature missing from apple’s otherwise killer device. it’s present on practically every other smartphone on the market, and has ininite applications of convenience, as any journeyman computer user has discovered. so why go without it on a portable master communication device? The clippy application gives us the copy and paste that iphone os 1.x/2.x owners had been clamoring for. clippy is available from cydia [Hack #1.04].
chapter 10 - copY anD pasTe BeTWeen appLicaTions
275
once it’s installed, clippy morphs the dragging text cursor movement present in all editable text boxes into a text highlighting tool. Tapping and dragging over a section of text highlights it. To bring up the commands for clippy, go to the numbers and symbols page of the keyboard (the one reached via the “.123” button in the bottom left). The command buttons will be along the top of the keyboard, as in Figure 10-31.
Figure 10-31. The command buttons for clippy
copying a phrase adds it to clippy’s “stack,” which is there so that you can copy and paste multiple things at a time. You can use it to keep a list of things you type frequently, saving keywords or things such as email addresses or simple stock sMs messages. The stack is shown in Figure 10-32. as can be expected, you can drag and delete the items, just like you would on any other list.
Figure 10-32. The stack: tap an item in it to paste it where your cursor lies
clippy will work between most applications that support text entry. it has a few quirks, but it’s the next best thing to the oficial apple copy and paste mechanism. With clippy, your eficient communication device is a little more eficient—unless you use it for something like Figure 10-33.
276
iphone hacks
HACK # 10.08 Figure 10-33. The time-wasting aspect of clippy in action
HACK 10.08:
download Youtube Videos instead of Streaming With MxTube, you can store YouTube videos on your phone. The default iphone YouTube application is useful, but lacking. it lacks access to your YouTube account, and the ability to download videos that you watch frequently. (admittedly, YouTube itself lacks this feature.) The MxTube application by MxWeas (www.mxweas.com) lets you download videos from YouTube in high quality (for example, off the Wi-Fi in your ofice) and then watch them later (for example, on your light to Jamaica, when you get away from your ofice). it’s so simple once it’s implemented that you’ll wonder how you ever went without it. MxTube is available from cydia [Hack #1.04]. With MxTube, you can even force YouTube to serve you up Wi-Fi-quality video over eDGe or 3G. in Figures 10-34 through 10-36, you can see me inding a video, downloading it, and inally watching it in high quality—and this is off of the slower eDGe cellular network.
Figure 10-34. a choice for video iles
chapter 10 - DoWnLoaD YoUTUBe ViDeos insTeaD oF sTReaMinG
277
Figure 10-35. Download one or more videos at once
Figure 10-36. no buffering and no waiting!
HACK 10.09:
acquire new Media with dtunes
stream and download songs, videos, and torrents to your iphone or ipod touch. is an obscure song that you want immediately not available from the iTunes store? Do you want to share a YouTube video with your off-the-grid friend who lives beyond the reach of any cell signal or Wi-Fi? or do you just want to make the most out of your unlimited data plan by illing the “phone tubes” with multigigabyte torrent iles? dTunes solves all those problems. it works as a portal to different media search websites, allowing you to download iles from them easily.
Music The music download section uses www.seeqpod.com (Figure 10-37) to trawl the internet in search of downloadable Mp3s.
278
iphone hacks
HACK # 10.09 Figure 10-37. Downloading a song with dTunes
Video The video tab uses www.tinytube.com, a mobile-friendly frontend for YouTube to access videos. You can either stream them or download them (Figure 10-38).
Figure 10-38. Downloading a movie with dTunes
torrents dTunes allows you to download BitTorrent iles from any of the popular torrent websites. Just use the browser to search for a torrent you want to download, and download the ile.
d
For the torrent downloading to work, you’ll need both Enhanced Ctorrent and Mobile Terminal. Both of these are available from Cydia [Hack #1.04].
Go to Browse and click on the torrent ile you just downloaded to prepare it for downloading through the command line. now go into Mobile Terminal and type ./gettorrent. if you get an error, make sure that you went into dTunes on the Browse tab and tapped the torrent you wanted to download. More information is in dTunes itself, as shown in Figure 10-39.
chapter 10 - acQUiRe neW MeDia WiTh DTUnes
279
Figure 10-39. More information about torrenting, with a helpful diagram straight from dTunes
When your torrent is done downloading (and you’re done seeding), open up Mobile Terminal again and input the command Q. That will quit the torrent app. if the iles you downloaded are compatible media iles, you can view them in dTunes under Browse. now your iphone or ipod touch is free to download the world.
HACK 10.10:
Back Up Your Jailbroken apps
With aptBackup, you can protect your jailbroken app library from irmware updates. one major inconvenience with jailbreaking is that after a new irmware update comes out and is made completely safe and jailbroken, the unoficial apps you have installed are still erased after installing it. it’s a painful process trying to remember each app and reinstall them one by one, but fortunately aptBackup exists to take care of all that. When you press the Backup button in aptBackup, it creates a list of all the jailbroken apps you’ve downloaded and saves them as part of your backup package, so that when you back up in iTunes (Figure 10-40), they will be saved as well.
Figure 10-40. Backing up
280
iphone hacks
HACK # 10.10 so when you do install the irmware update and restore from backup (Figure 10-41), that list gets put back onto your phone.
Figure 10-41. Restore from Backup
Then you just have to reinstall aptBackup from cydia (after jailbreaking your phone again, of course) and hit the Restore button to reinstall them all. The caveat with this program is that it doesn’t back up settings or anything added as a result of those apps (downloaded movies, and the like), but anything downloaded from cydia is reclaimed. That includes, for example, WinterBoard skins. Fortunately, many settings for jailbroken apps get saved during regular syncing anyway. You should still check each application you use (e.g., cycorder) to see whether there’s data, recorded media, or other information that hasn’t been saved. Backups are always your friend. This utility deinitely helps those who rejailbreak with every iphone irmware release.
chapter 10 - Back Up YoUR JaiLBRoken apps
281
11
deveLoPment HACKs When Objective-c was chosen to be the primary development language for nextstep, no doubt its relective features and dynamic late-bound messaging system were cited as signiicant advantages. although the language’s quirky syntax is a turn-off for some, its uneasy marriage between a Smalltalk-inspired object model and the raw low-level power of c is what gives the language its own unique strengths. that Objective-c heritage, carried through as nextstep, became Mac OS x, and more recently spawned the iphone OS. how ironic that this powerful dynamic language also helped to thwart apple’s efforts to lock down the iphone. Dynamic languages with relection data compiled into their binaries are unusually vulnerable to reverse-engineering. all that metadata, so instrumental to runtime binding and relective analysis, is also visible to anyone who can decipher your compiled binary format. so when the iphone Dev Team [Hack #2.06] set themselves to the task of creating an iphone sDk, objective-c’s relective metadata made the job a whole lot easier. The irst part of this chapter will show how far you can go with Unix scripting: using command-line tools to build solutions and wrapping them in push-button applications. The next section will show you how to take advantage of the iphone apis—both their developer-friendly features and their hacker-friendly internals. We’ll explore some of the development environments that you can use, and how to customize them for your own needs. and along the way, you’ll learn about some handy tools and techniques for your iphone hacking and development arsenal.
HACK 11.01:
turn command-Line Scripts into iphone apps
You can write complex utility applications for the iphone in almost any scripting language. Because Mac os X is a Unix operating system, the bountiful riches of Unix programming are available on the iphone. if you’re familiar with any command-line programming tools, from languages like c to the dozens of scripting languages such as python and Ruby (available on cydia), Java, and even shell programming, you can write utility applications that perform useful functions, and wrap them in a push-button icon on your iphone.
282
iphone hacks
HACK # 11.01
Writing Scripts The irst step to writing a script, as opposed to a full-blown iphone application, is to ssh [Hack #9.04] into your phone. if you’ve mounted your iphone in the ilesystem [Hack #9.06], then you can edit text iles more easily. at the command line, you’ll ind a familiar set of Unix shell tools. some useful packages to install can be found in Development, networking, Java, and scripting under “sections” in cydia. You should browse around and search for the tools that you’re most comfortable with. in any event, you’ll need to install a variety of useful command-line utilities from cydia. core Utilities a key set of GnU Unix shell utilities: gawk an implementation of the awk tool for manipulating text sed a tool to edit text streams using patterns gzip File compression utility inetutils includes a command-line FTp utility, ping, and telnet nano a command-line text editor that’s easier to use than vi netatalk support for the apple File protocol; also contains a very useful timeout command for watching runaway scripts rsync a bandwidth-conservative network backup utility network-cmds contains traceroute and netstat, both useful for network debugging shell-cmds Gives you the time, which, and killall commands, that are useful for script debugging erica’s Utilities a collection of great command-line tools (more info at http://ericasadun.com/ftp/ericaUtilities) sQLite v3 an application that can manipulate the database used by the phone chapter 11 - TURn coMManD-Line scRipTs inTo iphone apps
283
openssh and bash are required. Both should be installed by default when you jailbreak the phone [Hack #1.03].
hello World First, let’s get our feet wet. ssh into your iphone [Hack #9.04] and log in as root (default). now create a test script. (# represents the root prompt, which is where you type commands. in these examples don’t type the #. another thing to look out for is ^D. instead you should press control-D. Don’t type ^D literally.) # cat > test.sh echo "Hello World" ^D # chmod 777 test.sh # ./test.sh Hello World #
We just created a ile using the cat command; it’s a bit easier to use a command-line text editor such as nano, which you can invoke with: # nano test.sh
Figure 11-1 shows the nano editor in action.
Figure 11-1. The nano editor in action
as mentioned in [Hack #9.06], you can edit text iles from your computer by mounting the iphone ilesystem, if you prefer.
Backup Locally now let’s test a more useful script. perhaps you want to back up your call log? it’s located here: /private/var/mobile/Library/CallHistory/call_history.db
284
iphone hacks
HACK # 11.01 You can make a one-line script using the gzip and date commands to make a time-stamped backup. create a ile called calllogbackup.sh with: gzip -c /private/var/mobile/Library/CallHistory/call_history.db > \ /private/var/mobile/Library/CallHistory/call_history_`date +%Y%m%d_%H%M%S`.db.gz
now you can test this backup: # chmod 777 calllogbackup.sh # ./calllogbackup.sh # ls -l /private/var/mobile/Library/CallHistory/ total 136 -rw-r--r-- 1 mobile mobile 101376 Feb 15 12:17 call_history.db -rw-r--r-- 1 root
mobile
36619 Feb 15 12:46 call_history_20090215_124637.db.gz
Back Up to a Server in [Hack #9.04] we showed how to upload a ile to a server from your iphone. We’ll build on that now by creating a time-stamped backup of your call log and uploading it to the server. edit calllogbackup.sh and replace its contents with the following (changing the username and domain to match your system): backup=/private/var/mobile/Library/CallHistory/call_history_`date +%Y%m%d_%k%M%S`.db cp /private/var/mobile/Library/CallHistory/call_history.db $backup echo backing up call_history.db to $backup.gz gzip $backup echo uploading $backup.gz to the server scp $backup.gz [email protected]:~/
now test it: # ./calllogbackup.sh backing up call_history.db to /private/var/mobile/Library/CallHistory/call_ history_20090215_170737.db.gz uploading /private/var/mobile/Library/CallHistory/call_history_20090215_170737. db.gz to the server call_history_20090215_170737.db.gz
100%
36KB
35.8KB/s
00:00
Great! We’ve got a one-line script that backs up the call log. You could run this from MobileTerminal [Hack #9.05] on your phone, but it would be more convenient to have an iphone application simply run your script.
Wrap the Backup in an application We don’t want to do a bunch of development (we’re scripting here), so we’re going to take an existing application, copy it, and put our script inside. on the iphone, applications are stored in bundles, which are simply folders, usually with an .app extension. We’ll use the application respring [Hack #11.12] (Figure 11-2) from cydia as our template. respring is also how we’ll make our new application show up in springBoard.
chapter 11 - TURn coMManD-Line scRipTs inTo iphone apps
285
Figure 11-2. respring
ssh over to your iphone and you’ll be able to see Respring.app in /Applications/: # cd /Applications # ls AppStore.app/
FieldTest.app/
MobileSMS.app/
Stocks.app/
BootNeuter.app/
Insomnia.app/
MobileSafari.app/
TVOut.app/
BossPrefs.app/
Installer.app/
MobileSlideShow.app/
Weather.app/
Calculator.app/
Maps.app/
MobileStore.app/
Web.app/
CallBackup.app/
MobileAddressBook.app/
MobileTimer.app/
YouTube.app/
CallLog.app/
MobileCal.app/
PdaNet.app/
biteSMS.app/
Cycorder.app/
MobileMail.app/
Podcaster.app/
iCallBR.app/
Cydia.app/
MobileMusicPlayer.app/
Preferences.app/
siax.app/
DemoApp.app/
MobileNotes.app/
Respring.app/
Documents/
MobilePhone.app/
ScreenSplitr.app/
Make your own app bundle using the Respring.app bundle: # cp -R Respring.app/ CallBackup.app # cd CallBackup.app # ls -l total 124 -rw-r--r-- 1 root staff 97332 Feb 15 17:19 Default.png -rw-r--r-- 1 root staff -rw-r--r-- 1 root staff
778 Feb 15 17:19 Info.plist 6770 Feb 15 17:19 icon.png
-rwxr-xr-x 1 root staff 13616 Feb 15 17:19 respring*
inside the bundle are four iles. if you’ve mounted your iphone on your computer, you can “show package contents” (Figure 11-3) on callBackup (Figure 11-4) to see what’s inside. on Windows, just open the directory. •
Default.png is the image you’ll see when you launch the app.
•
Info.plist deines the name of the application. icon.png is the icon that shows up in springBoard. respring, in this case, is the executable.
• •
286
iphone hacks
HACK # 11.01 Figure 11-3. show package contents
Figure 11-4. contents of callBackup
The minimum necessary changes are to replace the executable and edit the text-based plist. copy your calllogbackup script into the CallBackup.app directory and delete the ile named respring: # cp ~/calllogbackup.sh . # rm respring
next, edit the plist using a plist editor or a text editor [Hack #11.02]. (on a Mac, choose “open hidden” to open the plist from inside an application bundle, or drag the iles out of the bundle to edit them.) Minimal necessary changes are bolded:
CFBundleCopyright Perceptive Development CFBundleDevelopmentRegion English CFBundleExecutable calllogbackup.sh CFBundleIdentifier com.perceptdev.calllogbackup CFBundleInfoDictionaryVersion 6.0 chapter 11 - TURn coMManD-Line scRipTs inTo iphone apps
287
CFBundlePackageType APPL CFBundleSignature ???? CFBundleVersion 0.1
We need to run respring to make our new application appear in springBoard. Let’s run it (Figure 11-5). as there’s no application name in this plist, the application name that shows up in springBoard will be the name of the bundle/folder, without the .app: CallBackup.
Figure 11-5. Resprung CallBackup
Set the icon and picture To distinguish your application, you can change the background picture and icon. simply copy the Default.png and icon.png from the CallBackup.app directory to your computer, edit them, and put them back in the application bundle/folder (Figure 11-6). We’re editing the iles in adobe photoshop, then choosing “export for Web and Devices” to create small pnG iles of less than 100k in size.
Figure 11-6. editing Default.png and icon.png in adobe photoshop
When these have been edited and added to the bundle, you can run respring again to see them (Figure 11-7). 288
iphone hacks
HACK # 11.01 Figure 11-7. Final callLogBackup icon and screen (aT&T bill courtesy of David Winer)
handle timeouts Gracefully one thing you will quickly learn is that if you write bad scripts, your script-based iphone application will hang. You can terminate it by holding down the home button for a while [Hack #2.02], but better yet, you can put some error handling in your script. a useful utility called timeout, found at /usr/bin/timeout, is installed as part of netatalk [Hack #9.06]. # /usr/bin/timeout Usage: /usr/bin/timeout [-s signal] seconds program [args]
You can use a numerical signal, or one of these (if you don’t supply a signal, it defaults to TeRM): HUP
INT
QUIT
ILL
TRAP
ABRT
IOT
EMT
FPE
KILL
BUS
SEGV
SYS
PIPE
ALRM
TERM
URG
STOP
TSTP
CONT
CHLD
TTIN
TTOU
IO
XCPU
XFSZ
VTALRM
PROF
WINCH INFO
USR1
USR2
if you put timeout 5 before another command, it will run that command, and then kill it in 5 seconds if it hasn’t already completed. For example: # timeout 5 cat > hang Terminated #
(cat > hang waits for input and would therefore go on forever until the user entered control-D). so to improve our backup script, we’ll add timeouts to hold our backup script. We’ll copy our working script to backup.sh: # cp calllogbackup.sh backup.sh # chmod 777 backup.sh
Then we’ll replace the contents of calllogbackup.sh with the following, which uses `dirname $0` to ind the directory of the script that was launched by the application:
chapter 11 - TURn coMManD-Line scRipTs inTo iphone apps
289
script=`dirname $0` /usr/bin/timeout 60 $script/backup.sh
The bundle should now contain the following iles: # ls -l total 108 -rw-r--r-- 1 root staff 94206 Feb 15 20:09 Default.png -rw-r--r-- 1 root staff
809 Feb 15 17:46 Info.plist
-rwxrwxrwx 1 root staff
334 Feb 15 20:27 backup.sh*
-rwxr-xr-x 1 root staff -rw-r--r-- 1 root staff
21 Feb 15 20:27 calllogbackup.sh* 2267 Feb 15 20:04 icon.png
now we know that our app will eventually quit (after 60 seconds) if it doesn’t succeed.
display result codes as our inal trick, we’d like to know whether our last backup succeeded. in the erica Utilities is a program called “badge” that puts a label on the application icon. You can try it out—you should get the result shown in Figure 11-8: # badge badge application-name (badge) # badge CallBackup hello attempting to badge com.perceptdev.calllogbackup
Figure 11-8. Badge
To ind out what badge to put on our backup application, we need to know whether our backup succeeded. We’ll add several more lines to check the success of our script using the script variable $?, which should contain a zero (0) if our upload was successful. We’ll also add a line to delete any iles that are left over from the backup process. The inal contents of backup.sh are (new lines in bold):
290
iphone hacks
HACK # 11.02 backup=/private/var/mobile/Library/CallHistory/call_history_`date +%Y%m%d_%H%M%S`.db cp /private/var/mobile/Library/CallHistory/call_history.db $backup echo backing up call_history.db to $backup.gz gzip $backup echo uploading $backup.gz to the server scp $backup.gz [email protected]:~/ if [ $? = 0 ] ; then echo "yes" /usr/bin/badge CallBackup Yes else echo "no" /usr/bin/badge CallBackup No fi rm /private/var/mobile/Library/CallHistory/call_history_*
The results of a successful (left) or failed (right) backup are shown in Figure 11-9.
Figure 11-9. indicating script results with an application badge
You can ind the code and applications listed in this hack at www.perceptdev.com/labs/ iphonehacks.
HACK 11.02:
edit Mac OS x property Lists (plists)
You can edit iphone coniguration settings stored in property lists. The basic way to change many settings on iphone is to edit property lists, or plist iles. often they’re stored in an easy-to-edit text format, but sometimes they’re stored in a smaller binary format. To edit a plist ile, you need to copy the ile from your iphone [Hack #1.05], or mount your iphone on your computer [Hack #9.06]. if you’re using Windows and not using a shell, then just copy the ile over to your computer using your preferred method. For this example, we’re going to edit a common iphone preference ile by copying it to our desktop using scp in a terminal program on Mac os X:
chapter 11 - eDiT Mac os X pRopeRTY LisTs (pLisTs)
291
$ scp [email protected]:/User/Library/Preferences/com.apple.Preferences.plist . com.apple.Preferences.plist
100%
214
0.2KB/s
00:01
(You’ll need to replace 192.168.1.109 with your iphone’s ip address.) if you’ve installed the developer tools on Mac os X, there is a program in /Development/ Application/Utilities/ called property List editor. For binary plists such as com.apple.Preferences. plist, this is the only way to edit the ile. if you’ve done registry editing on a Windows pc, the concept is similar; preferences are stored in hierarchical lists of labeled data. You can see the com.apple.Preferences.plist ile being edited in property List editor in Figure 11-10.
Figure 11-10. property List editor
tweaking a property List as an example of changing a feature, we’re going to enable emoji—Japanese emoticons for chat— by adding a preference key. click add item and add a key called keyboardemojieverywhere, make it a boolean, and check the box next to it (Figure 11-11). next, change keyboardLastchosen to emoji.
Figure 11-11. enabling emoji with property List editor
292
iphone hacks
HACK # 11.02 once you’re done, copy it back to the iphone (you can type the command all on one line, but you must omit the backslash, \). also be sure to replace 192.168.1.109 with your iphone’s ip address: $ scp ~/Desktop/com.apple.Preferences.plist \ [email protected]:/User/Library/Preferences/com.apple.Preferences.plist 100%
244
0.2KB/s
00:00
editing on non-Mac platforms if you’re on Windows, Linux, or the iphone itself, you won’t have property List editor. But there are still some solutions. There is a command-line utility called plutil that is part of erica’s Utilities [Hack #11.01], and can convert back and forth between binary and text formats. You can convert the .plist you want to edit to XML format, edit it in the text editor of your choice (even on the iphone), then convert back to binary for use. it overwrites the original ile, but nondestructively; you can convert it back. To do this, you need to learn the syntax of plist iles, but they’re not too hard to igure out. To convert a binary .plist to XML format for editing, type this in the Terminal on the iphone: # plutil -cxml1 /User/Library/Preferences/com.apple.Preferences.plist Converting /User/Library/Preferences/com.apple.Preferences.plist to XML
here are the contents of /User/Library/Preferences/com.apple.Preferences.plist:
KeyboardAutocapitalization 1 KeyboardAutocorrection 1 KeyboardCapsLock 1 KeyboardEmojiEverywhere
KeyboardLastChosen emoji KeyboardPeriodShortcut 1 UISuspendedSettings
To convert an XML plist ile to binary so that the iphone will recognize it: # plutil -cbinary1 /User/Library/Preferences/com.apple.Preferences.plist Converting /User/Library/Preferences/com.apple.Preferences.plist to binary
chapter 11 - eDiT Mac os X pRopeRTY LisTs (pLisTs)
293
if you want to edit binary plist iles on Windows, you can ind Windows-based plist editing utilities such as pledit.exe (http://iphone.cazisoft.com/?p=569, Figure 11-12) and plist editor for Windows (www.ipodrobot.com, Figure 11-13).
Figure 11-12. pledit.exe
Figure 11-13. plist editor for Windows
HACK 11.03:
create periodic tasks that run in the Background Your iphone and ipod touch can execute programs on a schedule or when triggered by certain events. every operating system has a method of running “daemon” tasks in the background, as well as running scheduled tasks. if you want to turn an iphone into a simple webcam, upload your position to a web server, or automatically back up some of your iphone iles to the cloud, you’ll need to know how to schedule tasks on Mobile Mac os X. on Unix/Linux, the rc.d scripts, inetd, and cron systems run startup scripts, network services, and recurring tasks, respectively. on Microsoft operating systems, the Windows registry enumerates 294
iphone hacks
HACK # 11.03 services and scheduled Tasks, both of which can be managed by control panels of the same name. on Mac os X, and thus on the iphone, these functions are gathered together under a system managed by launchd.
Getting to Know launchd naturally, background tasks, like background processes, are not a user-accessible feature of the iphone without jailbreaking. once you’ve jailbroken your iphone or ipod touch, you can ssh in or mount the ilesystem, and take a look at the various launch system-wide daemons and per-user agents. apple provides decent documentation on launchd: •
• •
http://developer.apple.com/technotes/tn2005/tn2083.html provides an excellent overview and good deinitions of terms. http://tinyurl.com/launchd2 describes how to create a launchd plist ile. http://tinyurl.com/launchd documents the launchd plist ile structure, which lists the paths in Table 11-1.
Table 11-1 launchd paths, from the launchd.plist(5) man page
/System/Library/LaunchDaemons
Mac os X system-wide daemons
/Library/LaunchDaemons
system-wide daemons provided by the administrator
/System/Library/LaunchAgents
Mac os X per-user agents
/Library/LaunchAgents
per-user agents provided by the administrator
~/Library/LaunchAgents
per-user agents provided by the user
LaunchDaemons are run during boot, and Launchagents run after a speciic user logs in. While technically /System/Library/ is reserved for the system, you can put your launchd scripts in there and they will work. in this hack, we’ll store them in /Library/LaunchDaemons, just because it’s less crowded in that directory. You can connect to your iphone and check out the existing LaunchDaemons: $ cd /System/Library/LaunchDaemons $ ls com.apple.AOSNotification.plist com.apple.graphicsservices.sample.plist com.apple.AddressBook.plist
com.apple.iapd.plist
com.apple.BTServer.plist
com.apple.itunesstored.plist
com.apple.CommCenter.plist
com.apple.locationd.plist
com.apple.CrashHousekeeping.plist
com.apple.mDNSResponder.plist
com.apple.DumpBasebandCrash.plist
com.apple.mDNSResponderHelper.plist
com.apple.DumpPanic.plist
com.apple.mediaserverd.plist
com.apple.MobileFileIntegrity.plist
com.apple.mobile.lockbot.plist
com.apple.ReportCrash.DirectoryService.plist
com.apple.mobile.lockdown.plist
com.apple.ReportCrash.Jetsam.plist
com.apple.mobile.obliteration.plist
com.apple.ReportCrash.SafetyNet.plist
com.apple.notifyd.plist
com.apple.ReportCrash.SimulateCrash.plist
com.apple.powerlog.plist chapter 11 - cReaTe peRioDic Tasks ThaT RUn in The BackGRoUnD
295
com.apple.ReportCrash.plist
com.apple.securityd.plist
com.apple.SCHelper-embedded.plist
com.apple.stackshot.server.plist
com.apple.SpringBoard.plist
com.apple.syslogd.plist
com.apple.aslmanager.plist
com.apple.tcpdump.server.plist
com.apple.chud.chum.plist
com.apple.update.plist
com.apple.chud.pilotfish.plist
com.apple.usbptpd.plist
com.apple.configd.plist
com.jft.pn.plist
com.apple.daily.plist
com.saurik.Cydia.Startup.plist
com.apple.dataaccess.dataaccessd.plist
com.saurik.afpd.dns-sd.plist
com.apple.datamigrator.plist
net.sourceforge.netatalk.afpd.plist
com.apple.fairplayd.plist
org.iphone-dev.yellowsn0w.plist
creating a recurring task with launchd launchd provides for both background-service daemons and repeating tasks; they differ only in how you write the plist. The easiest way to see how this works is to create a simple script and run it. For this example, we’ll assume you have erica’s Utilities installed (using cydia), so you can invoke the play command. connect to your iphone and type: $ /usr/bin/play /System/Library/Frameworks/UIKit.framework/Tink.aiff
You should hear a “tink” sound. if so, create a text ile called com.perceptdev.tink.plist (either run nano on the command line, or create the ile on your computer and copy it over) and enter the following script, which you can download from www.perceptdev.com/labs/iphonehacks.
Disabled
Label com.perceptdev.tink ProgramArguments
/usr/bin/play /System/Library/Frameworks/UIKit.framework/Tink.aiff
RunAtLoad
StartInterval 10 WatchPaths
296
iphone hacks
HACK # 11.03 save this ile in /Library/LaunchDaemons/. now load it into launchd by running the following command: launchctl load /Library/LaunchDaemons/com.perceptdev.tink.plist
You should now hear a tink every 10 seconds. hurray! You’ve created a background task. To turn off the task, unload it: launchctl unload /Library/LaunchDaemons/com.perceptdev.tink.plist
protect Your tasks with timeout as mentioned in [Hack #11.01], the /usr/bin/timeout utility acts as a monitor to kill a hung or runaway process. if a background task ever hangs, launchd may not run it any more. Thus, your recurring task must be responsible for shutting itself down without hanging. We’ll put a timeout before our task (as shown in bold):
Disabled
Label com.perceptdev.tink ProgramArguments
/usr/bin/timeout 3 /usr/bin/play /System/Library/Frameworks/UIKit.framework/Tink.aiff
StartInterval 10 WatchPaths
save this ile in /Library/LaunchDaemons/. now load it by running the following command: launchctl load /Library/LaunchDaemons/com.perceptdev.tink.plist
Make sure you hear your tink every 10 seconds again. if you don’t, verify that the exact /usr/bin/ play command you have in the script works on the command line. Try launching the launchd script again manually. Then, you can test if it comes up automatically on reboot. power down your phone, power it up, and listen. The tink sound should start after the phone fully boots.
chapter 11 - cReaTe peRioDic Tasks ThaT RUn in The BackGRoUnD
297
as before, you can turn it back off with: launchctl unload /Library/LaunchDaemons/com.perceptdev.tink.plist
debugging launchd scripts if you’re testing many different versions of your script, it’s sometimes easier to put all the commands in a script in /var/root/ and call this script in your launchd task. so we’ll put in this:
Disabled
Label com.perceptdev.tink ProgramArguments
/var/root/tink.sh
StartInterval 10 WatchPaths
if your script isn’t working correctly, you can do rudimentary debugging by adding print statements to a log ile you create. This is done by “echoing” into your logile., as shown in /dev/ root/tink.sh: echo starting script >>/var/root/debug.log date >>/var/root/debug.log /usr/bin/timeout 3 /usr/bin/play /System/Library/Frameworks/UIKit.framework/Tink.aiff
Don’t forget to make tink executable: # chmod 777 /var/root/tink.sh
Then you can check out your logile: # cat debug.log starting script Mon Feb 16 22:04:19 PST 2009 starting script Mon Feb 16 22:04:29 PST 2009 starting script
298
iphone hacks
HACK # 11.03 Mon Feb 16 22:04:39 PST 2009 starting script Mon Feb 16 22:04:49 PST 2009 #
While developing and testing scripts, you may want to set a high update frequency, such as once a minute, and then look in the ilesystem to read your logile to see how things are going. once you have your script working how you want it, you may want to monitor it for a few days to make sure that it survives phone reboots, phone calls, and various other conditions. a simple way to know whether your script is running is to have it play a unique sound whenever it runs. You can upload any sound you want to into /var/mobile/Media/ and use erica’s play utility to play it from your script: /usr/bin/timeout 3 /usr/bin/play /var/mobile/media/Unique.aiff
When you hear your sound, you know your script has at least run. if your script ever stops running inexplicably, chances are that the script, or one of the commands in it, has hung. To check this out, type the following: launchctl list | grep name of your launchd without the plist at the end
such as: # launchctl list | grep com.perceptdev.tink -
0
com.perceptdev.tink
if the result starts with a dash -, you’re ine. But if the process is hung, it will have a process iD as the irst number: # launchctl list | grep com.perceptdev.tink 679
-
com.perceptdev.tink
You can kill this process, and the script should unstick and start working again. You should also then add any appropriate /usr/bin/timeout commands to your script, or igure out why it’s hanging, to prevent this in the future. here’s the kill command: # kill 679
easy launchd plist editing This hack showed you how to edit plists. however, if you’re still learning the launchd syntax, there is an easy graphical utility available for Mac os X called Lingon (http://tuppis.com/lingon) by peter Borg (Figure 11-14). it can be used to view the many example launchd plists on your Mac, and create valid plist iles for your iphone.
chapter 11 - cReaTe peRioDic Tasks ThaT RUn in The BackGRoUnD
299
Figure 11-14. The Lingon plist editor
after you’ve added the basic functions that you want performed and speciied how you want to trigger them, you can click expert Mode on the bottom left of Lingon’s editing panel to see the plist XML that it produces (Figure 11-15).
Figure 11-15. Lingon expert Mode
This output code can be easily copied and pasted into a plist ile for your iphone or ipod touch.
300
iphone hacks
HACK # 11.03
create periodic Backups with launchd The backup script from [Hack #11.02] can be triggered on a schedule so that you don’t have to remember to run your backup program. in this example, create /var/root/backup.sh, and add timeouts in it for safety: backup=/private/var/mobile/Library/CallHistory/call_history_`date +%Y%m%d_%H%M%S`.db /usr/bin/timeout 10 cp /private/var/mobile/Library/CallHistory/call_history.db $backup /usr/bin/timeout 20 gzip $backup /usr/bin/timeout 60 scp $backup.gz [email protected]:~/
create the appropriate repeating task in Lingon (Figure 11-16). select a 24-hour repeat (you could also choose “every day” from the speciic date checkbox and choose a time of day), and check the box to run it at login.
Figure 11-16. creating a repeating task in Lingon
Then save the resulting plist ile as /System/Library/LaunchDaemons/com.perceptdev.callhistory. plist:
Label com.perceptdev.callhistory ProgramArguments
chapter 11 - cReaTe peRioDic Tasks ThaT RUn in The BackGRoUnD
301
/var/root/callarchive.sh
RunAtLoad
StartInterval 86400 WatchPaths
/private/var/mobile/Library/CallHistory/call_history.db
Load it by running the launchctl load command: launchctl load /System/Library/LaunchDaemons/com.perceptdev.callhistory.plist
or simply reboot your phone. either way, you’ll now get an automatic backup of your call history whenever it is modiied.
HACK 11.04:
Manipulate iphone application databases
You can back up and modify built-in iphone application databases with sQLite. although preferences are usually stored in plists, many iphone apps store their application data in sQLite database iles (Figure 11-17).
Figure 11-17. call_history.db
sQL, or structured Query Language, is a database language developed by iBM in the early 1970s. it is now the de facto, universal standard for client-server databases worldwide. sQLite is a highperformance, local database engine that stores its data in iles on disk or lash memory. it has 302
iphone hacks
HACK # 11.04 become a standard tool for storing relational data on Mac os X and is used by most of the built-in iphone applications, such as Mail, calendar, iTunes, phone, and address Book. here is a list of some of the sQLite databases and their locations on the iphone: /Private/var/mobile/Library/CallHistory/call_history.db /Private/var/mobile/Library/AddressBook/AddressBook.sqlitedb /Private/var/mobile/Library/AddressBook/AddressBookImages.sqlitedb /Private/var/mobile/Library/Calendar/Calendar.sqlitedb /Private/var/mobile/Library/Notes/notes.db /Private/var/mobile/Library/SMS/sms.db
a basic tutorial on using sqlite3, a command-line utility for manipulating sqlite databases, can be found at www.sqlite.org/sqlite.html.
Learning SQL if you’ve ever worked with databases such as oracle, Microsoft sQL, or MysQL, sQLite is very similar. it has a smaller subset of commands, because it isn’t designed to serve iles to millions of users over a network—just to a few programs on the same machine. sQL is a simple language used to ask for information from a database. if you haven’t worked with sQL before, it’s okay—it’s not that hard to pick up. For beginners, there’s Head First SQL, by Lynn Beighley (o’Reilly, 2008). a good programmer's book on sQLite in particular is Inside SQLite, by sibsankar haldar.
running SQLite even if you don’t know sQL, you can follow these steps, and you’ll pick up most of what’s going on. First, install sqlite3 in cydia [Hack #1.04] Then log into your iphone [Hack #9.04] and type: # sqlite3 /private/var/mobile/Library/CallHistory/call_history.db sqlite>
You can type .help to get a list of commands. .table shows you what tables (in sQL, data is organized into tables, which are tabular collections of data consisting of rows and columns) are in this database, and .dump will give you several screens worth of information showing the sQL commands to create the whole database, tables, and data entries from scratch. The most common command you’ll need is select, which shows you the contents of tables. You can see what is in each table with select * from