Authentic Technical Gibberish

A chocolaty technology blog with a gooey center

Category Archives: Mobile

Viewing Encrypted PDF Documents on iOS 4.3.x Devices

The Context

I recently became a landlord (weird name if you think about it) and I had the need to send pseudo sensitive PDF documents over email to my tenants.  When I send any Personally Identifiable Information (PII) electronically I like to have a small measure of protection rather than just sending over everything “in the clear”.  I say small measure because there are a variety of ways of circumventing PDF encryption.  PDF encryption is analogous to using door knob locks in a house or TSA locks on your luggage,  the goal is to make the target annoying enough that the thief moves on to to something easier.  Once I sent these documents I had the need to view them on my iPhone.

Side Note

I use OS X exclusively for my computing needs and there are many tools for creating encrypted PDF files including the Preview.app.  The best program I have found to do this task, however, is PDFKey Pro.  PDFKey Pro allows you to set fine grained control over how you encrypt the document, what encryption algorithm is used, and how many bits.  PDFKey Pro’s interface is also extremely easy to use.

The Problem

When I viewed the PDF documents on my iPhone I got a blank page!  Of course I went into research mode to try to fix the problem.

The Research

I run a jailbroken iPhone running iOS 4.3.1.  My children, however, run stock iOS on their iPod Touches.  I recently upgraded their iPod’s to iOS 5 so I wanted to see if iOS 5 had this problem and after a quick test it was apparent that it did not.  After some searching on Google I ran into this post which I found intriguing.  Apparently viewing encrypted PDFs used to work on iOS 4.2.x so there was a regression from iOS 4.2.x to 4.3.x.  I am not ready to take the iOS 5 plunge on my iPhone as I am not ready to give up the particular features that I would lose in doing the upgrade.  Luckily I found a free solution and the timing couldn’t have been better.

The Solution

Adobe released their Adobe Reader software for iOS on October 17th, 2011.  After downloading the app from the App Store I opened up the documents easily using the “Open In…” feature of iOS.

Fixing instability on Verizon’s 4G LTE Novatel MiFi 4510L

Update (03/12/2012):

There is a new update to the firmware for the MiFi 4510L.  The newest version is 2.23.  I will report back with my experience with this new version of the firmware.  With the exception of the version number the information below is still valid, including the VZW knuckleheads *still* not getting the permissions correct for OS X.  If you download the latest Verizon Wireless update guide (link below) it contains a link to the latest software.

Update (2/11/2011):

I am back to using the 4G modem again with no issues (besides not automatically switching to 4G when in a 4G coverage area).  I do, however, wish that this modem and Verizon’s 4G network were more stable.  In my previous update I had quite a few weeks of instability in more than a few geographic areas.  I do have co-workers that have this same modem and they do have quite a bit more trouble than I do.  I know of at least two other peers that have Windows machines and their machines momentarily freeze up frequently and repeatedly when connected to this device, but the problem would immediately go away when re-connecting to some local wireless access point.  Since these are not my machines I have not spent any time to diagnose this issue.

Update (12/20/2011):

I have been experiencing issues again with my wireless connection connection to the MiFi 4510L  just dropping for 10-15 seconds and coming back.  Unfortunately this is enough to drop my VPN connection and is a major source of frustration for my colleagues and I.  The device was quite stable for some months after this original blog posting, but is now a major PITA to use.  I am going back into research mode when I have some time to see if I cannot solve the problem…again.

The Context

I typically travel regionally (aka in the car) about 1-2 days per week.  My employer provides me with mobile broadband capabilities so I can perform many of my job functions while I travel.  For the last couple of years I used the venerable Novatel MiFi 2200 wireless hotspot from Verizon and my jailbroken AT&T iPhone running MiWi.  I typically use my iPhone when I am in metropolitan areas because of the superior 3g speeds and I use the 2200 everywhere else.  The 2200 provides a rock solid 3G connection in almost every area I travel in, but it is relatively slow.  To be honest when I heard about the new 4G hotspots from Verizon I was pretty excited.  I had read many reports about phenomenal speeds so when I got an email from Verizon about upgrading my device for free I pounced on the opportunity immediately.  Unlike previous Verizon 3g devices there is no obvious de facto standard for 4g modems.  There are multiple choices like the Samsung SCH-LC11.  Based on my experience with the Novatel 2200 and AnandTech’s review I ordered the Novatel MiFi 4510L.  Within a couple of days I received the modem and quickly configured it similar to how I had the 2200 setup.

The Problem

After setup I started running through some tests.  I downloaded a large file, ran multiple tests on Speedtest,  and streamed some video from Netflix.  I was pretty impressed, but I started to notice a HUGE problem.  The MiFi 4510L would just drop my wireless connection and never come back.  Sometimes the client device would show it was connected, but it couldn’t connect to any host (including the admin interface on the device) and other times the hotspot would kick all the devices off.  This happened to all my devices and not just a particular device.  The first thing I wanted to do was understand if this was a common problem that many users had or just isolated to my device.  This would decide what course of action I should take to try to fix the issue.

The Research

I Googled around a bit and read through some of these forum postings (at least the ones that weren’t complete rubbish):

http://community.vzw.com/t5/Broadband-Netbook-Devices/4G-LTE-4510L-hotspot-mifi-device-won-t-stay-connected/td-p/524976

http://www.evdoforums.com/thread14929.html

It is clear that many people are having the sames issues I was experiencing.  Googling for “novatel mifi 4510l firmware update” I found the instructions to upgrade the firmware.  On September, 6th 2011 Verizon released version 2.16.07, lets see what we have.

The Solution

  • Open up your browser to http://192.168.1.1 and login with a password of “admin”.  If you have changed the IP range and/or password for the device use those values instead
  • Check the version of the firmware of your device, mine was 2.16.03

  • Download the upgrade guide from here and follow the directions.  The upgrade guide includes the locations of the required software to update the modem.

NOTE: I ran into a particular issue on the firmware update program for OS X.  The knuckleheads have incorrect permissions on the executable for the DUU_Verizon_MiFi4510L_FW2.16.07.app.  Checking the Console.app I noticed this in the system.log:

9/13/11 7:38:29.548 AM com.apple.launchd.peruser.501: ([0x0-0x25025].com.novatelwireless.DeviceUpgradeUtility[414]) posix_spawn("/Users/shh/Desktop/DUU_Verizon_MiFi4510L_FW2.16.07.app/Contents/MacOS/NW-DeviceUpgradeUtility", ...): Permission denied

So I fixed the permissions and reran the application and the NW-DeviceUpgradeUtility worked correctly updating the firmware on the hotspot to 2.16.07.

# pwd
 /Users/shh/Desktop/DUU_Verizon_MiFi4510L_FW2.16.07.app/Contents/MacOS

# ls -l
total 8712
-rw-r--r--  1 shh  staff  4458108 Aug 24 00:25 NW-DeviceUpgradeUtility

# chmod 755 NW-DeviceUpgradeUtility
# ls -1
total 8712
-rwxr-xr-x  1 shh  staff  4458108 Aug 24 00:25 NW-DeviceUpgradeUtility

It has been several days now and the device still has some issues switching to 4G when I go into a new area with 4G coverage.  The WiFi functionality, however, is as rock solid as my old 2200.  🙂

Playback file formats on your iPhone that iTunes doesn’t support

The Context

My son and I stayed the night at my mother-n-law’s house and he had a tough go of sleeping somewhere other than his bed. He didn’t sleep anywhere near his normal 10-11 winks and woke up pretty grumpy so after playing with him for a hour I let him have some personal time as I needed to get some work done on my laptop. He came over and wanted to play Aa Match Preschool Alphabet on my Macbook Pro before breakfast. Normally I keep my children’s “screen time” as I call it down to ~ 30 minutes/day, but given the circumstances I gave him my iPhone to watch a show on Netflix. I look over at him and he was trying to understand why he couldn’t play the Pixar film Cars. I did my best to explain to him that some movies are not available to watch instantly (the nerve!). I thought for a moment about what to do and remembered that I had ripped another Pixar movie I had purchased recently called Mater’s Tall Tales. The .avi file was on my laptop so now all I needed to do was get the movie copied over to the iPhone.

The Solution

1st Attempt

I have a jailbroken iPhone 4 running iOS 4.3.1. I am not going to get into how to jailbreak an iPhone in this article as it has been covered many times before on many different blogs, nor will I cover what Cydia is and how to install apps from there. I already had the Netatalk and VLC apps, from the Cydia app store, on my iPhone. VLC is a fantastic video player that handles just about every type of audio and video format. I was excited when I heard that VLC was available for the iPhone from the Apple App Store, but it was soon pulled due to licensing issues. You can, however, still get VLC from Cydia (the app store for jailbroken phones). The Netatalk software turns your phone into a file server so you can easily copy files from any Apple OS based machine to your iPhone*. When you run Netatalk your phone will show up in the OS X Finder application like so:

* One step that MUST be taken after you jailbreak is to change the password (the Mobile Terminal app does not work out of the box, use the Mac or Windows instructions) for the root and mobile user on your phone to prevent unauthorized access.

So I copied the .avi file from my laptop to the /var/mobile/Media directory on my iPhone. Started VLC and started playing the movie. My son was initially happy and sat down next to me to enjoy the show. After a couple of minutes he turned to me and said “Dad, I can’t hear the words.”. Houston we have a problem.

Second Attempt

It turns out that the Dolby Digital 5.1 ac3 stream contained in the .avi was not getting downmixed to 2 channel stereo sound. Without the center channel most of the words could not be heard. I looked for some options for audio for VLC, but I could not find anything useful. So I did some Googling and found another solution. AVPlayer claims to do everything VLC does and more which includes TV out, orientation lock, and downmixing of ac3 streams into stereo. I downloaded the application from the Apple App store and since I already had the .avi file on my iPhone I used iFile to move the file into /var/mobile/Applications/[AVPLayer GUID]/Documents *.

*AVPlayer however has an HTTP and FTP interface for copying files directly to your iPhone and is the recommended method of file transfer. If I had started out using AVPlayer I would have selected this method.

The Result

I started up AVPlayer and tada! Playback was smooth and the audio was downmixed correctly. My son was happy and I could finish up my work before breakfast so we could go on the bike ride that I promised him.