Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Fix OS X wrongly reporting an application is corrupted (OSStatus error 99999) System 10.8
OS X stopped letting me install any software not coming from Apple. I wanted to update some software, and instead of seeing the "Quarantine Dialog" box telling that the software was just downloaded from Internet, I got a dialog box telling me that the software was corrupted.

In fact, it was not corrupted—I could use it on another Mac. The issue wasn't affecting Apple software, only third-party apps. Only by setting the "Anywhere" setting in System Preferences -> Security for installing apps could I install software again. But I didn't want to use that setting.

Looking in the Console, I saw error 99999 from CoreServiceUIagent when I tried to install software.

CoreServicesUIAgent[2105]: Error SecAssessmentCreate: L’opération n’a pas pu s’achever. (OSStatus erreur 99999).


After some research and help from Apple I found that a specific file's corruption was the source of my woes.

A way to confirm that you are this weird situation is to use the SecAssessment system policy security command line utility on a system file e.g. the ls command

$spctl --assess --verbose --raw /bin/ls

the result of this command is normally
$spctl --assess --verbose --raw /bin/ls
/bin/ls: accepted

and a dump of xml properties

in my case the output was
$spctl --assess --verbose --raw /bin/ls
/bin/ls: unknown error 99999=1869f

showing the 99999 error

The SystemPolicy got corrupted somehow. Fortunately there is a default database that you can restore.

Use this command (you need to be admin)
$ sudo cp /var/db/.SystemPolicy-default /var/db/SystemPolicy
and reboot; that will restore the ability to install software, and is likely to restore things back to normal.

You may then see an occasional security dialog box coming back again asking confirmation to run a software that you previously authorized, but this is the only drawback to resetting that database.
  Post a comment  •  Comments (1)  
  • Currently 1.94 / 5
  You rated: 1 / 5 (17 votes cast)
 
[8,441 views]  View Printable Version
Disable Caps Lock, or at least get a warning when it's on System 10.8
Few of us ever REALLY want Caps Lock turned on; when we do hit it, we do so accidentally. There are workarounds.

You can just disable the key entirely, of course. To do so, go to System Preferences, and choose Keyboard. Then click the Modifier Keys button at the lower right of the Keyboard tab. Finally, set Caps Lock to No Action (or, alternatively, have it pull side duty as a bonus Control, Option, or Command key).

That's a great solution for those of us who only ever trigger Caps Lock unintentionally. But what about folks who genuinely want the option to quickly enter a mode for NONSTOP CAPITALIZATION, yet still want to avoid entertaining said mode accidentally? For those troubled typists, the solution is a free utility called CapSee. It displays an unmissable on-screen indicator when you're in Caps Lock mode. ISN'T THAT GREAT?
  Post a comment  •  Comments (11)  
  • Currently 1.08 / 5
  You rated: 2 / 5 (52 votes cast)
 
[8,334 views]  View Printable Version
Help Apple cut back on iMessage spam iOS devices

If you haven’t yet been hit by iMessage spam, you’re lucky: It’s awful. And it’s even worse when you realize that the spammer can know with certainty that the unwanted message really was delivered to you. As first noted by MacStories, Apple recently posted a way to deal with unwanted iMessages in your inbox.

Here’s the skinny.

When an unwanted, spammy iMessage arrives, first take a screenshot. (If you got the iMessage on your iOS device, press the Home and Sleep/Wake buttons at the same time. If you see the spammy iMessage on your Mac, use Command-Shift-3.)

Apple also needs to see the full email address or phone number of the person you received the spammy message from. You can either screenshot that data too, or copy and paste it.

Once you have all those details assembled, compose an email to imessage.spam@icloud.com. (If you receive a lot of said spam, like I do, it might be wise to save that address as a contact.)

Attach the screenshot, the details about the sender, and include the date and time you received the message. You won’t see immediate action, but with luck, Apple will pool these reports and eliminate spammers from its iMessage network.

And if all this seems like a lot of work, remember that come iOS 7, you’ll be able to block unwanted callers, texters, and iMessage senders yourself.

  Post a comment  •  Comments (2)  
  • Currently 3.29 / 5
  You rated: 5 / 5 (14 votes cast)
 
[7,525 views]  View Printable Version
Get back online at restaurants that boot you off the Wi-Fi after 30 minutes Web Browsers

You’re at a fine establishment which offers delicious, free Wi-Fi in addition to delicious, for-pay food. Perhaps served in bread bowls. But like your soup, the Wi-Fi eventually dries up: Restaurants and coffee shops that want to get customers out so that new ones can come in might boot you off the Wi-Fi automatically after thirty minutes.

But you’re not like other customers! You’re going back up to the line to buy another beverage and perhaps a scone. You deserve to get back on that Wi-Fi, dagnabbit. And there’s a way.

We’ve covered changing your MAC address via Terminal before. But now you know that you can use this trick to get back online at Panera Bread and other establishments with time-limited Wi-Fi.

First, get your current MAC address. You can find it in many places; one such place is System Preferences -> Network -> Wi-Fi -> Hardware tab. But since you’re about to get down and dirty Terminal, you can instead launch it, and type:

sudo ifconfig en0

Note: en0 might not be right for your Mac. You might need en1 instead; if your Mac has an ethernet port (i.e., isn’t a MacBook Air), that port owns en0, and your Wi-Fi card is en1. If you’re not sure which to use, try typing just

sudo ifconfig
and pressing Return: The device listed with “status: active” is probably the one you want to work with. So if you need to use en1 and not en0, tweak the instructions below as needed.

After you press Return and provide an administrator password, look for the line labeled “ether,” and note the colon-separated string of letters and numbers. It will look something like: q3:2x:17:08:43:8f. Copy it to your clipboard. Paste it somewhere special. Don’t lose your real MAC address.

Change one thing in the address. Perhaps tweak the last letter to the next one in the alphabet, or increase the final number by one. In my example, I might make my new, fake MAC address q3:2x:17:08:43:8g.

To save that new address, perform these commands in Terminal:

sudo ifconfig en0 ether PUT YOUR NEW MAC ADDRESS HERE
sudo ifconfig en0 down
sudo ifconfig en0 up

Presto-change-o! Your Mac’s now using a new MAC address, and you should be able to reconnect to the restaurant’s Wi-Fi. But if you do so and you don’t buy more food at the same time, you’re earning all kinds of bad karma.

Just remember to change your MAC address back again when you’re finished, using the same steps in Terminal.

  Post a comment  •  Comments (10)  
  • Currently 2.85 / 5
  You rated: 5 / 5 (13 votes cast)
 
[11,717 views]  View Printable Version
More easily dial extensions with your iPhone iOS devices
Whether you're frequently calling a friend or loved one who's at extension 123, or you know that to speak to a human in tech support you need to press 2, then 1, then 2 again—you've no doubt faced the annoyance that is dialing said numbers on your iPhone. But there's a better way that doesn't require you toggle the visibility of the keypad after your call first connects.

As The Mac Observer explains, you can add certain details to a contact's phone number to let your iPhone virtually punch the right buttons on its own. When you're editing a contact, you can press the +*# key at the bottom left of the keypad to insert a Pause or a Wait.

As TMO explains, a Pause instructs your iPhone to wait two seconds, and then dial whichever numbers come next. A Wait actually adds a custom button the phone screen, so that you tap a single key to enter in a new series of digits whenever you're ready.

Head over to TMO for the full details of a hint that's a nice update to this one.
  Post a comment  •  Comments (0)  
  • Currently 3.86 / 5
  You rated: 4 / 5 (7 votes cast)
 
[7,113 views]  View Printable Version
Do more with Siri and navigation Apps

You already know that you can use Siri to ask for directions. You might say, “Give me directions to 1 Infinite Loop in Cupertino, California,” or you might say “Take me home” when you’re out and about.

But there are a few other things you can say to Siri whilst your iOS device is helping you navigate, and you might not know about these options.

Ask Siri, “Are we there yet?”—or similar, less obnoxious incarnations of that query—and you’ll get an update on your estimated time of arrival. You can get more specific, too. Ask, “When is my next turn,” and Siri will give you the number of minutes until you should encounter it.

Tank running low? Ask Siri where the nearest gas station is, and you’ll get suggestions for fill-up spots along your current route. If you tap one, though, you’ll cancel your current navigation in lieu of the new destination instead.

  Post a comment  •  Comments (1)  
  • Currently 3.14 / 5
  You rated: 2 / 5 (7 votes cast)
 
[7,356 views]  View Printable Version
How to pull a password from Keychain to use in a script Apps
Quite some time ago, I needed to create a script which would mount a network volume. I did not want to hardcode username and password into the script, so I kept looking for ways to accomplish this using OS X’s built-in Keychain. The following example uses a script to mount a network volume, using variables for the currently logged-in user, and fetches its password from the Keychain. Of course, you can do other things with this approach, so I figured it might be of use to someone out there.

The following is a combination of these 2 links:
http://hintsforums.macworld.com/showthread.php?t=163359
http://blog.macromates.com/2006/keychain-access-from-shell/

This script gets the password for the currently logged in user and pulls its password from the Keychain. It then mounts a share using the variables without hardcoded username/password. The mount point is not in /Volumes on purpose, because mounting the volume would not work for User B when Fast User Switching is in use and User A remains logged in without having unmounted the volume. echo $USER gets the username of the currently logged in user.
$(get_pw) contains the password retrieved from the user’s keychain.

In this case I am mounting an AFP volume, but it could be any other protocol, as well as something completely different which has nothing to do with mounting volumes.

get_pw () {
  security 2>&1 >/dev/null find-generic-password -ga $USER 
  |ruby -e 'print $1 if STDIN.gets =~ /^password: "(.*)"$/'
}
mkdir ~/Data
mount -t afp afp://$USER:$(get_pw)@10.0.77.3/Data ~/Data
Before running this script you have to create a new entry using Keychain Access with the username and its (server) password.

The steps are as follows:

Manually create a Keychain entry for the AFP user account. To do so open Keychain Access.app and hit cmd+n. Keychain Item Name does not matter, but Account and Password have to be filled out with the user’s username+password. That is the login info of the AFP account on the server!

Then create a shell script the way you prefer. I usually use pico, but there’s also a "run shell script" workflow in Automator if you want to use it. The script is shown above. Here’s a short explanation of what’s happening in the script:

We issue the security command which itself is able to read info from the keychain. It fills the variable $get_pw with the password it retrieved from the keychain. That’s why you need to create the keychain entry mentioned above. Instead of hardcoding which user’s password to get we use another variable called $USER. This always represents the currently logged in user (try echo $USER in Terminal as an example). In the next step we create the mount point, but instead of the default location (/Volumes) we use ~/ to ensure the mount point is inside the user home. This prevents the mount point from being already in use when using Fast User Switching. The last step then mounts the desired share using both variables. In my case that is the share Data on the server 10.0.77.3 which will be mounted at ~/Data.

In order for this to work you need to use network user accounts (Open Directory, LDAP, Active Directory, etc.) OR have to use the exact same username (password does not matter) for the local account and the account on the afp server. That is because $USER will always return the currently logged in user’s name which will be the local account if you are not using network accounts. In my case it was perfect that way, because I use network accounts anyway. You could always replace $USER in the script with jon.doe while losing the flexibility of the solution. I wanted a script without hardcoded usernames or passwords which could get the needed information dynamically from the keychain, which is exactly what this does.
  Post a comment  •  Comments (4)  
  • Currently 3.17 / 5
  You rated: 5 / 5 (6 votes cast)
 
[11,832 views]  View Printable Version
Send an RSS item from ReadKit to Safari's Reading List Apps
ReadKit (http://www.readkitapp.com) is an RSS reader that synchronizes with multiple RSS services. It supports sending articles to read-later services such as Instapaper, Readability and Pocket. However, out of the box there is no way to send an article to Safari's Reading List (aside from manually copy-and-pasting the URL into Safari).

Reading List (RL) is very handy if you have multiple iOS devices, since articles in RL are automatically synchronized and downloaded on each devices. Below, I will describe a simple service that import the currently selected article in ReadKit into RL.

  • Open Automator and create a new Service. Call the Service "Add to Reading List"
  • Select Service receives: "no input"
  • Click on the next drop-down box, select "Other..." and find ReadKit in the Applications folder
  • On the left-hand side sidebar, select "Utilities" and then double-click the action "Run AppleScript"
  • Copy and paste the content of this script into the window
  • Save the service and quit Automator.
  • To add a keyboard shortcut, go to System Preferences -> Keyboard -> Keyboard Shortcuts and select "Services"
  • Find the "Add to Reading List" service and add your preferred shortcut.
  Post a comment  •  Comments (1)  
  • Currently 2.57 / 5
  You rated: 2 / 5 (7 votes cast)
 
[6,982 views]  View Printable Version
Turn off an iPad or iPhone without touching the power switch iOS devices

My friend Frank works for Canon in Manhattan, and occasionally gives demos in a room with locked-down iPads. Sometimes those iPads need to be rebooted—but Frank has no access to the sleep/wake switch ostensibly required to power off an iPad.

In the past, I’ve suggested that Frank “reset” something (under Settings -> General -> Reset) that’s easy to set again; resetting Location & Privacy settings doesn’t mess too much up, and it restarts the iPad when you tap it.

But there’s a better way. Also in the Settings app, head to General -> Accessibility, and and turn on Assistive Touch. That adds a draggable dot control to your screen, meant for people with physical challenges that prevent them from triggering certain iOS actions the traditional way. Tap the dot, then tap Device, and finally tap and hold Lock Screen—a software equivalent of the sleep/wake button. After a few moments, the familiar Slide to Power Off message appears, and you can shut the iPad down.

The same technique works on the iPhone.

  Post a comment  •  Comments (4)  
  • Currently 3.25 / 5
  You rated: 2 / 5 (8 votes cast)
 
[48,497 views]  View Printable Version
Cache Google Maps for offline access on iOS Apps
Google's recent update for the Maps app introduced a variety of new features and improvements. One of those is the ability to save map data for offline access.

If you use Google Maps on a Wi-Fi only iPad, or if you'll be traveling somewhere where cellular data is spotty, knowing how to enable offline caching of map data is pretty important. CNet explained the trick recently.

First, you'll need to zoom in a bit; you can't cache a widely-zoomed-out map view. Then, when you're at the spot you'd like to cache, type OK maps into the search box, and then tap Search.

When you do that, a Google Maps icon will appear briefly, followed by a message indicating that your map data was saved. Now, even when you're offline, if you navigate to your cached areas, the map data will appear.
  Post a comment  •  Comments (6)  
  • Currently 3.57 / 5
  You rated: 5 / 5 (7 votes cast)
 
[16,275 views]  View Printable Version