본문 바로가기

개발이야기/Android

Pixel에 Android 이미지 설치할때 오류 fastboot too old; please download the latest version 해결하기

안드로이드 application개발에 대응하다 보면 android version upgrade에 민감하게 된다. 여러 api들이 생기고 사라지기 때문에 미리 android os를 접하고 무슨 에러가 나는지, 어떤 기능을 새로 사용가능한지 확인해야 한다.

 

이를 위해서 대부분의 android application 개발자들은 구글 공식 테스트용 단말로 사용가능한 pixel을 가지고 테스트하는데 미리 android 공홈에서 preview os image를 다운받아서 os를 단말기에 올릴 수 있다.

 

Pixel용 Android Q 베타 시스템 이미지 다운로드 공식 홈페이지

 

Pixel용 다운로드  |  Android Developers

Instructions for downloading and installing preview system images for Pixel devices.

developer.android.com

그런데 os를 업그레이드 하던도중 아래와 같은 에러를 만날 수도 있다.

in ~/Downloads/sailfish-qpp2.190228.021 
$ ./flash-all.sh
./flash-all.sh: line 17: --version: command not found
./flash-all.sh: line 17: [: -ge: unary operator expected
fastboot too old; please download the latest version 
at https://developer.android.com/studio/releases/platform-tools.html

설명에 따르면 상기 홈페이지로 접속하여 android platform-tool인 fastboot file을 업그레이드하라고 하며, 이와 동시에 에러가 나면서 os를 단말에 설치가 중단되게 된다. 홈페이지로 접속하여 platform-tools를 upgrade해도 정상적으로 os설치가 불가한 경우도 있다.

 

fastboot란?
adb 기능 중 하나로서 android의 Flash memory file system을 수정하는데 사용한다. os를 업그레이드 할때 필수 tool이다.

 

해결방법

flash-all.sh file을 열면 아래 코드와 같이 되어 있는데 이 중 if script구문을 제거하고 실행시키면 정상 동작한다.
(sh 파일은 sublime text, vi, vim 등으로 수정 가능)

#!/bin/sh

# Copyright 2012 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

if ! [ $($(which fastboot) --version | grep "version" | cut -c18-23 | sed 's/\.//g' ) -ge 2802 ]; then
  echo "fastboot too old; please download the latest version at https://developer.android.com/studio/releases/platform-tools.html"
  exit 1
fi
fastboot flash bootloader bootloader-sailfish-8996-012001-1812132253.img
fastboot reboot-bootloader
sleep 5
fastboot flash radio radio-sailfish-8996-130281-1902150337.img
fastboot reboot-bootloader
sleep 5
fastboot -w update image-sailfish-qpp2.190228.021.zip

상기 code에서 if~~ 부터 fi~~ 구문을 제거하고 실행.