Skip to content

Instantly share code, notes, and snippets.

View joemcmahon's full-sized avatar

Joe McMahon joemcmahon

  • Ziprecruiter.com
  • San Jose, CA
View GitHub Profile

Removing a Mac's Firmware Password By Reflashing EFI ROM

According to Apple, the only way to remove an unknown firmware password from a MacBook (2011 and later) is to take it to the Apple Store with the original proof-of-purchase. However, I've found that there is another way, which I've been successful with for the unibody MacBook Pro--it's essentially just modifying a couple bytes in the EFI ROM, which should be simple. What's not simple, however, is figuring out how to read and write to the EFI chip. In this post, I'll talk about the process that I figured out and what worked for me.

The Official Method

Apple's method of resetting the firmware password is not reproducible, as Apple generates an SCBO file that unlocks the EFI using their private key. You can read more about this process here. The problem with this system is that, if you are in the unfortunate situation of neither having the firmware unlock pass

@joemcmahon
joemcmahon / NATO::Synth.pm
Created August 27, 2023 02:53
Simulated numbers station using OS X's "say" command
=head1 NAME
NATE::Synth - Synthesize a "numbers station" on OS X
=head1 SYNOPSIS
perl NATO/Synth.pm
=head1 DESCRIPION
@joemcmahon
joemcmahon / saveDataFrameAsCSV.scala
Last active September 9, 2021 02:39
A syntax-corrected version of the code in https://stackoverflow.com/a/46594963/39791
/**
*
* Write a dataframe to CSV at the location specified. Assumes that the contents
* of the dataframe being written are small enough to fit in memory on the Spark
* master. (I use this for deequ suggested checks, which is usually less than 30
* or so entries.)
*
*/
import org.apache.spark.sql._
@joemcmahon
joemcmahon / facebook-contact-info-summary.rb
Created March 24, 2018 01:20 — forked from dylanmckay/facebook-contact-info-summary.rb
A Ruby script for collecting phone record statistics from a Facebook user data dump
#! /usr/bin/env ruby
# This script can be used to parse and dump the information from
# the 'html/contact_info.htm' file in a Facebook user data ZIP download.
#
# It prints all cell phone call + SMS message + MMS records, plus a summary of each.
#
# It also dumps all of the records into CSV files inside a 'CSV' folder, that is created
# in whatever the working directory of the program is when executed.
#
@joemcmahon
joemcmahon / keychain.rb
Created October 16, 2011 20:59 — forked from cyberfox/keychain.rb
Convert OS X Keychain exported entries into logins for 1Password import
#!/usr/bin/env ruby
#
# Usage:
# security dump-keychain -d login.keychain > keychain_logins.txt
# # Lots of clicking 'Always Allow', or just 'Allow', until it's done...