123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/bin/bash
- #********************************************************************************#
- #* *#
- #* Copyright (c) 2005 Instituto Nokia de Tecnologia - INdT - Manaus Brazil *#
- #* *#
- #* This program is free software; you can redistribute it and#or modify *#
- #* it under the terms of the GNU General Public License as published by *#
- #* the Free Software Foundation; either version 2 of the License, or *#
- #* (at your option) any later version. *#
- #* *#
- #* This program is distributed in the hope that it will be useful, *#
- #* but WITHOUT ANY WARRANTY; without even the implied warranty of *#
- #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See *#
- #* the GNU General Public License for more details. *#
- #* *#
- #* You should have received a copy of the GNU General Public License *#
- #* along with this program; if not, write to the Free Software *#
- #* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *#
- #* *#
- #********************************************************************************#
- #********************************************************************************#
- #* *#
- #* File: force_erase.sh *#
- #* *#
- #* Description: used to force-erase a card, usually when the user has forgot *#
- #* the password and wants to unlock the card. NOTE: all the card's contents are *#
- #* lost when using this option! It only works for _locked_ cards. *#
- #* *#
- #* Total Tests: 1 *#
- #* *#
- #* Author: Anderson Briglia <anderson.briglia@indt.org.br> *#
- #* Anderson Lizardo <anderson.lizardo@indt.org.br> *#
- #* Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br> *#
- #* *#
- #* *#
- #* *#
- #********************************************************************************#
- force_erase()
- {
- export TST_TOTAL=1 # Total number of test cases in this file.
- # Set up LTPTMP (temporary directory used by the tests).
- LTPTMP=${TMP} # Temporary directory to create files, etc.
- export TCID="force_erase" # Test case identifier
- export TST_COUNT=0 # Set up is initialized as test 0
- RC=0 # Exit values of system commands used
- echo "=== Erase MMC Password (AND its contents!) ==="
- if grep -q "unlocked" /sys/bus/mmc/devices/mmc0\:*/lockable; then
- echo -n "*** No locked MMC card was found. You can only use the forced "
- echo "erase operation on locked cards."
- exit 1
- fi
- while [ -z "$yn" ]; do
- read -p "WARNING: all card contents will be lost! Continue? (y/n) " yn
- case "$yn" in
- y|Y) break ;;
- n|N) exit 0 ;;
- *) yn=""
- esac
- done
- echo "Erasing card. This may take some time, wait..."
- echo erase > /sys/bus/mmc/devices/mmc0\:*/lockable || \
- { echo "*** Error erasing card" >&2; exit 1 ;}
- # Clear session keyring
- # FIXME: It assumes we have only the MMC key there
- keyctl clear -3
- echo "Card unlocked and erased."
- }
- force_erase || exit $RC
|