Uncategorized

Use an ipsw to Manually Upgrade an iOS Device

Recently, I needed to test the behavior of something during the upgrade process of an iOS device. The device was running the latest version of iOS so I needed to use an ipsw to load a specific version of the OS. Usually I use Configurator for running a lot of updates, but I didn’t want to restore the device, so I used iTunes. After I backed up the device, here’s what I did:

  • Download the ipsw file from Apple for that specific device
  • Connect the device (make sure Configurator isn’t open, enter a passcode if needed and then launch iTunes
  • Click on the device in iTunes (You might need to show sidebar if you don’t initially see it)
  • Click on the Summary tab
  • Option-Click on Check for Update (Alt-Click on Windows)Screen Shot 2014-08-28 at 11.17.47 AM
  • Select the ipsw previously downloaded
  • When prompted, click Update
  • When the device reboots, wait for the status bar and you should be all done

 

 

Good luck!

Agile

Scrum Master vs Product Manager

giphy-1

 

PS – You have to click on it.

Mac OS X

Use Get Info to See Information About Multiple Files Concurrently in One Screen

When doing a regular get info, you will have a screen (the Inspector) that shows you some basic information about a file or folder. This screen changes as the file changes, so if you were downloading a file, as the download completes, the file displays an ever increasing size. To see this screen, use the Command key and the i key (Cmd + i). If you have multiple objects selected when using the key, you’ll see each show a summary in its own screen.

However, at times you’ll want to see a Summary Info screen, which shows information about multiple selected objects. This screen doesn’t change as the files that are selected change. To see this screen, highlight a number of files and then use the Command, Control and i keys concurrently (⌘^i) to see a screen as follows.

Screen Shot 2014-08-26 at 2.28.30 PM

personal

Crazy Russian Zombie Apocalypse Survival Training

Mac OS X Mac OS X Server Mac Security Mass Deployment

Installing A Java JDK On Beta Versions Of OS X

Open the installation DMG and expand the package so we can edit objects inside the package, done with pkgutil:

pkgutil —expand “/Volumes/JDK 7 Update 67/JDK 7 Update 67.pkg” “/tmp/JDKTEMP.flat”

Next, we’re going to edit that Distribution file, which is what’s checking the OS version, using vi:

vi /tmp/JDKTEMP.flat/Dstribution

Then we’re going to look for the OS version (currently 10.7) in the pm_install section:

Edit OS version to 10.10

Then let’s save the file and then flatten the package, again using pkgutil:

pkgutil —flatten “/tmp/JDKNEW.flat” “/tmp/JDK7.pkg”

Finally fire up the package:

open /tmp/JDK7.pkg

And of course, finish running the installer. Good luck!

Ubuntu Unix

Installing the Docker for OpenStack Heat

Docker is an engine that automates deploying applications as highly portable, self-sufficient containers, independent of hardware, language, framework, packaging system and hosting provider. Heat is the main project used when it comes to OpenStack orchestration. There is a Docker plugin for Heat. To install this plugin, you’ll need to use the stable/icehouse branch (which seems like what’s made the tool so mature rather than simply being available for Nova) to install Heat via apt-get install. Once downloaded, extract the contrib/docker folder and delete the tests directory. Then copy the contrib/docker folder to the OpenStack controller. Here we’ll put it at /usr/lib/heat directory. This results in the path of /usr/lib/heat/docker/docker. Next, install python-pip:

apt-get install python-pip

Then check the installer requirements:

pip install -r requirements.txt

Then edit the heat config, likely at /etc/heat/heat.conf. Here, provide the plugin in the plugin_dirs section as:

/usr/lib/heat/docker/docker

Then reboot and check the resource type listing:

/usr/lib/heat/heat resource-type-list

If you see DockerInc::Docker::Container, you can deploy Docker containers.

Mac OS X Server Mass Deployment

Mobile Device Management Chapter Of Take Control Of OS X Server Now Available

The Mobile Device Management chapter (Chapter 9 if you’re keeping track) of Take Control of OS X Server is now up and available at TidBits.com for TidBits members at http://tidbits.com/article/14967. Hope you enjoy!

TCo OS X Server 1.0 Cover for PDF

Mac OS X Server Mac Security Mass Deployment

Mail Chapter of Take Control of OS X Server Now Available

The Mail Server chapter of the Take Control book is now available up on http://tidbits.com/article/14950. I’m always torn when it comes to writing chapters on setting up mail servers. Is it socially irresponsible to help people potentially (but accidentally) create spam bots…

TCo OS X Server 1.0 Cover for PDF

Mac Security

FOIL

How does he keep doing it?!?!?

Mac Security Mass Deployment MobileMe Network Infrastructure

Network Port Testing With Netcat

You can do some pretty simple testing of ports and network communications using strategies I’ve outlined in the past with tcpdump, trace route, telnet, curl, stroke and of course ping. However, netcat has a few interesting things you can do with it; namely actually run a port super-quickly to test traffic between subnets, forcing scans of ipv6 traffic, debugging sockets, keeping connections alive, parodying through SOCKS 4 and 5 and just checking for daemons that are listening rather than actually sending data to them.

In this first example, we’re going to just check that Apple’s web server is accessible (adding -v for verbose output):

/usr/bin/nc -v www.apple.com 80

The result would be pretty verbose

found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif en0
src 10.10.20.176 port 50575
dst 23.78.138.214 port 80
rank info not available
TCP aux info available

Connection to www.apple.com port 80 [tcp/http] succeeded!
HTTP/1.0 408 Request Time-out
Server: AkamaiGHost
Mime-Version: 1.0
Date: Tue, 29 Jul 2014 15:41:34 GMT
Content-Type: text/html
Content-Length: 218
Expires: Tue, 29 Jul 2014 15:41:34 GMT

<HTML><HEAD>
<TITLE>Request Timeout</TITLE>
</HEAD><BODY>
<H1>Request Timeout</H1>
The server timed out while waiting for the browser’s request.<P>
Reference&#32;&#35;2&#46;48cf4d17&#46;1406648494&#46;0
</BODY></HTML>

If we added a -w to timeout we’ll cut out all the cruft (but wouldn’t know that the server’s at Akamai). Next, we’ll get a little more specific and fire up a test to check Apple’s push gateway at, using port 2195:

/usr/bin/nc -v -w 15 gateway.push.apple.com 2195

But, I want the cruft for the purposes of this article. Next, we can add a -4 to force connections over IPv4 and check the Apple feedback server and port 2196, also required for APNs functionality:

/usr/bin/nc -v -4 feedback.push.apple.com 2196

Right about now, something is probably happening at Apple where they’re getting sick of me sending all this data their direction, so let’s add a -z option, to just scan for daemons, without actually sending any data their way:

/usr/bin/nc -vz -4 feedback.push.apple.com 2196

Because of how NAT works, you might notice that the src port keeps changing (incrementing actually). Here’s the thing, we’re gonna’ go ahead and force our source port to stay the same as our destination port using the -p option:

/usr/bin/nc -vz -4 -p 2196 feedback.push.apple.com 2196

Now, what if this is failing? Well, let’s spin up a listener. I like to start on my own subnet, then move to another subnet on the same network and ultimately to another network so I’m checking zone-by-zone so-to-speak, for such a failure. So, we can spin up a listener with netcat in a few seconds using the -l option on another host:

/usr/bin/nc -l 2196

Then I can scan myself:

/usr/bin/nc 127.0.0.1 2196

I could also do this as a range if I forgot which port I used per host:

/usr/bin/nc 127.0.0.1 2195-2196

Now, as is often the case, if our connection problem is because data isn’t parodying, we can also use nc to check that using the -x operator followed by an IP and then : and a port. For example:

/usr/bin/nc -vz -4 -w 10 -p 2196 -x 10.0.0.2:8080 feedback.push.apple.com 2195-2196

Fun times with push notifications. Enjoy.