iPhone dev: SMSresponder
I’ve built a perl script to enable SMS remote start of my car. The script checks the SMS database for new messages and if the message meets the criteria, it will send a command out the serial port, log the event and send a reply sms for confirmation.
Everything is done in perl! My script directly reads the SQLite sms database, writes to the serial port via Serial::Device, sends confirmation SMS messages via sendSMS and logs to a log file with a quick and dirty file write routine. I’d like to add a serial port logger for convenient data logging from my hardware interface as well as some feedback info for the reply sms: cabin temperature will be the easiest to add…
First, the phone needed some packages. Here’s my current install list:
iPhone:/var/log root# dpkg --get-selections adv-cmds install apr-lib install apt7 install apt7-key install apt7-lib install apt7-ssl install base install bash install berkeleydb install bzip2 install ch.ringwald.springboardaccess install com.saurik.iphone.ske install com.saurik.substrate.safemode install coreutils-bin install curl install cy+cpu.arm install cy+kernel.darwin install cy+lib.corefoundation install cy+model.iphone install cy+os.ios install cydia install cydia-lproj install darwintools install debianutils install diffutils install diskdev-cmds install dpkg install essential install expat install findutils install firmware install firmware-sbin install gcrypt install git install gnupg install grep install gsc.accelerometer install gsc.all-features install gsc.any-telephony install gsc.app-store install gsc.application-installation install gsc.armv6 install gsc.bluetooth install gsc.cellular-data install gsc.contains-cellular-radio install gsc.gps install gsc.hw-encode-snapshots install gsc.hw-snapshots-need-purplegfx install gsc.international-settings install gsc.location-services install gsc.microphone install gsc.mms install gsc.music-store install gsc.not-green-tea install gsc.opengles-1 install gsc.peer-peer install gsc.proximity-sensor install gsc.ringer-switch install gsc.sms install gsc.stand-alone-contacts install gsc.still-camera install gsc.telephony install gsc.telephony-maximum-generation install gsc.unified-ipod install gsc.voip install gsc.volume-buttons install gsc.wifi install gsc.youtube install gsc.youtube-plugin install gzip install jp.ashikase.mousesupport install jpeg install libgpg-error install libstatusbar install libvncserver install lzma install minicom install mobilesubstrate install ncurses install openssh install openssl install org.thebigboss.repo.icons install p5-archive-extract install p5-archive-tar install p5-archive-zip install p5-attribute-handlers install p5-autodie install p5-autoloader install p5-b-debug install p5-b-lint install p5-bignum install p5-cgi.pm install p5-class-isa install p5-compress-bzip2 install p5-compress-raw-bzip2 install p5-compress-raw-zlib install p5-constant install p5-cpan install p5-cpan-checksums install p5-cpan-meta-yaml install p5-cpanplus install p5-cpanplus-dist-build install p5-data-compare install p5-data-dumper install p5-db-file install p5-dbd-sqlite install p5-dbi install p5-devel-ppport install p5-device-serialport install p5-digest install p5-digest-md5 install p5-digest-sha install p5-encode install p5-encode-locale install p5-encoding-warnings install p5-exporter install p5-extutils-cbuilder install p5-extutils-command install p5-extutils-install install p5-extutils-makemaker install p5-extutils-manifest install p5-extutils-parsexs install p5-fcgi install p5-file-fetch install p5-file-find-rule install p5-file-homedir install p5-file-listing install p5-file-path install p5-file-remove install p5-file-temp install p5-file-which install p5-filter install p5-filter-simple install p5-getopt-long install p5-html-parser install p5-html-tagset install p5-http-cookies install p5-http-daemon install p5-http-date install p5-http-message install p5-http-negotiate install p5-http-tiny install p5-io install p5-io-compress install p5-io-zlib install p5-ipc-cmd install p5-ipc-run3 install p5-ipc-sysv install p5-json install p5-json-pp install p5-lib install p5-libnet install p5-libwww-perl install p5-locale-codes install p5-locale-maketext install p5-locale-maketext-simple install p5-log-message install p5-log-message-simple install p5-lwp-mediatypes install p5-math-bigint install p5-math-bigint-fastcalc install p5-math-bigrat install p5-math-complex install p5-mime-base64 install p5-module-build install p5-module-corelist install p5-module-install install p5-module-load install p5-module-load-conditional install p5-module-loaded install p5-module-pluggable install p5-module-scandeps install p5-module-signature install p5-net-http install p5-next install p5-number-compare install p5-object-accessor install p5-par-dist install p5-params-check install p5-parse-cpan-meta install p5-pathtools install p5-pod-escapes install p5-pod-parser install p5-probe-perl install p5-safe install p5-storable install p5-switch install p5-sys-syslog install p5-term-ansicolor install p5-term-ui install p5-test-harness install p5-test-script install p5-test-simple install p5-text-balanced install p5-text-glob install p5-tie-refhash install p5-time-local install p5-time-piece install p5-unicode-collate install p5-unicode-normalize install p5-uri install p5-version install p5-www-robotrules install p5-xsloader install p5-yaml install p5-yaml-libyaml install p5-yaml-syck install p5-yaml-tiny install pam install pam-modules install pcre install perl install perl-base-modules install preferenceloader install profile.d install readline install saurik install sed install sendsms install shell-cmds install system-cmds install tar install top install uikittools install ultrasn0w install veency install vim install
I highly reccommend installing apt strict – you can install needed packages via apt-get install bleh on the command line.
I’m still tweaking the script, but the first working version loads on phone startup vi starup plist. So far it seems to be somewhat robust. Testing will tell.