1 #!/bin/bash 2 3 # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 # Changes the channel on a Chrome OS image. 8 9 # Load common constants and variables. 10 . "$(dirname "$0")/common.sh" 11 12 set -e 13 14 if [ $# -ne 2 ]; then 15 cat <<EOF 16 Usage: $PROG <image.bin> <channel> 17 18 <image.bin>: Path to image. 19 <channel>: The new channel of the image. 20 EOF 21 exit 1 22 fi 23 24 main() { 25 local image=$1 26 local to=$2 27 local rootfs lsb 28 29 rootfs=$(make_temp_dir) 30 lsb="${rootfs}/etc/lsb-release" 31 mount_image_partition "${image}" 3 "${rootfs}" 32 # Get the current channel on the image. 33 local from=$(grep '^CHROMEOS_RELEASE_TRACK=' "${lsb}" | cut -d '=' -f 2) 34 from=${from%"-channel"} 35 echo "Current channel is '${from}'. Changing to '${to}'." 36 37 local sudo 38 if [[ ! -w ${lsb} ]] ; then 39 sudo="sudo" 40 fi 41 ${sudo} sed -i "s/\b${from}\b/${to}/" "${lsb}" && 42 echo "Channel change successful." 43 cat "${lsb}" 44 } 45 46 main "$@" 47