tinyapps.org / blog

Virtualizing Snow Leopard #

Hot on the heels of our 2011 post, Mac OS X P2V, comes a new guide for those who just can't let go of OS X 10.6's superior speed, stability, or PowerPC emulation: Installing Snow Leopard into VMWare Fusion 8 on El Capitan. Enjoy!

/mac | Sep 11, 2016

Automatically prompt for elevated permissions when running a batch script #

Add the script below to the beginning of your batch scripts to automatically request elevated permissions when run. It was written by Matt, who credits for inspiration a post by NIronwolf, which credits OpenELEC, who apparently does not host the original script any longer (this may be it: create_installstick.bat). As Winhelponline points out, simply add your instructions under the "START" label.
:: Automatically check & get admin rights V2
@echo off
ECHO =============================
ECHO Running Admin shell
ECHO =============================

setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion

if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )

if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation
ECHO **************************************

ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B

setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)

REM Run shell as admin (example) - put here code as you like
ECHO %batchName% Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9
cmd /k

/windows | Sep 04, 2016

Recover Windows product key from BIOS / UEFI #

while booted via Windows installation media, then determine which version of Windows corresponds to the recovered key:
  1. Boot via Windows installation media (DVD, USB flash drive, etc)

  2. When the "Windows Setup" window appears, press Shift + F10 to open a command prompt

  3. Launch one of these tools from the command prompt to retrieve product key from BIOS / UEFI:

    1. Windows OEM Product Key Tool 1.1 - Purpose-built app; simply returns the product key

    2. FirmwareTablesView - Displays list of firmware tables; look for "MSDM" under Signature column or "Microsoft Software Licensing Table" under Description column

    3. RWEverything - Digs deep for a plethora of hardware details; head to ACPI > MSDM > Data.

  4. To identify which version of Windows the recovered product key corresponds to:

    1. Ultimate PID Checker - Works with product keys from XP through 8 (not 8.1); runs inside the Windows installation environment

    2. ShowKeyPlus - Works with product keys from Windows 7 through 10; does not run inside the Windows installation environment

For OEM computers still shipping with Windows 7 or 8.1 (slated to end on October 31, 2016), the firmware-embedded product key likely differs from the product key on the hard drive. Recover the latter with ProduKey.

For more information on embedded product keys, see Windows 10 Embedded Product Key Tool and Where is my Windows product key, and how can I tell that my Windows installation is genuine?

/windows | Sep 04, 2016

Booting Dell Venue 10 Pro 5055 from USB device #

  1. With the Venue turned off, hold the volume button down.
  2. Turn on the Venue
  3. When the BIOS / UEFI screen appears, let go of the volume button
  4. Tap "Boot" > "Secure Boot" > "Disabled"
  5. Tap "File Browser Add Boot Option" > select .efi file on a bootable FAT32-formatted device (e.g., tap "USB: DataTraveler 2.0" > "Select Media File" menu appears > tap "efi" > "boot" > "bootia32.efi") > "Input File Name" menu appears > enter desired name (e.g., "USBFlash") > tap Return > Ok
  6. Change "Boot Option Priorities" if desired, or simply reboot while holding the volume button up for the "Boot Options" menu.


/windows | Sep 04, 2016

Google Chrome: Reenable backspace to go back in OS X #

While there are a lot of extensions for restoring backspace (delete on Mac keyboards) to its former glory, why trust an extension when this simple command line argument works?

--enable-blink-features=BackspaceDefaultHandler --test-type

Under Windows, this is as simple as changing the shortcut Target from

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"


"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --enable-blink-features=BackspaceDefaultHandler --test-type

Here are two methods for passing the argument to Chrome under OS X:

Bash: open -b com.google.Chrome --args --enable-blink-features=BackspaceDefaultHandler --test-type

AppleScript: do shell script "open -b com.google.Chrome --args --enable-blink-features=BackspaceDefaultHandler --test-type"

Save either command and run in lieu of Google Chrome.app to restore backspace functionality.

On a related note, here is how to find bundle identifiers / bundle IDs (CFBundleIdentifier):

/mac | Aug 28, 2016

Windows 7 install error: "A required CD/DVD drive device driver is missing" #

While attempting to install Windows 7 on a Dell Optiplex 3040 Micro, the following error appeared:

A required CD/DVD drive device driver is missing. If you have a driver floppy disk, CD, DVD, or USB flash drive, please insert it now.

Note: If the Windows installation media is in the CD/DVD drive, you can safely remove it for this step.

Browse | OK | Cancel

(As it turns out, the problem is caused by a missing USB 3.0 driver, so installing via USB floppy, CD/DVD, flash drive, etc was not possible.)

Browsing for a driver on the virtual X: drive returned:

No device drivers were found. Make sure that the installation media contains the correct drivers, and then click OK.

Reports online did not sound promising, e.g.: 'No device drivers were found' error when installing windows 7 on new computer "FINAL EDIT - If you're here for answers, while nothing here worked for me, that doesn't mean it won't work for you, so I suggest you try everything here if you can. What I ended up doing is giving up on windows 7 and instead installed windows 10.").

Coming up with a working solution took more time than anyone else should ever have to invest in this issue again. Here's what worked for me:

  1. Format a USB drive as NTFS. If necessary, use diskpart.exe:

    1. list disk

    2. select disk x, where x is the number assigned to your USB drive

    3. clean

    4. create partition primary

    5. select partition 1

    6. active

    7. format fs=ntfs quick

    8. assign

    9. exit

  2. Copy files and folders from Windows 7 ISO or DVD to USB drive

  3. Download Intel(R) USB 3.0 eXtensible Host Controller Driver and extract contents

  4. Download, install, and run NTLite

  5. Click "Add" > "Image folder" > select drive letter of USB drive (E: in the example that follows) > click "Select Folder"

  6. Under "Operating systems | install.wim", right click the version of Windows that corresponds to your license and then click "Load":

  7. Once loading has completed, click "Drivers" in the left-hand column:

  8. Click "Add" > "Folder with multiple drivers" > browse to the folder containing extracted driver(s) > click "Select Folder"

  9. Click "Apply" in left-hand column > click green "Process" button at top left > "Yes"

  10. When processing is complete, click "Source" in the left-hand column to return to the main window

  11. Repeat steps 6 through 10 for the two entries under "Boot/Setup | boot.wim" (in the screenshots above, they are "Microsoft Windows PE (x86)" and "Windows 7 Setup")

  12. If desired, make an ISO image of the USB drive (for burning to DVD-R, etc) by right clicking E: under "Image history" and then clicking "Create ISO"

  13. The USB drive or ISO image can now be used to install Windows 7 on the affected computer (see below for a list of all affected Dell models)



  • Latest Intel, AMD chips will only run Windows 10 ... and Linux, BSD, OS X - "One example of Microsoft holding back support is the xHCI USB controller in sixth-generation Skylake and seventh-generation Kaby Lake: Windows 7 doesn't support that USB hardware, so installing the operating system from a USB stick using those chips is tricky. Intel provides xHCI drivers for Windows 7 once it's up and running."

  • How to Install Windows 7 with only USB 3.0 Ports outlines a similar process using dism, but assumes a preexisting USB-based Windows 7 installer.

  • /windows | Aug 21, 2016

    All empty boats #

    If a man is crossing a river
    and an empty boat
    collides with his own boat,
    he won’t get offended or angry,
    however hot-tempered he may be.
    But if the boat is manned,
    he may flare up, shouting and cursing,
    just because there’s a rower.

    Realize that all boats are empty
    as you cross the river of the world,
    and nothing can possibly offend you.

    From chapter 43 of Stephen Mitchell's The Second Book of the Tao

    /misc | Jul 19, 2016

    Missing photos after upgrading iPhoto 6 to iPhoto 9.6.1 or Photos 1.5 #


    1. Old Mac running OS X 10.6.8 with iPhoto 6 library containing 5,238 items
    2. Imported data, including iPhoto Library, to new Mac running OS X 10.11.5 and Photos 1.5. via Migration Assistant.
    3. Photos Library displayed only 1,794 photos (through September 2010), even though all photos were found in ~/Pictures/Photos Library.photoslibrary/Masters and ~/Pictures/Photos Library.photoslibrary/Previews.
    4. Deleted Photo Library and iPhoto Library, manually copied iPhoto Library from old Mac again, relaunched both iPhoto and Photos - same result.
    5. Attempting to run iPhoto Library Upgrader 1.1 (which "prepares libraries from iPhoto 7 or earlier so they can be upgraded with the current version of iPhoto") on yet another copy of the original iPhoto Library returned "Your library can open with the current version of iPhoto and does not need to be prepared with this tool."
    6. Rebuilding the iPhoto library on both the old and new Mac (by holding down Command and Option while starting iPhoto, etc) did not help.
    7. Opening yet another copy of the original iPhoto Library in iPhoto Library Manager showed only the same 1,794 photos and misidentified the library as an iPhoto 8 library.


    1. Copied original iPhoto Library to a third Mac running OS X 10.6.8 and iPhoto 6 (all 5,238 items appeared in iPhoto).
    2. Installed iPhoto Library Manager 3.8.6 (for Mac OS X 10.5.8 and iPhoto 7.1.5 and earlier).
    3. iPhoto Library Manager.app > File > Rebuild Library. As Christoph Bartneck explains, "The software has a tool to recover corrupted libraries. But it works differently from Apple’s approach. It starts with a fresh clean library and imports all the photos, including their meta data, such as location, faces, date. It also manages to rebuild albums and folders."
    4. Copied rebuilt iPhoto Library to new Mac running OS X 10.11.5.
    5. Ran iPhoto Library Upgrader 1.1 (which now ran normally intead of returning "Your library can open with the current version of iPhoto and does not need to be prepared with this tool" as above).
    6. Opened the upgraded iPhoto Library in iPhoto 9.6.1, which reported "This photo library needs to be upgraded to work with this version of iPhoto." After the upgrade process, all 5,238 items (including albums, metadata, etc) appeared intact!
    7. Opened Photos.app which imported the entire iPhoto Library successfully.

    /mac | Jul 18, 2016

    Copy actual URLs from Google search results, not nested nonsense #

    Redirects in Google search results are not only a privacy concern, but also a major pain when trying to simply copy and paste links: These two extensions/add-ons (via HackerNews) help reduce needless suffering:

    /misc | Jul 10, 2016

    Stop ransomware process and dump memory to extract key #

    Anti Ransom v3 "creates a random decoy folder with many useless random documents (Excel, PDF) and then it monitors the folder waiting for changes. When a change is detected, AntiRansom tries to identify which process is the responsible of such change and then stops it and dump the memory process (hopefully the key or password that is being used by the ransomware is inside)".

    /windows | Jul 09, 2016

    Subscribe or visit the archives