Skip to content

Instantly share code, notes, and snippets.

@libcrack
Last active May 5, 2016 03:00
Show Gist options
  • Select an option

  • Save libcrack/7e924514f2e26266d7b3019b52c6c208 to your computer and use it in GitHub Desktop.

Select an option

Save libcrack/7e924514f2e26266d7b3019b52c6c208 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# [email protected]
# jue may 5 04:11:58 CEST 2016
# https://copperhead.co/android/docs/install
sec=5
sudo=
firmware="hammerhead-mmb29v"
update_zip="image-hammerhead-mmb29v.zip"
boot_img="bootloader-hammerhead-hhz12k.img"
radio_img="radio-hammerhead-m8974-2.0.50.2.28.img"
RED="\e[31m"
BOLD="\e[1m"
RESET="\e[0m"
msg(){ printf "${BOLD}[*]${RESET} ${@}\n"; }
trap byz SIGINT
byz() { printf " Ctrl+C: ${RED}exit${RESET}\n"; exit 0; }
if [ $UID -ne 0 ]; then
printf "${RED}Got root?${RESET}\n"
# exit 1
sudo="sudo"
fi
if [ -z "$1" ]; then
printf "Usage: ${0} <update_dir>\n"
printf "\t${0} hammerhead-mmb29v\n\n"
exit 1
fi
firmware="$1"
if [ -d "$firmware" ]; then
msg "Entering ${RED}$firmware${RESET}"
else
printf "Error: \"${RED}${firmware}${RESET}\"\n"
exit 1
fi
flash_boot(){
cd "$firmware"
msg "Flashing bootloader ${RED}${boot_img}${RESET}"
$sudo fastboot flash bootloader "$boot_img"
msg "Rebooting into bootloader"
$sudo fastboot reboot-bootloader
msg "Sleeping ${RED}${sec}${RESET} secs"
cd "$OLDPWD"
sleep "$sec"
}
flash_radio(){
cd "$firmware"
msg "Flashing radio ${RED}${radio_img}${RESET}"
$sudo fastboot flash radio "$radio_img"
msg "Rebooting into bootloader"
$sudo fastboot reboot-bootloader
msg "Sleeping ${RED}${sec}${RESET} secs"
cd "$OLDPWD"
sleep "$sec"
}
flash_zip(){
cd "$firmware"
msg "Appling update${RED}${update_zip}${RESET}"
$sudo fastboot -w update "$update_zip"
msg "Sleeping ${RED}${sec}${RESET} secs"
cd "$OLDPWD"
sleep "$sec"
}
get_dev(){
dev="$($sudo adb devices | grep '^[a-z0-9]' | awk '{print $1}')"
if [ -z "$dev" ]; then
printf "${RED}Error: no adb device${RESET}\n"
else
export ANDROID_SERIAL="$dev"
fi
}
get_flashdev(){
flashdev="$($sudo flashboot flash devices | grep '^[a-z0-9]' | awk '{print $1}')"
if [ -z "$flashdev" ]; then
printf "${RED}Error: no flashboot device${RESET}\n"
exit 2
fi
}
lock_boot(){
$sudo fastboot flashing lock \
|| $sudo fastboot oem lock # Nexus 5 and older
return $?
}
unlock_boot(){
$sudo fastboot flashing unlock \
|| $sudo fastboot oem unlock # Nexus 5 and older
return $?
}
ANDROID_SERIAL="$($sudo adb devices | grep '^[a-z0-9]' | awk '{print $1}')"
get_dev
msg "Rebooting $dev into bootloader mode"
$sudo adb reboot bootloader -s "$dev"
# unlock_boot
flash_boot
flash_radio
flash_zip
# lock_boot
msg "Done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment