Hardware recycling with Apple

mhasman
Valued Contributor

Hello,

Anybody use Apple Recycling Program for old macs disposal?

I am looking for some Recycling Program documentation which officially confirms the secured disposal, etc. Would you please direct me where I might find it? Appreciate that!

Thanks!

8 REPLIES 8

elliotjordan
Contributor III

Always wipe your devices before you dispose of them, regardless of the recycling service you use.

That being said, Apple uses PowerON for their recycling. Here's what you're probably interested in:

http://reuserecycle.poweron.com/terms

Removing Data: Service Provider does remove data from your product, (however makes no guarantee in this regard). You must back up your data and then erase it from your product before shipping. By sending Service Provider your product, you agree to, upon its acceptance by Service Provider, release us from any claim as to the product, the data stored in such product, or any information on any media used in conjunction with the product and which you send to Service Provider, or for such data's security, integrity, confidentiality, disclosure or use. Service Provider is not responsible for any loss suffered by you due to any data that is not erased from the product.

mhasman
Valued Contributor

@elliotjordan Thank you Elliot!

adamcodega
Valued Contributor

On the note of device wiping:

Unencrypted disk:

diskutil secureErase 1 /dev/[disk number]

Encrypted disk, just have to destroy the partition scheme:

diskutil cs delete [Core Storage UUID]

I have a script that finds the internal storage disk, checks if it's encrypted or not, and runs the applicable command from above. You could run this script in a netbooted OS to wipe computers being returned or recycled.

For bonus points you can put a Platypus GUI wrapper on the script and have it on the desktop of the netboot OS and it will show output of the script as it runs. Then anyone can help you wipe computers, or you can wipe a bunch easily because all you have to do is double click the app.

Please be careful with a disk erasing script. Use it at your own risk.

#!/bin/bash
# Written by Rusty Myers
# 2013-07-12
# Erase FV Volume
# Uses rtroutons code: https://github.com/rtrouton/rtrouton_scripts/blob/master/rtrouton_scripts/filevault_2_encryption_check/filevault_2_status_check.sh
# updated #1
# Tweaked 2016 by Adam Codega
#

function Log ()
{
    logText=$1
    # indent lines except for program entry and exit
    if [[ "${logText}" == "-->"* ]];then
        logText="${logText} : launched..."
    else
        if [[ "${logText}" == "<--"* ]];then
            logText="${logText} : ...terminated"
        else
        logText="   ${logText}"
        fi
    fi
    date=$(/bin/date)
    echo "${date/E[DS]T /} ${logText}"
}

function buildDiskArray () {
    # Resent Variables
    SSD=""
    HDD=""
    UUID=""
    DiskListArrayNumber=0
    DiskList=""
    # Reset Array
    unset DiskListArray
    GROUPNAME="CLCLVG"

    # Build array of internal disks in Mac (disk0, disk1, disk2, etc...)
    DiskList=$(diskutil list | grep -i ^/dev | awk '{print $1}')

    for i in $DiskList; do
        # Run through each disk connected
        # put each disk's info into a plist
        diskutil info -plist $i > "$TMP_LOCATION/tmpdisk.plist"
        # Yes if internal
        if [[ $(defaults read "$TMP_LOCATION/tmpdisk.plist" Internal) == 1 ]]; then
            Log "Disk $i is Internal"
            Log "Disk array number: $DiskListArrayNumber"
            # Set array with internal disk
            DiskListArray[$DiskListArrayNumber]="$i"
            # Increment array
            DiskListArrayNumber=$(expr $DiskListArrayNumber + 1)
        fi
    done
    Log "There are ${#DiskListArray[@]} internal disks in the DiskListArray"
}

function ifError () {
    # check return code passed to function
    exitStatus=$?
    if [[ $exitStatus -ne 0 ]]; then
    # if rc > 0 then print error msg and quit
    echo -e "$0 Time:$TIME $1 Exit: $exitStatus"
    exit $exitStatus
    fi
}

Log "-->"
Log "Hello Computer."

# Variables
TIME=`date "+2013-07-12-21-43-51"`
VOLUMENAME="Macintosh HD"
# net install env have the /System/Installation/ as rw
TMP_LOCATION="/private/tmp"
CORESTORAGESTATUS="$TMP_LOCATION/corestatus.txt"

# Check for the number of internal disks
buildDiskArray

# If there is one internal drive, there is NO LVG
if [[ "${#DiskListArray[@]}" -lt 2 ]];then
    # one disk means disk 0 is our target
    Log "Internal Disk: ${DiskListArray[0]}"
    INTERNALDISK="${DiskListArray[0]}"

    diskutil cs info "$INTERNALDISK" > "$CORESTORAGESTATUS" 2>&1

    # If the Mac is running 10.7 or higher, but the boot volume
    # is not a CoreStorage volume, the following message is
    # displayed without quotes:
    #
    # "FileVault 2 Encryption Not Enabled"

    if grep -iE 'is not a CoreStorage disk' $CORESTORAGESTATUS 1>/dev/null; then
       Log "FileVault 2 Encryption Not Enabled"
       rm -f "$CORESTORAGESTATUS"
       # do one pass wipe
       diskutil secureErase 1 "$INTERNALDISK"
       ifError "Erasing internal disk $INTERNALDISK failed. We've got to do this by hand!"
    else
       Log "FileVault 2 Encryption is Enabled"
       CoreStorageUUID=`/usr/sbin/diskutil cs list | awk '/Logical Volume Group/ {print $5}'`
       /usr/sbin/diskutil cs delete $CoreStorageUUID
       ifError "Erasing internal disk $INTERNALDISK failed. We've got to do this by hand!"
    fi
    Log "************"
    Log "******  All Done. Thanks!  ******"
    Log "************"

fi
Log "<--"

exit 0

dmichels
Contributor II

For lab computers that do not have sensitive data, can't we just run the WIPE command, in the JSS Management Panel?

jesseshipley
Contributor

Just as a note on secure erasure, don't bother with SSDs. It doesn't do anything of value.

Chris_Hafner
Valued Contributor II

@jesseshipley Thanks for pointing this out. I've been digging into TRIM ever since I saw your post. It seems that we're just missing a tool that really should be provided by Apple. The concept of a secure erase is quite simple and ultimately quick on an SSD with the proper utility.

That said, it looks like actually performing a "secure erase" or other types of multi-pass writes could potentially decrease the lifespan on an SSD. I'm simply posting this because I had no idea.

jesseshipley
Contributor

@Chris_Hafner TRIM is provided by Apple. It was always enabled on all of their SSDs and support for third party was added in Yosemite. The best thing you can do these days, no matter the device, is make sure you enable FV2 when the machine is first provisioned. That way you can just do a regular erase when you are done and not have to worry about things.

Chris_Hafner
Valued Contributor II

Thanks! @jesseshipley I had thought of that, but in our environment (BYOD, EDU) FV2 is a bit heavy handed for our students and temporary loaners. For our admins and the like, sure. I just wish I had a quick command that could be issues to flash the SSDs quickly and programmatically like the examples above.