Category Archives: iphone

iphone4 and 802.11n

hey folks,

couple of days ago i was wondering why my new access point was so lame (transmitting some big files through wifi). so i’ve decided to tweak it a little bit up and use the 5ghz band. it was really a improvement for large file transmissions, because my environment here is full of disturbers. but, i was really pissed-off as i noticed that my iphone was unable to connect to my network anymore. yeah, iphones are 802.11n ready, but only with 2.4ghz 🙁

here i have some links for you …

iphone 4 has 802.11n, but not the “awesome” 802.11n
which is better: 802.11n 2.4 ghz or 5 ghz?
802.11n 2.4 ghz vs. 5 ghz

finally – tethering with usb

hey folks!

after a lot of unsuccessful tries finally there is a solution! if you want to connect your ubuntu with a iphone 3gs to the internet look at this site!

but here a short overview:

  • add following repository: “add-apt-repository ppa:pmcenery/ppa”
  • run “apt-get update”
  • install following packages: “gvfs ipheth-utils”

that should be enough, so you can plug your activated iphone to the usb and your network-manager will show you a new wired network interface.

so, happy surfing with your iphone 😉

iphone upgrade with vmware under ubuntu

as you have read on this page before, it is possible to upgrade an iphone under ubuntu with vmware. BUT, as i’ve read on this page, it is easier as you think! here is my actually setup …

  • iPhone 3G 8Gb
  • ubuntu 9.10 (karmic) on lenovo t61p, kernel 2.6.31-19-generic
  • vmware workstation 6.5.3 build-185404
  • guest: winxp professional sp3 with itunes 9.0.3.15

what has to be done?

1. create a file /etc/modprobe.d/blacklist-usb.conf

2. add usb modules not to be loaded into that file

blacklist snd_usb_audio
blacklist usbhid

3. reload kernel event manager for the changes to take effect

reload udev

4. restart vmware and make sure you also restart windows in vmware

5. now start iphone software update in itunes

6. after update is complete, you can remove the blacklist file and restart kernel event manager again

note that during firmware update iphone might get disconnected – just connect it again using vmware removable devices menu.

wish you happy upgrading!!!

iphone application programming – videos

here you gonna get this …

Tools and APIs required to build applications for the iPhone platform using the iPhone SDK. User interface designs for mobile devices and unique user interactions using multitouch technologies. Object-oriented design using model-view-controller pattern, memory management, Objective-C programming language. iPhone APIs and tools including Xcode, Interface Builder and Instruments on Mac OS X. Other topics include: core animation, bonjour networking, mobile device power management and performance considerations.

Prerequisites: C language and programming experience at the level of 106B or X. Recommended: UNIX, object-oriented programming, graphical toolkits

Offered by Stanford’s School of Engineering, the course will last ten weeks and include both the lecture videos and PDF documents. A new lecture will be posted each Wednesday and Friday.  Subscribe to this course, and automatically receive new lectures as they become available.

access pictures on my meschiphone over usb

hi folks!

i have had a little bit of time today, so i was experimenting with my iphone. i wanted to gain access to the pictures on it without jailbraking [1]. and, clear and brief, it works! here are the necessary steps [2,3] on a ubuntu system …

  • install libplist [4]
      
      getting the sources:
        git clone git://github.com/JonathanBeck/libplist.git
      
      installing necessary packages (on ubuntu/debian systems):
        apt-get install build-essential cmake libglib2.0-dev libxml2-dev \
                        python-dev swig
      
      to compile run:
        mkdir build
        cd build
        cmake ..
        make && make install
      
      linking the libplist:
        cd /usr/lib
        ln -s /usr/local/lib/libplist.so.0.0.10 .
        ln -s libplist.so.0.0.10 libplist.so.0
        ln -s libplist.so.0 libplist.so
      
  • install libiphone (first the old one [3], and then the new one [2,5])
      
      getting the sources of the old version (necessary for libiphone-initconf):
        git clone http://git.matt.colyer.name/2008/libiphone/
      
      installing necessary packages (on ubuntu/debian systems):
        apt-get install build-essential automake autoconf libtool libgnutls-dev \
                        libusb-dev libfuse-dev libglib2.0-dev libxml2-dev \
                        libreadline5-dev
      
      to compile run:
        ./autogen.sh
        ./configure
        make && make install
      
      and now everything again with the new version (its the simpliest way):
        git clone git://github.com/MattColyer/libiphone.git
  • install ifuse [6]
      
      getting the sources:
        git clone git://github.com/MattColyer/ifuse.git
      
      installing necessary packages (on ubuntu/debian systems):
        apt-get install build-essential automake autoconf \
                        libfuse-dev libglib2.0-dev
      
      to compile run:
        ./autogen.sh
        ./configure
        make && make install
  • start libiphone-initconf [2,3]
      
      run their utility to generate keys for iphone communication as the user
      you want to connect later:
        libiphone-initconf
  • mount the iphone [2,3]
      
      mount the iphone’s root filesystem including the media partition:
        mount.fuse.ifuse -afc2 none /media/iPhone
      
      or mount the iphone’s media partition only:
        mount.fuse.ifuse none /media/iPhone

if you want it in a automatic way, do the following:

  • edit /etc/fstab
      
      add following line:
        none /media/iPhone fuse.mount.fuse.ifuse rw,nosuid,nodev,afc2,allow_other 0 0
  • edit /etc/hal/fdi/preprobe/10-iphone.fdi
      
      write those lines into the file:
      
      <?xml version="1.0" encoding="UTF-8"?>
      <deviceinfo version="0.2">
        <device> 
          <match key="usb.vendor_id" int="05ac">
            <match key="usb.product_id" int="1292">
              <merge key="info.ignore" type="bool">true</merge>
            </match>
          </match>
        </device>
      </deviceinfo>

after those steps its very easy: plugin the usb-cable and for example nautilus will show you a “Apple, Inc. iPhone” device. if you want to see all the information i used to setup everything right, here are some links:

[1] ifuse main page
[2] easy installing
[3] older references
[4] github libplist
[5] github libiphone
[6] github ifuse

my new iphone, no brick anymore

hello!

i made it … upgrading the iphone out of a vmware win-xp guest system works.

  • my host machine: Linux meschmobile 2.6.27-9-generic #1 SMP Thu Nov 20 22:15:32 UTC 2008 x86_64 GNU/Linux; Ubuntu 8.10
  • the vmware:  VMware® Workstation 6.5.1 build-126130
  • the guest machine: Win XP SP3

now, how it works: start the upgrade process out of the itunes. the first initial process works out of the box, but after the first longer progress bar at itunes, you will see that your iphone gets also a progress bar. this is the time you maybe see some popup’s at your host-system with following error: “Unable to mount Apple, Inc. iPhone Error initializing camera: -1: Unspecified error”

now hurry up and start a console. if you look after your loaded modules, you will see, that there are a lot more usbmodules than before. type following two commandos as root (or use sudo):

rmmod usbhid snd_usb_audio

rmmod snd_usb_lib

back to the vmware, and “reconnect” the phone. you won’t see a usb-symbol anymore, its now a loudspeaker-symbol! Disconnect it – and afterwards connect it immediately! Haven’t tried to plug in and out the usb-cable… think, it would be the same (but caution, the host system could reinitiate the usb-modules again).

after a couple of seconds, the iphone starts the upgrade … and the progress bar rises up!!! 😎