안드로이드 application개발에 대응하다 보면 android version upgrade에 민감하게 된다. 여러 api들이 생기고 사라지기 때문에 미리 android os를 접하고 무슨 에러가 나는지, 어떤 기능을 새로 사용가능한지 확인해야 한다.
이를 위해서 대부분의 android application 개발자들은 구글 공식 테스트용 단말로 사용가능한 pixel을 가지고 테스트하는데 미리 android 공홈에서 preview os image를 다운받아서 os를 단말기에 올릴 수 있다.
Pixel용 Android Q 베타 시스템 이미지 다운로드 공식 홈페이지
그런데 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~~ 구문을 제거하고 실행.
반응형
'개발이야기 > Android' 카테고리의 다른 글
Android Q 부터 비 SDK 인터페이스 제한 하는 이유와 비 SDK 인터페이스 제한 확인하는 방법 (381) | 2019.05.10 |
---|---|
안드로이드에서 외부 jar file import하는 방법 (251) | 2018.12.26 |
Custom listview의 각 item에 animation 적용하기 (364) | 2018.12.13 |
app의 강제종료로 인해 FCM cloud messaging 푸시를 받지 못하는 이유? (964) | 2018.09.12 |
[ConstraintLayout] 효과적인 ConstraintLayout 사용방법 (2130) | 2018.04.22 |
[Instance app]설치 없이 네이티브앱의 사용경험을 제공할 수 있는 방법 (1039) | 2018.04.22 |