Random Thoughts – Randocity!

How to set creation file time on MacOS X

Posted in howto, Mac OS X by commorancy on October 23, 2023

close up photo of programming of codes

Recently, I downloaded a bunch of mp4 videos from my PS4 to create some longer form videos for YouTube with iMovie. Unfortunately, the files copied from the PS4 did not retain the original creation date and time. I was bummed because iMovie uses the creation date to sort the video clips stored in its import library.

I’m pretty sure that the PS4 stores this information with the file in the BSD operating system used on the PS4. For whatever reason, this information is lost and is not retained when copying these video files to a USB drive.

Instead, the PS4 creates the files using the current date and time of when they were copied to USB. However, the filename does includes the date and time of the PS4’s original file creation date. All is not lost. For example, one of the files is named “Grand Theft Auto V_20231021102822.mp4.” The 20231021102822 is the file’s original creation date, but it’s embedded in the filename. This is a pain in the ass, especially when you have a lot of these files and you need to depend on sorting the files by creation date.

If you’re using Linux, some of this may apply with touch, but some may not. For example, it may not be possible to set the birth time or btime in Linux. Then again, you won’t be using iMovie on Linux, so you may not encounter the same sorting problems as when using iMovie. On Linux, you’re likely to be using ShotCut. And yes, ShotCut is available for MacOS X.

Let’s explore recovering and setting the original creation date and time for these imported PS4 video files when using a Mac.

Before Getting Started / Liability Waiver / Assumption of Risk

This is a relatively deep dive tutorial and is designed for intermediate to experienced users who are comfortable running command line tools in UNIX, Linux and MacOS X. This article also expects that you are at least somewhat experienced and familiar with writing Bash shell scripts. While every care has been taken to ensure these instructions are fully accurate at the time of authorship, risk is always a possibility when running commands. Make sure you know what you’re doing and always proceed with caution when performing any shell commands.

Assumption of Risk: Should you follow any instructions provided in this tutorial, you do so at your own risk. This author and the Randocity blog holds no responsibility for how you use and/or misuse the information provided herein NOR does this author or Randocity hold any liability over any damage that may result directly or indirectly from this article’s included information. This information is provided to you AS IS. You assume all risks herein.

By proceeding with reading the remainder of this article, you agree to these terms. If you don’t agree with these terms, then navigate away NOW and go find something else to do.

Recovering Dates and Times on Files

There are two primary date/times stored as metadata with each file: creation date and last modified date. While it’s easy to set the last modification date using the ‘touch‘ command, this same command cannot be used to set the file’s creation time. Pity.

That left me looking for alternatives. If you have installed the command line development tools from Mac OS’s Xcode, there are a couple of handy command line (CLI) tools available to help with this date-setting task. These two tools are getfileinfo and setfile. Unfortunately, it seems that while the commands do get installed with Xcode, the manual pages (man pages) do not get installed. Thus, you can’t easily see or find the parameter usage of the command.

I had to refer to searching Google for the man pages for these two. Here’s the man page for getfileinfo. Here is the man page for setfile. These two commands will help get you started. If you don’t have these commands installed, you’ll need to install the Xcode command line tools.

First Step

Setting the last modification time from the above filename supplied is relatively easy by extracting the filename’s included datecode, slightly modifying it and feeding it back into the command ‘touch‘ to set the last modification date onto the file. Here’s a shell script which does just this on all files in the current directory:

#!/bin/bash
#
# setmodificationdate.sh

# FILE: "Grand Theft Auto V_20231021102822.mp4"
# DATECODE EXAMPLE: 20231021102822 => 202310211028.22

# Set IFS delimiter to EOL marker to ignore whitespace in filenames
IFS="
"

# Loop through files in current directory and update each file's last modification
# time to ${DATECODE}.${DATESS} using touch -mt [date]
for i in `ls`
do
	FILE=$i
	DATECODE=`echo "${FILE}" | awk '{print $4}' | awk -F "_" '{print $2}' | cut -c 1-12`
	DATESS=`echo "${FILE}" | awk '{print $4}' | awk -F "_" '{print $2}' | cut -c 13-14`

        # The touch command requires the date format to be YYYYMMDDHHMM.SS. Some
        # conversion is required.
	if [ $DATECODE ]; then
		touch -mt ${DATECODE}.${DATESS} "$FILE"
                echo $FILE ${DATECODE}.${DATESS} done 
	fi

done

The reason it’s important to update the files using the touch command first is that we’ll later use the getfileinfo command on these updated files to extract the modification date set with touch, making it easier to extract the date format which is used by the setfile command. Otherwise, if we don’t do this, we’ll have to spend a boatload of time reformatting that 20231021102822 string into the string format required by setfile. No, thanks.

Because I’m generally lazy when I see other easier formatting alternatives, I don’t wish to spend a full day of shell scripting on reformatting strings when I don’t have to. Since both the last modification and creation dates should be set identically, using two different commands is the easiest way to get these files back to their original dates.

Second Step

After having updated the last modification date of each of the video files using ‘touch‘, we’re halfway there. The other half is updating the creation date using the ‘setfile‘ command. Right now, even though the modification date is updated, the creation date is still set to the date and time when the file was copied from the PS4 onto the USB drive. I’m still at a loss why PS4’s Capture app does this. No reason to dwell on stupidity from Sony. Let’s move on.

If you would like to see the current creation date on the files, check it with following command:

$ ls -lhU
-rwxrwxrwx 1 owner staff 334M Oct 21 20:10 Grand Theft Auto V_20220826114603_1.mp4
-rwxrwxrwx 1 owner staff 452M Oct 21 20:05 Grand Theft Auto V_20220918194930_1.mp4
-rwxrwxrwx 1 owner staff 390M Oct 21 20:04 Grand Theft Auto V_20220922235359_1.mp4
-rwxrwxrwx 1 owner staff 398M Oct 21 20:04 Grand Theft Auto V_20221002025349_1.mp4
-rwxrwxrwx 1 owner staff 347M Oct 21 20:03 Grand Theft Auto V_20221007034124_1.mp4
-rwxrwxrwx 1 owner staff 389M Oct 21 20:03 Grand Theft Auto V_20221013095807_1.mp4
-rwxrwxrwx 1 owner staff 1.3G Oct 21 20:00 Grand Theft Auto V_20221022131151_1.mp4
-rwxrwxrwx 1 owner staff 342M Oct 21 20:00 Grand Theft Auto V_20221113174109_1.mp4
-rwxrwxrwx 1 owner staff  55M Oct 21 20:00 Grand Theft Auto V_20221124014001_1.mp4
-rwxrwxrwx 1 owner staff 389M Oct 21 19:59 Grand Theft Auto V_20221211111225_1.mp4
-rwxrwxrwx 1 owner staff 288M Oct 21 19:59 Grand Theft Auto V_20221213064150_1.mp4
-rwxrwxrwx 1 owner staff 419M Oct 21 19:58 Grand Theft Auto V_20221223001116_1.mp4
-rwxrwxrwx 1 owner staff 414M Oct 21 19:58 Grand Theft Auto V_20221230055654_1.mp4
-rwxrwxrwx 1 owner staff  77M Oct 21 19:57 Grand Theft Auto V_20230108204052_1.mp4
-rwxrwxrwx 1 owner staff 427M Oct 21 19:57 Grand Theft Auto V_20230108210502_1.mp4
-rwxrwxrwx 1 owner staff 133M Oct 21 19:57 Grand Theft Auto V_20230114165648_1.mp4
-rwxrwxrwx 1 owner staff 471M Oct 21 19:56 Grand Theft Auto V_20230205042420_1.mp4
-rwxrwxrwx 1 owner staff 441M Oct 21 19:55 Grand Theft Auto V_20230222025805_1.mp4
-rwxrwxrwx 1 owner staff 424M Oct 21 19:54 Grand Theft Auto V_20230227022823_1.mp4
-rwxrwxrwx 1 owner staff 373M Oct 21 19:54 Grand Theft Auto V_20230307124853_1.mp4
-rwxrwxrwx 1 owner staff 420M Oct 21 19:53 Grand Theft Auto V_20230311090033_1.mp4

To see the last modification time set from above touch command, use the following:

$ ls -lh
-rwxrwxrwx 1 owner staff 334M Aug 26 2022 Grand Theft Auto V_20220826114603_1.mp4
-rwxrwxrwx 1 owner staff 452M Sep 18 2022 Grand Theft Auto V_20220918194930_1.mp4
-rwxrwxrwx 1 owner staff 390M Sep 22 2022 Grand Theft Auto V_20220922235359_1.mp4
-rwxrwxrwx 1 owner staff 398M Oct  2 2022 Grand Theft Auto V_20221002025349_1.mp4
-rwxrwxrwx 1 owner staff 347M Oct  7 2022 Grand Theft Auto V_20221007034124_1.mp4
-rwxrwxrwx 1 owner staff 389M Oct 13 2022 Grand Theft Auto V_20221013095807_1.mp4
-rwxrwxrwx 1 owner staff 1.3G Oct 22 2022 Grand Theft Auto V_20221022131151_1.mp4
-rwxrwxrwx 1 owner staff 342M Nov 13 2022 Grand Theft Auto V_20221113174109_1.mp4
-rwxrwxrwx 1 owner staff  55M Nov 24 2022 Grand Theft Auto V_20221124014001_1.mp4
-rwxrwxrwx 1 owner staff 389M Dec 11 2022 Grand Theft Auto V_20221211111225_1.mp4
-rwxrwxrwx 1 owner staff 288M Dec 13 2022 Grand Theft Auto V_20221213064150_1.mp4
-rwxrwxrwx 1 owner staff 419M Dec 23 2022 Grand Theft Auto V_20221223001116_1.mp4
-rwxrwxrwx 1 owner staff 414M Dec 30 2022 Grand Theft Auto V_20221230055654_1.mp4
-rwxrwxrwx 1 owner staff  77M Jan  8 2023 Grand Theft Auto V_20230108204052_1.mp4
-rwxrwxrwx 1 owner staff 427M Jan  8 2023 Grand Theft Auto V_20230108210502_1.mp4
-rwxrwxrwx 1 owner staff 133M Jan 14 2023 Grand Theft Auto V_20230114165648_1.mp4
-rwxrwxrwx 1 owner staff 471M Feb  5 2023 Grand Theft Auto V_20230205042420_1.mp4
-rwxrwxrwx 1 owner staff 441M Feb 22 2023 Grand Theft Auto V_20230222025805_1.mp4
-rwxrwxrwx 1 owner staff 424M Feb 27 2023 Grand Theft Auto V_20230227022823_1.mp4
-rwxrwxrwx 1 owner staff 373M Mar  7 2023 Grand Theft Auto V_20230307124853_1.mp4
-rwxrwxrwx 1 owner staff 420M Mar 11 2023 Grand Theft Auto V_20230311090033_1.mp4

Note that once a file’s date is considered “too old”, the ls command no longer shows the time of the file, only the “MM DD YYYY” date. The time is still there on the file, but it’s simply not shown. With ls, this will have to do.

Extracting the Date for Setfile

To extract the date string format needed for setfile, we’ll use the getfileinfo command on the now touched files. That’s done with the following:

$ getfileinfo -m "Grand Theft Auto V_20231021102822.mp4"
10/21/2023 10:28:22

The getfileinfo -m command returns the last modified date string in the date string format “10/21/2023 10:28:22”, which is a properly formatted string to immediately use with setfile -d. Thankfully, we just set this date on the file above. This output string value from getfileinfo should match the date value in the filename. If the date value doesn’t match, the touch command above might not have worked correctly.

To set the creation date on the file, we will use the following:

$ setfile -d "10/21/2023 10:28:22" "Grand Theft Auto V_20231021102822.mp4"

The -d option is used to set the creation date on the file. This command only changes one file, though. Not very helpful since we’re needing to update a bunch of files all at once. To do this, we’ll need a shell script for batch changes.

#!/bin/bash
#
# setcreationdate.sh

# Set field separator to EOL marker to ignore whitespace in filenames
IFS="
"

# Loop through files in current directory
for i in `ls`
do
        FILE=$i

        # Extract properly formatted creation date using getfileinfo
        FCREATEDATE=`getfileinfo -m ${FILE}`

        # Update creation date using setfile with date extracted from getfileinfo
        # above, stored in FCREATEDATE
        setfile -d "${FCREATEDATE}" "${FILE}"
        echo ${FILE} done
done

Both of these shell scripts have been tested and worked perfectly to update the creation and modification dates on all of my PS4 video files back to their original dates recorded.

How do I use the scripts?

To use the above scripts, simply copy and paste them into your favorite MacOS X editor such as ‘vi’ or TextEdit, then save each script to whatever name you like. I named them setmodificationdate.sh and setcreationdate.sh, respectively. You can name them however you like. To make the script executable, do this with the following command:

$ chmod 755 scriptname.sh

Do these scripts work with vFAT formatted drives?

Yes, they do. These tools will work with vFAT as well as HFS+.

Is this the only way to change file dates?

No, there are other ways. You can use tools like ‘uuencode’, ‘tar’, ‘cpio’ or maybe even ‘zip’ to create an archive backup, then modify the dates inside the backup, then restore the files with newly updated dates. This is more complicated. The above is a simpler solution than mucking about with backup and restore processes. However, this archive solution may be the only way forward on operating systems that don’t allow modification of the creation dates on live files.

Why do all of this?

The iMovie app has an import library. In this imported clip library, the sorting feature uses the creation date, not modification date to sort the files. To make sure iMovie can sort these files properly date ascending, the creation date must be set correctly. Because copying the files to USB from the PS4 reassigns the date the mp4 was copied to the USB, not the date it was originally created on the PS4, this makes sorting from oldest to newest in iMovie a big problem.

When attempting to create a new movie using PS4 clips in chronological order, not having correct datestamps on each file makes it a challenge to locate the correct clips in the iMovie library. To correct for this, setting the creation date stamps on all of the mp4 files allows iMovie to sort them in the correct order, rather than sorting them based on the random date they were copied to the USB drive.

Note that once you have updated the dates on the mp4 files, you’ll need to restart iMovie to make sure it sees the newly updated dates on the files. iMovie won’t see these file changes until it’s been restarted.

Good luck and happy rendering!

↩︎

What does Reset Network Settings in iOS do?

Posted in Apple, botch, business, california by commorancy on October 25, 2018

apple-cracked-3.0-noderivsIf you’ve experienced networking issues with your iPad or iPhone, you may have called Apple for support. Many times they recommend that you “Reset Network Settings.” But, what exactly does this operation do? Let’s explore.

What’s included in this Reset Network Settings process?

This is a complicated answer and how it affects you depends on several factors. What this process does, in addition to resetting a bunch of locally stored device settings on the iOS device itself, it also deletes network settings stored in your iCloud Keychain. If you have only an iPhone and own no other devices (i.e., no iPads, no Macs, no iPods, no Apple Watches, no Apple TVs, nothing else), resetting these settings will likely work just fine for you.

However, if you own or use multiple Apple devices and these devices participate in iCloud Keychain, things can get complicated… very, very complicated. The “or use” statement is the one that makes this process much more complicated. If you have a work Mac computer that’s hooked up to your Apple ID and is participating in iCloud Keychain, performing “Reset Network Settings” on an iPhone can become problematic for your work computer. How? First, let’s find out more about iCloud Keychain.

iCloud Keychain

What is iCloud Keychain? This is an iCloud network service that stores sensitive passwords and credit card information in a secure way. This iCloud service also lets multiple iOS, MacOS, tvOS and WatchOS devices participate and use this data as part of your Apple ID. If you own multiple Apple devices, they can all share and use this same set of sensitive data without having to enter it individually on each device (convenience).

Your iCloud Keychain is specific to your Apple ID which is protected by your Apple ID login and password. The iCloud Keychain was created as both a convenience (all devices can share data), but also secure in that this data is protected behind your Apple ID credentials.

When you “Reset Network Settings” on any iOS (or possibly even MacOS, tvOS or even WatchOS) device and your devices participate in iCloud Keychain synchronization, a “Reset Network Settings” can cause networking issues for all of your devices. Why?

The iCloud Keychain stores WiFi access point names (SSIDs) and passwords. Not only that, it also stores credit cards that you might use with Apple Pay (this becomes important later). When you run “Reset Network Settings” on any iOS device, it will wipe all access point SSIDs and Passwords from your iCloud Keychain.

You might be asking, “Why is this a problem?” This will become a problem for all devices participating in iCloud Keychain. All of your Apple devices share in using this SSID and password data from your iCloud Keychain. This important to understand.  Because of this level of sharing, it only takes one device to learn of an access point for all Apple devices to use that network when in range. For example, if you bring your Mac to a convention and log it into an access point at the convention, your Mac logs this access point data to the iCloud Keychain. Your phone will immediately pick up on this new access point addition and also connect to that access point using the newly stored password as soon as it finds it… automagically.

Likewise, it only takes one device to wipe an access point and all devices lose access to it. It’s a single shared location for this networking data. One device adds it, all can use it. One device deletes it, all devices forget about it. Is this a good idea? You decide.

Reset Network Settings and Multiple Devices

Here’s where things get complicated with iCloud Keychain. If you are having network troubles with your iPhone, you might be requested by Apple Support to “Reset Network Settings”.

If all of your MacOS, tvOS, iOS and WatchOS devices participate in iCloud Keychain and you actually perform “Reset Network Settings” on your iPhone, it will wipe not only the current access point, but every access point that every device is aware of. It returns your network settings on iOS (and in iCloud Keychain) to a clean slate to start it over. It does this to try and clear out any problematic network settings. It also deletes known access points from the iCloud Keychain. This wipes access to this data for ALL of your Apple devices, not just the one you performed “Reset Network Settings” on.

What this means is that every device participating in iCloud Keychain will lose access to ALL access points that had previously been known because they have been deleted as part of “Reset Network Settings”. If your iOS device knew of all access points, they will ALL be wiped from iCloud Keychain. This means that every device will immediately lose access to its current access point. It also means that every Apple device you own must now be touched to reselect a new access point requiring you to reenter the password for that access point… On. Every. Apple. Device!

For example, I own two Macs, two iPads, three iPhones and two iPod Touches. A “Reset Network Settings” from a single device means I will need to go and manually touch 9 different devices to reconnect them to WiFi after a single iOS device performs a “Reset Network Settings” operation. It requires this because every device has lost access to even its home network which means no access to iCloud Keychain… which means, touching every device to get them back onto a WiFi network.

For me, it was even more complicated than the mere hassle of setting up WiFi on every device. It wiped known access points created by my employer on my Mac which were put into my iCloud Keychain… access points where I didn’t know the name or passwords. Thankfully, I was able to recover this data from another co-worker’s Mac and get back onto my corporate network. Otherwise, I’d have been down at my IT team’s desk asking for them to fix my Mac… and all as a result of performing “Reset Network Settings” on my iPhone.

Horrible, horrible design.

Avoiding This Problem

Can this problem be avoided? Possibly. If you turn off iCloud Keychain on your iOS device BEFORE you perform “Reset Network Settings”, it may avoid wiping the data in the iCloud Keychain. I say “may” because after you take the device out of iCloud Keychain, then reset the network settings and then rejoin it to iCloud Keychain, it may propagate the differences at the time the device rejoins. Hopefully, not. Hopefully, the newly reset device will ONLY download the existing data in the iCloud Keychain without making any modifications to it. With Apple, you never know.

The secondary issue is that removing your iPhone from iCloud Keychain may remove stored credit cards. This may mean reentry of all of your credit cards after you have “Reset Network Settings” and after you have rejoined your device to the iCloud Keychain. This may also depend on iOS version. I just tried removing iCloud Keychain, then performed “Reset Network Settings”, then rejoined iCloud Keychain and all my cards are still intact on the device. If you’re on iOS 11 or iOS 10, your results may vary.

Why is this a problem?

First off, I don’t want to have to go touch many devices after a single device reset. That’s just stupid. Second, removing the device from iCloud Keychain to perform “Reset Network Settings” will wipe all of your current credit card data from the device and likely from the iCloud Keychain. Third, Apple needs to fix their shit to allow more granularity in what it wipes with “Reset Network Settings”. In fact, it shouldn’t even touch iCloud Keychain data. It should wipe only locally stored information on the device and then see if that works. If that doesn’t work, then wipe the data on iCloud Keychain, but only as a LAST RESORT!

I understand that Apple seems to think that wiping all network data (including what’s in iCloud Keychain) might solve “whatever the problem is”, but that’s just a sledgehammer. If what’s stored in iCloud Keychain were a problem, my 8 other devices should be experiencing the same issue as well. It’s basically, stupid Apple troubleshooting logic.

As I mentioned, disabling iCloud Keychain may unregister your credit cards from your device (and from the Keychain). I know this was the case in iOS 11, but in iOS 12 it seems to not require this any longer. I definitely don’t want to have to rescan all of my credit cards again onto my iOS device to restore them. It takes at least 30 minutes to do this with the number of cards I have to input. With the Apple Watch, this process is horribly unreliable and lengthy. It can sometimes take over an hour diddling with Bluetooth timeouts and silly unreliability problems to finally get all of my cards back onto the Watch (in addition to the iPhone).

Such time wasting problems over a single troubleshooting thing that should be extremely straightforward and easy. Horrible, horrible design.

Representatives and Suggestions

If you’re talking to an Apple representative over the phone about a networking problem and they suggest for you to “Reset Network Settings”, you should refer them to this article so they can better understand what it is they are asking you to do.

Neither Apple Support, nor will any of your phone carrier support teams warn you of this iCloud Keychain problem when requesting “Reset Network Settings.” They will ask you to perform this step as though it’s some simple little step. It’s not!

Whenever Apple asks me to perform the “Reset Network Settings” troubleshooting step, I always decline citing this exact problem. Perhaps someone at Apple will finally wake up and fix this issue once and for all. Until then, you should always question Apple’s troubleshooting methods before blindly following them.

How to disable iCloud Keychain

To disable the iCloud Keychain on your iOS device, go to …

Settings=>Your Name=>iCloud=>Keychain

… and toggle it off. Your Name is actually your name. It is located at the very top of settings. Once toggled off, it will likely unregister your credit cards stored on your iOS device, but I guess it’s a small price to pay if you really need to reset these network settings to your restore networking to 100% functionality. Of course, there’s no guarantee that “Reset Network Settings” or jumping through any of these hoops will solve this problem. There’s also the possibility that “Reset Network Settings” could still screw with your iCloud Keychain even if you disable it before performing “Reset Network Settings”.

With Apple, your mileage may vary.

How to Reset Network Settings

Settings=>General=>Reset=>Reset Network Settings

If you own multiple Apple devices and they are using iCloud Keychain, don’t perform this step first. Instead, disable iCloud Keychain first (above), then perform this step. If you only own one Apple device, there is no need to disable iCloud Keychain.

Network Problems and Quick Fixes

In my most recent case of being prompted to “Reset Network Settings”, my phone’s Wi-Fi calling feature simply stopped working. I first called T-Mobile and they referred me to “Reset Network Settings” (based on Apple’s documentation) and they also referred me to Apple Support. Because I already knew about the iCloud Keychain problem from a previous inadvertent wipe of all of my network access points, this time I opted to turn off iCloud Keychain before attempting “Reset Network Settings.” Suffice it to say that “Reset Network Settings” didn’t do a damned thing, as I full well expected.

In fact, I tried many options prior to “Reset Network Settings”. These included:

  • Disabling and enabling Wi-Fi calling
  • Joining a different access point
  • Restarting my Comcast modem
  • Restarting my network router
  • Restarting my Apple Airport
  • Restarting my phone
  • Hard restarting my phone
  • Disabling and enabling Wi-Fi
  • Dumping Sysdiagnose logs and digging through them
  • Killing and restarting the Phone app

I tried all of the above and nothing resolved the issue. No, not even “Reset Network Settings”.

Then it dawned on me. I had recalled reading a year or two back that sometimes Airplane Mode can resolve many network connectivity issues. I’m not sure exactly what Airplane Mode actually does under the hood in detail, but it seems to modify and/or reset a bunch of config files after disabling all networking including Cellular, Wi-Fi, Bluetooth and anything else that performs networking.

Once Airplane Mode is enabled, allow the phone to sit for 30 seconds to make sure all components recognized Airplane Mode. Then, disable Airplane Mode. Almost immediately, the phone’s menu bar now shows ‘T-Mobile Wi-Fi’. Wow, it actually works.

If you’re having networking problems on your iPhone, I strongly suggest enabling then disabling Airplane Mode instead of using the very sledgehammery “Reset Network Settings”. At least, it’s worth a try before resorting to disabling iCloud Keychain followed by “Reset Network Settings”.

If you’re having a specific problem with Bluetooth or WiFi, then I suggest taking a step back and trying this next idea. For example, if Bluetooth is having troubles, turn off Bluetooth, reboot the phone, then turn it back on after a reboot. This troubleshooting step is somewhat less reliable than using Airplane mode. Airplane mode doesn’t necessarily require a reboot also and works more often than this single device troubleshooting.

iOS 11 vs 12

The first time I experienced my issue with the iCloud Keychain and “Reset Network Settings”, I was using iOS 11. I’m firmly of, “Once Bitten, Twice Shy.” This means, I haven’t tested this on iOS 12 to see if Apple has changed their ways. It’s very doubtful they have and very likely this problem still persists even in the most current version of iOS.

iCloud Keychain and Passwords

One last caveat about the iCloud Keychain. Ever more and more credentials and passwords are being stored in the iCloud keychain, including Safari’s credentials, possibly even other browsers and even app credentials. As we become more and more dependent on using TouchID or FaceID to unlock access to our favorite apps and sites, the credentials behind these unlocks are stored in the iCloud Keychain. If you use ‘Reset Network Settings’ without first removing the phone from the iCloud Keychain, you may find all of your browser and app passwords have also been deleted.

This then means having to go into all of your favorite websites in Safari and phone apps and reentering usernames and passwords all over again. If you don’t remember these passwords, you may end up having to reset a bunch of them. Be very careful when using ‘Reset Network Settings’. This feature doesn’t yet warn you of these dangers and it also doesn’t offer to remove the device from the iCloud Keychain before proceeding.

This may go even deeper. As stated above, iOS apps also store their user credentials in the iCloud Keychain. These apps may also require reentering credentials after performing ‘Reset Network Settings’.

In fact, even Apple phone reps don’t fully understand the dangers here. They tell you that you need to ‘Reset Network Settings’, but then fail to warn you of the consequences of not removing your device from the iCloud Keychain first. Since this is a critical step, Apple needs to not only warn you of the dangers of not disabling iCloud Keychain, the ‘Reset Network Settings’ mechanism needs to suggest the user disable the iCloud keychain before proceeding.

Beware!

Design Rant Mode On

Apple seems to be under the delusion that we’re still living in a one-device-ownership-world. We’re not. We now own Macs, Apple TVs, Watches, iPhones and iPads that all rely on their multi-device services, such as iCloud Keychain. To design a feature that can wipe the entire data shared by multiple devices is not only the very definition of shit software, it’s also the very definition of a shit company that hasn’t the first clue of what the hell they’ve actually built.


If this article is helpful to you, please leave a comment below.

↩︎

Running / Installing Mac OS X (Snow Leopard) on VirtualBox

Posted in Apple, Mac OS X, VirtualBox, virtualization by commorancy on June 21, 2010

Updated 8/2/2011

Lion Update

With the recent release of Lion, there is a push to get a Lion version working on VirtualBox.  At present, there is yet no boot loader capable of booting Lion on VirtualBox. So, for now, Snow Leopard is still it for a standalone MacOS on VirtualBox.  I will update this article as necessary to address a working installation of Lion as it progresses.  Stay Tuned.

Nawcom Mod CD

There is a new CD image from Nawcom (http://blog.nawcom.com/?p=306) that makes installation of MacOS X much easier on VirtualBox (instead of using Prasys’ EFI boot CDs).  And yes, I’ve tried it.  The Nawcom EFI CD is much faster for installation because it does some very clever things, including installing the boot loader at the end of the install.

So, I am now recommending you to download and use the Nawcom ModCD instead of the Prasys EFI boot CDs listed below.  Although, I will leave the information for the Prasys Empire EFI CDs available should the Nawcom CD not work for you.  Alternatively, you can try the tonymacx86.com iBoot or iBoot Legacy CDs if all else fails.  Even using the Nawcom ModCD, you will still need to follow the instructions on changing the resolution of the screen as documented below as this CD doesn’t change that part of the installation process.

Go!

Let’s start by saying this. Support Apple by legally buying your copy of Mac OS X.  Don’t pirate it.

Note also that buying a retail packaged disk from the Apple store prevents a lot of headaches during this process.  A Mac OS X Install Disk that comes bundled with any Mac system will only install on the hardware with which it came bundled.  For example, if you try to install from a bundled DVD media that was shipped along with a MacBook Pro, it will not install on Virtualbox and you will see the error ‘Mac OS X cannot be installed on this computer’.  Save yourself the headache and get a retail disk from the Apple store.

Before getting started, if you are wanting to run Mac OS X on VMWare Player 3 instead, then check out Randosity’s Running Mac OS X on VMWare Player 3 article for details.

Apple’s Stance

Apple wants you to buy and run Mac OS X (desktop edition) on a MacBook Pro or other similar Mac hardware. While I think that’s a grand notion to sell the hardware, the hardware will sell regardless of the operating system. Further, if you are a hardware company, why sell the operating system separately anyway? I mean, if it’s the hardware that matters, how is it that you can buy Mac OS X separately both desktop and server editions. I digress.

Because Apple wants you to buy into their hardware platforms, they would prefer you not run Mac OS X on Virtual Environments. I personally think, however, that this idea is both socially and ecologically irresponsible. For a company that tries to tout itself as Green and Earth-Friendly, by not allowing virtualization of Mac OS X (any desktop version), this prevents people from using the hardware they already have and instead forces us to buy new hardware that will eventually fill landfills. Using existing hardware that may work just fine, although not made by Apple, at least keeps the hardware out of the land fill and they are still making money off selling the operating system.

Supported vs Non-Supported CPUs

Note, these boot CDs support specific types of CPUs.  If your CPU is not listed (i.e., Atom processor), you will need to download and use the CDs labeled with the word ‘Legacy’.   These CDs may or may not work for your CPU, but these are the only CDs that have a chance of working on non-supported CPU types.

Let’s get started — items required

  • A recent PC hardware config (within the last 3 years) installed with 64 bit Windows 7 or Vista or Linux 64 bit
    • Note, the faster the PC is, the better that VirtualBox will work.
  • A recent processor (Intel core i3, i5, i7, i3m, i5m, i7m, AMD Phenom or similar 64 bit processor)
  • Enabled VT-x (for Intel Processors) or AMD-v (for AMD processors) in the PC BIOS
  • Retail version of Mac OS X Snow Leopard.  (If you try any other version other than the retail package, it probably won’t work!)

As stated above, you will need hardware capable of VT-x / AMD-v (BIOS level virtualization support passthrough). Without this hardware configuration, you will not be able to install Mac OS X. Most recent dual and quad core processors support this technology. Although, you may have to enter the BIOS to enable it. So, check your BIOS for ‘Virtualization’ settings and enable it.

Pick your host operating system. You can run Windows 7, Vista, XP, Linux (Ubuntu, Redhat, etc) or Solaris. Whichever operating system you choose for the host, make sure it’s a 64 bit edition. I recommend Windows 7 64 bit edition as XP 64 bit edition can be somewhat of a bear to work with and Vista isn’t readily available at this point. If you’re looking for the least expensive solution, then I would choose Linux. I personally use Windows because I also need Windows 7 for other tasks as well. If you are currently running a 32 bit OS edition, you will first need to upgrade the host to 64 bit to operate Snow Leopard. Snow Leopard is mostly 64 bit now and, thus, requires a 64 bit host OS to function.

Note that this tutorial was tested using Mac OS X 10.6.3 (Snow Leopard). OS X may install using 10.6.4 or later, but Apple may also make changes that could prevent it from working. If you have an older install disk than 10.6.3, the installation may fail. I recommend using 10.6.3 or later.

What is EFI?

One other thing to note about Macintosh computers and Snow Leopard… Macintosh computers require an EFI BIOS to boot. What is EFI? EFI stands for Extensible Firmware Interface and was developed by Intel for the Itanium platform in the mid-90s. This ‘BIOS’ replacement is designed to allow direct 32 and 64 bit addressing right from the firmware unlike the PC BIOS which only allows 16 bit addressing during boot operations.

Apple integrated EFI into the PowerPC and later the Intel Macintosh line to boot Mac OS X. Because this boot system is not compatible with PC BIOS, it requires the standard PC BIOS to boot an EFI boot system first. Then, the EFI boot system can then boot Mac OS X. So, the boot system goes like this:

  • PC BIOS boots EFI
  • EFI boots Mac OS X

Yes, VirtualBox has an EFI boot system within, but this EFI system will not boot Mac OS X (probably on purpose). Instead, the Empire EFI boot ISO is necessary to boot Mac OS X (both the Mac OS X install media and the actual operating system once installed).

Focus on Windows

With this post, I will focus on using Windows as the Host and Mac OS X as the guest. You can utilize this guide if you want to use Linux, but you will need to determine how to get certain steps done with Linux (i.e., creating and/or mounting ISO images). So, let’s get going.

Items you’ll need

Steps to get it working

  • Install VirtualBox on Windows
  • Open VirtualBox and click ‘New’. This will start a Machine build Wizard
  • Name this machine ‘Mac OS X’
  • Set the Type to Mac OS X + Mac OS X Server (if it isn’t already) and click Next
  • Set memory to 1024 (or whatever you want to give it) and click Next
  • Under Boot Hard disk, either create a new HD or select an existing HD file* (at least 20GB), click Next
  • If Creating new, continue onward. Otherwise, skip down to ‘Readying VM for First Use’
  • In the New HD Panel, choose Dynamic Expanding Storage, Click Next
  • Click the Folder icon to choose where this disk is to be stored (C not recommended)
  • Set the size to 20GB (type in 20GB), click Next
  • Click Finish to exit HD creation and click Finish again to exit VM creation

Readying VM for First Use

Now you have a new VM for Mac OS X set up, it’s not to use ready yet. So, Let’s ready it for use:

  • Click to select the Mac OS X machine
  • Click the ‘Settings’ button
  • Click the System settings icon
  • Uncheck ‘Enable EFI’ (we will use EFI, just not VBox’s built-in version**)
  • Under Processor tab, leave it at 1 CPU and enable PAE/NX if it isn’t already
  • Under Acceleration, Enable VT-x/AMD-v (must be enabled). Without this setting, you can’t run Mac OS X in VBox.***
  • Under Display, set the Video Memory to 128 and Enable 3D Acceleration
  • Under Storage, IDE controller type must be ICH6
  • Also under Storage, click ‘Empty’ cdrom drive and set the Empire EFI disk to this drive using the Folder icon****.
  • Audio Driver is Windows Directsound + ICH AC97
  • Network should be Bridged Adapter (NAT may work)
  • Click ‘OK’ to save these settings

Now you’re ready to start the install process. Click the ‘Start’ button to start the Mac OS X virtual machine. Once the Empire EFI screen has loaded, eject the Empire EFI ISO image by unchecking it from the Devices->CD/DVD Devices Menu and then locate your Mac OS X Install ISO and select this. If you have the original media and want to create an ISO, go to the ‘Creating an ISO image with ImgBurn’ section below. After the Mac OS X install ISO is selected and you’re back at EFI, press the F5 key. The screen should refresh to show the newly inserted Mac OS X install media. Once it shows the install media, press the enter key to begin installation.

Note, if you start this process using the Empire ISO image, then you must use a Mac OS X Install ISO. If you want to use the physical media, then you’ll need to burn the Empire ISO to a CD and boot from the physical media drive in VirtualBox. You can then eject that media and insert the Mac OS X install media. You cannot mix and match ISO to physical media. I was not able to get mixing ISO and physical media to work in Empire EFI.

Installation of Mac OS X

Once you get the Mac OS X Installer going, I’ll leave it up to you to finish the full install process. However, I will say this about the hard drive. The VBox HD is blank. So, you will need to prepare it with ‘Disk Utility’. Once the Mac OS X installer starts and you get to the first screen with a menu bar, choose Utilities-> Disk Utility. It will recognize the Disk is there, but it cannot be used until it is partitioned and formatted. Choose the VBox disk and click the ‘Erase’ tab. Under Erase, choose Mac OS X Extended (Journaled) and then name it ‘Hard Disk’ (or whatever you want to call it) and click the ‘Erase’ button. It will confirm that you want to do this, so click ‘Erase’ again. Exit Disk Utility and continue the installation. It will probably take 30-40 minutes to install Mac OS X depending on various factors.

Mac OS X Installed — What’s Next?

If you’ve installed from the Nawcom ModCD, then skip this part and go directly to Final Steps + Increasing screen resolution.  If you’ve installed from tonymacx86.com’s CD, you may still need to install MyHack.  If you’ve installed from Prasys’ Empire EFI CD, you will need to install MyHack.  So, continue on.

Ok, so now that Mac OS X is installed, the system still won’t boot up without the EFI disk. So, reboot after the install with the Empire EFI ISO in the drive. Choose the new bootable ‘Hard Disk’ in the EFI menu and boot into Mac OS X. Once Mac OS X is loaded, open Preferences and set the ‘Startup Disk’ to your new bootable installation. Now, open Safari and search Google for ‘MyHack’ or locate this Randosity article in Safari and go to this site: MyHack. The download will be a package (.mpkg) file and needs to be downloaded on Mac OS X. Once downloaded, double-click the package to install. Click through the Wizard until you get the screen with the ‘Customize’ button. Click Customize and enable PS2Controller (keyboard and mouse) and disable SleepEnabler (doesn’t work with later OS X versions). Click to finish the installation process.

After MyHack is installed, you can eject the Empire EFI media and your Mac OS X installation will now boot on its own.

Final Steps + Increasing screen resolution

You’ll notice that the resolution is fixed to 1024×768. You can change this resolution, but it has to be done in two files. First on Mac OS X, there’s the /Extra/com.apple.Boot.plist file. This file describes the resolution for the Mac to use. Before you edit this file, install Xcode from the Mac OS X media (insert it into the drive with the Mac running). Open ‘Optional Installs’ folder and double-click ‘Xcode’ and follow the installation instructions. Note, it takes about 2.3GB of space. Plist files are easier to edit when the Property List Editor is installed from Xcode. Otherwise, you will have to hand edit these files with TextEdit.

Also note that the /Extra folder is at the root of the Hard Drive volume.  It is not inside your local user profile folder.  You will also note that after a default install, Mac OS X doesn’t show hard disk icons on the desktop.  To turn this icon on, from the top menu, select ‘Finder->Preferences…’.  Then, put a check next to ‘Hard Disks’ under ‘Show these items on the desktop’.  Once you open the Hard Disk icon, you should see the Extra folder.  If you still don’t see the Extra folder, be sure that you have installed MyHack or used the Nawcom ModCD.  If MyHack hasn’t been installed, there won’t be an /Extra folder there.  The Extra folder gets installed as a result of installing MyHack.

Also, there can only be one available resolution in Virtualbox and on the Mac at a given time. I wish it supported more resolutions at once, but it doesn’t. Note also that because VirtualBox doesn’t support Mac OS X fully, there are no machine additions. To enable the resolution, on the PC side of VirtualBox (on the VirtualBox host), you will need to run the following command from a command shell (cmd):

VBoxManage setextradata "Mac OS X" "CustomVideoMode1" "1920x1080x32"

The “Mac OS X’ label is the exact machine name in VirtualBox. The “1920x1080x32” setting is customizable to your needs (and video card capabilities). However, both this setting and com.apple.boot.plist (on the Mac) must match for the screen resolution to take effect.

The ‘VBoxManage’ command is located in the Program Files\Oracle\VirtualBox folder or wherever you installed VirtualBox. You can add this location to your PATH variable so you can use this command without typing in the full path each time.

In the com.apple.Boot.plist file, you will need to add the following properties (if not already there):

Graphics Mode - String - 1920x1080x32
GraphicsEnabler - String - y

(The resolution value should match the above VboxManage command). If you want to change resolutions later, you will need to edit both places again and reboot your Mac.

If you reboot and the screen hasn’t changed or has changed to 1280×1024 and not the resolution you expected, double check that both com.apple.boot.plist and the CustomVideoMode1 setting match and are active. Both of these settings must match for the resolution to work.

Updating com.apple.Boot.plist

It’s easiest to edit this file with the Property List Editor tool. So, install Xcode before managing this file. In order to edit this file, you cannot edit it directly. Instead, copy the file and paste it to your desktop. Edit the file on your desktop. Then, once done editing, drop the file on top of the /Extra folder. Click “Replace File” when asked and supply your account password. Once the file is replaced, you can reboot to see if the resolution change has taken effect.

Audio Support

Update: On my HP quad core system, I am unable to get the AC97 sound driver to work on 10.6.4 (as have others). I have uninstalled and reinstalled this kernel extension, but it simply will not activate. I am still working with this setup to see if I can get it working, but so far no luck. I should point out, then, that the AC97 sound driver may not work on all systems and may not work with 10.6.4. So, you may not want to update to 10.6.4 until this issue is resolved if you need sound.

Mac OS X does support audio output with an AC97 audio driver in Snow Leopard up to 10.6.3. It does not appear to support audio input. I will say, however, that the audio driver is, at best, under performing. That means, it breaks up, it doesn’t always work and it generally sounds crappy. That said, if you want to hear the various insundry noises that the Mac can make for bells, you can install the driver. The AC97 driver can be found in this Virtualbox Forum Thread.

Note, if the supplied installer does not properly install the driver, download the .zip file and install the AppleAC97Audio.kext Extension the into /Extra/Extensions folder. Then follow the instructions below on rebuilding the Extensions.mkext file.

Kernel Extensions — Rebuilding .mkext cache files (Kernel Extension Cache)

Mac OS has always been known for its extensions. Well, Mac OS X is no different in this respect. In the original Mac, you simply drop the extension into the Extensions folder and it works. Well, unfortunately, it’s not quite that simple with Mac OS X. If you want to drop in a .kext file (extension), you will need to rebuild the Extensions.mkext database. This database is what helps Mac OS X find and work with installed extensions. To rebuild these cache files, you will need to use the following Terminal.app as root:

# kextcache -v 1 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/
# kextcache -v 1 -t -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions/

Running these commands will rebuild the cache files necessary to activate newly installed extensions. So, if you need to install any new extensions, you will need to run the above commands to recreate the extension cache files.

Creating an ISO image with ImgBurn

To create an ISO image using ImgBurn, you will first need to download and install it. Once it’s installed, start it up. Now click ‘Create image file from disc’. Insert the Mac OS X CD. The CD will be labeled ‘Boot Camp’. This is fine as this is the only partition that Windows is able to see. As long as it sees the ‘Boot Camp’ partition, the image will be created correctly. Click the CD icon at the bottom of the Window to create your ISO image. Once the image has been created, you can continue at your previous step.

Rebooting the Mac

As a side note about rebooting. With some hardware, rebooting Mac OS X in VirtualBox doesn’t work. Sometimes it seems to hang, sometimes it gives a banner telling you to power off the machine. Basically, there isn’t really a resolution to this issue. Simply use shutdown, then when it appears all disk activity has stopped, close the Vbox window (making sure to power it off). Then click ‘Start’ again to start it up. This is really more of an inconvenience than anything, but it’s manageable.

Updating Mac OS X

As new updates get released by Apple, you may be tempted to install them immediately.  While this shouldn’t be a problem on a real Mac, it is possible that a security or full update from Apple could break VirtualBox installations accidentally (or, more likely, intentionally).  Since Virtualbox offers snapshot capabilities, I recommend taking advantage of this and do the following:

  • Cancel any updates
  • Shutdown Mac OS X
  • Take a snapshot of your Mac OS X Guest in the Virtualbox console
  • Start up Mac OS X
  • Update OS X

If the update causes your system to stop booting, stop working or in any way become broken, you can revert to the snapshot and not update.  On the other hand, if the update works perfectly, then I recommend you delete the snapshot once you feel comfortable that the update is working as expected.  If the update doesn’t work, you may need some updated components such as the Chameleon boot loader or an updated boot disk to handle the new OS update.

Notes

* I suggest using a VMDK HD image as there are more tools for VMDK format files than VDI files. Though, your choice. If you want to use a VMDK file, go to vmcreator.com and have them make you a file to download.

** VirtualBox’s EFI works, but not with Mac OS X. Whether that’s intentional is unknown. Instead, you need to use the Empire EFI ISO disk to boot Mac OS X to install it.

*** You may have to enable VT-x/AMD-v in your machine’s BIOS.

**** Click the ‘Add’ button in the Media Library window to locate your ISO image, then make sure this file is selected and click ‘Select’.

What is it about tablets?

Posted in Apple, botch, business, california, computers, microsoft by commorancy on January 15, 2010

Ok, I’m stumped.  I’ve tried to understand this manufacturing trend, but I simply can’t.  We have to be heading towards the fourth or maybe fifth generation of tablet PCs, yet each time they bring tablets back to the the market, this technology fails miserably.  Perhaps it’s the timing, but I don’t think so.  I think the market has spoken time and time again.  So, what is it about this technology that make manufacturers try and try again to foist these lead balloons onto us about every 6 years?

Wayback machine

It was in the early 90’s that Grid Computers arguably released the first tablet (or at least, one of the very first tablets).  Granted, it used a monochrome plasma screen and I believe that it ran DOS and Windows 3.1 (that I recall), but these things flopped badly for many different reasons.  Ultimately, the market spoke and no one wanted them.  It’s no wonder why, too.  The lack of keyboard combined with the size and weight of the unit, the need for a pen and the lack of a truly viable input method doomed this device to the halls of flopdom.  Into obscurity this device went along with Grid Computers (the company).

In the early 2000s, Microsoft+Manufacturers tried again to resurrect this computer format with XP Tablet edition.  This time they tried making the devices more like notebooks where the screen could detach from a keyboard and become a tablet.  So, when it was attached, it looked and felt like a notebook.  When detached, it was a tablet.  Again, there was no viable input method without keyboard even though they were touch screen.  The handwriting recognition was poor at best and if it had voice input, it failed to work.   XP Tablet edition was not enough to make the tablet succeed.  Yet again, the tablet rolled into obscurity… mostly.  You can still buy tablets, but they aren’t that easy to find and few manufacturers make them.  They also ship with hefty price tags.

Origami

Then, later in the mid 2000’s came Microsoft with Origami.  At this time, Origami was supposed to be a compact OS, like Windows CE (although CE would have worked just fine for this, don’t know why Origami really came about).  A few tablets came out using Origami, but most computers that loaded this version of Windows used it in the microPC format.  Since the Origami version of Windows was a full version (unlike CE), it was a lot more powerful than computers of that size really needed and the price tag showed that.  Sony and a few other manufacturers made these microPCs, but they sold at expensive prices (like $1999 or more) for a computer the size of a PDA.  Again, no viable input method could suffice on the microPC tablets and so these died yet another death… although, the microPC hung around a bit longer than the tablet.  You might even still be able to buy one in 2010, if you look hard enough.

Netbook

Then came the Netbook.  The $199-299 priced scaled down notebook using the Atom processor.  This format took off dramatically and has been a resounding success.  The reason, price.  Who wouldn’t want a full fledged portable computer for $199-299?  You can barely buy an iPod or even a cell phone… let alone a desktop PC for that price.  The Netbook price point is the perfect price point for a low end notebook computer.  But, what does a Netbook have to do with a tablet?  It doesn’t, but it is here to illustrate why tablets will continue to fail.

Tablet resurrection

Once again, we are in the middle of yet another possible tablet resurrection attempt.  Rumor has it that Apple will release a tablet.  HP is now also pushing yet another tablet loaded with Windows.  Yet, from past failures, we already know this format is dead on arrival.  What can Apple possibly bring to the tablet format that Microsoft and PCs haven’t?  Nothing.  That’s the problem.  The only possible selling point for a tablet has to be in price alone.  Tablets have to get down to the $199-299 price tag to have any hope of gaining any popularity.  Yet, Apple is not known to make budget computers, so we know that that price point is out.  Assuming Apple does release a tablet, it will likely price it somewhere between $899 and $1599.  Likely, they will offer 3 different versions with the lowest version starting at $899.  Worse, at the lowest price point it will be hobbled lacking most bells and whistles.

Even if Apple loads up the tablet with all of the bells and whistles (i.e., Bluetooth, 3G, GSM, OLED Display, iTunes app capable, handwriting recognition, voice recognition, WiFi, wireless USB, a sleek case design, etc etc) the only thing those bells and whistles will do is raise the cost to produce the unit.  The basic problems with a tablet are portability (too big), lack of a viable input device, weight and fragility (not to mention, battery life).  Adding on a hefty price tag ensures that people won’t buy it.  Of course, the Apple fan boys will buy anything branded with a half bitten Apple logo.  But, for the general masses, no.  This device cannot hope to succeed on Apple fan boy income alone.

Compelling Reasons

Apple has to provide some kind of paradigm shifting technology that makes such a failure of a device like the tablet become successful (or whatever Apple cleverly names its tablet device).  If the tablet is over 7 inches in size, it will be too large to be portable.  Utilizing OLED technology ensures the cost is extremely high.  Putting a thin case on it like the MacBook Air ensures that it’s overly fragile.  We’ve  yet to find out the battery life expectancy.  So far, this is not yet a winning combination.

So, what kind of technology would make such a paradigm shift?  The only such technology I can think of would have to be a new input device technology.  A way to get commands into the notebook and a way to drive the interface easily.  Clearly, a multi-touch screen will help.  The iPod is good in that regard (except that you can’t use it with gloves).  But, if you want to write email, how do you do that on a tablet? Do you hand peck the letters on that silly on-screen thing that Apple calls a keyboard?  No.  That’s not enough.  Apple needs a fully phonetic speech input technology that’s 100% flawless without any training.  That means, you speak the email in and it converts it perfectly to text.  Also, you speak in any conversational command and the computer figures out what you mean flawlessly.  This is the only technology that makes any sense on a tablet.  Of course, it will need to support multiple languages (a tall order) and it needs to be flawless and perfect (an extremely tall order).  It will also need to work in a noisy room (not likely).

Can Apple make such a shift?  I don’t know.  The hardware technology is there to support such a system.  The issue, is the software ready?  Well, let’s hope Apple thinks so.  Otherwise, if Apple does release its rumored tablet without such a paradigm shift, it could be the worst stumble that Apple has made since the Lisa.