2014年5月11日日曜日

Nexus7のAndroid versionを古いものに戻す

Nexus7のAndroid versionを古いものに戻す

開発環境: Windows 8 & Eclipse

実機のAndroidのversionを古いものに戻すことができれば、その古いversionでアプリの動作検証をすることができます。そういう意味で、実機を複数所持する必要が無くなります。Nexus7が開発者用端末であると呼ばれる由縁です。

Nexus 端末を出荷時の設定にリセットするに載っている手順は、利用者による設定やインストールしたアプリをリセットする手順であって、AndroidのversionをNexus7の新規購入時点のものに戻す手順ではなく、Androidのversionは変化しません。Nexus 7を他人に譲渡する時に実行する手順なのです。

下記に示す操作は、Windowsパソコンに例えると、Windowsパソコン購入時に添付されたリカバリ用のDVDを使って、Windowsパソコンを出荷時の設定にすることに似ています。なので、Nexus7のデータが全部消えてしまいますので、注意しましょう。

この操作にはAndroid SDKが必要であることを考えると、この操作はAndroid開発者が行うものであって、一般利用者が行うものでは無いと思われます。

古いバージョンに戻すとは言っても、Nexus7の新規購入時点のバージョンは機種依存しているため、そこに戻すことはできません。具体的にどのバージョンに戻せるのかはFactory Images for Nexus Devicesを参照してください。

手順
開発機とNexus7とをUSBコードでつなぐ等を行い、Android SDKのプログラムが動作する環境を整えておく。具体的には、例えば、EclipseのLogCatでNexus7の動作のログが表示できるようにしておく。環境を整えておくという意味なので、実際にEclipseを起動させておく必要は無い。

Factory Images for Nexus Devicesから、Factory Images "nakasi" for Nexus 7 (Wi-Fi) > 4.1.2 (JZO54K)を任意のフォルダーにdownloadする。
(参考)Nexus7の製造名を知る方法

解凍にはLhaca124を使えば良いでしょう、
ここではC:\nakasi-jzo54k\に解凍したものとします。

Windows8の場合、「Windowsシステムツール」の「コマンドプロンプト」をクリックして、「コマンドプロンプト」(黒い画面)を表示させる。
エクスプローラーでfastboot.exeファイルを1回クリックして、「パスのコピー」を実行します。fastboot.exeファイルはAndroid SDKフォルダーの下の\platform-tools\に有ります。
コピーした文字列を、Windowsの「メモ帳」に貼り付けて、(fastboot.exeの部分を除いた)パスの部分だけを「コピー」します。
「コマンドプロンプト」で次のとおり入力します。cdの次は半角スペースを入力します。cdはchange directoryという意味です。
cd 
「コマンドプロンプト」の左上端のアイコンをクリック > 編集 > 貼り付けによって、"cd "の後に、パスの文字列を貼り付けます。
そしてEnterキーを押します。
すると、プロンプトが、fastboot.exeファイルの存在するフォルダーに移動します。
念の為、この画面で、"fastboot"と入力&Enterして、fastbootが動くか確認します。

C:\nakasi-jzo54kフルダー内にimage-nakasi-jzo54k.zipファイルがありますが、このファイルは解凍しなくても良いです。下記のバッチファイルを見て分かるように、zipファイルを直接操作します。

バッチファイルの編集
"C:\nakasi-jzo54k\flash-all.bat"ファイルがありますので、そのファイルを「メモ帳」で開いて内容を編集します。「メモ帳」では改行がありませんが、HTML文書に貼り付けて見ると改行があるのがわかります。
下記の赤色で記した部分を書き込み、上書きします。

@ECHO OFF
:: 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.

PATH=%PATH%;"%SYSTEMROOT%\System32"
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata
fastboot flash bootloader C:\nakasi-jzo54k\bootloader-grouper-3.41.img
fastboot reboot-bootloader
ping -n 10 127.0.0.1 >nul
fastboot -w update C:\nakasi-jzo54k\image-nakasi-jzo54k.zip

echo Press any key to exit...
pause >nul
exit

次の手順でNexus7内のデータが全部消えるため注意しましょう。

Building for devicesを読んだところ、次のように書いてあります。
fastboot modeによる起動
まず、Nexus7の電源を切ります。
そして、Nexus7がfastboot modeを使えるようにするため、Nexus7のVolume Downボタンを押しながらPowerボタンを押し、Nexus7を起動します。fastboot modeにすると、端末をflashさせるbootloaderを使うことができるのです(意味不明)。

bootloaderのロック解除
デフォルトではbootloaderはロックされています。
Nexus7の端末がfastboot modeになっているのを確認したら、開発端末(Windowsパソコン)の「コマンドプロンプト」から次のとおり入力し、bootloaderのロックの解除をしてください。
fastboot oem unlock[Enter]

Unlock bootloader
Nexus7に「Unlock bootloader?」という画面が表示されます。Volume Upボタン又はVolume Downボタンを押し下げて、「Yes」の項目を選択し、Powerボタンを押します。
これによる「コマンドプロンプト」のログは次のとおりです。

C:\*\sdk\platform-tools>fastboot oem unlock[Enter]
...
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [349.022s]
finished. total time: 349.023s

バッチファイルの実行
Windowsパソコンの「コマンドプロンプト」から次のとおり入力してください。
C:\nakasi-jzo54k\flash-all.bat
これによる「コマンドプロンプト」のログは次のとおりです。

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\*\sdk\platform-tools\
C:\*\sdk\platform-tools>C:\nakasi-jzo54k\flash-all.bat[Enter]
erasing 'boot'...
OKAY [  0.987s]
finished. total time: 0.987s
******** Did you mean to fastboot format this partition?
erasing 'cache'...
OKAY [  1.507s]
finished. total time: 1.508s
erasing 'recovery'...
OKAY [  0.934s]
finished. total time: 0.934s
******** Did you mean to fastboot format this partition?
erasing 'system'...
OKAY [  1.112s]
finished. total time: 1.113s
******** Did you mean to fastboot format this partition?
erasing 'userdata'...
OKAY [  7.059s]
finished. total time: 7.059s
sending 'bootloader' (2092 KB)...
OKAY [  0.289s]
writing 'bootloader'...
OKAY [ 10.257s]
finished. total time: 10.546s
rebooting into bootloader...
OKAY [  0.020s]
finished. total time: 0.021s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: 3.41
Baseband Version.....: N/A
Serial Number........: 015d25687c601206
--------------------------------------------
checking product...
OKAY [  0.040s]
checking version-bootloader...
OKAY [  0.024s]
sending 'boot' (4896 KB)...
OKAY [  0.651s]
writing 'boot'...
OKAY [  0.747s]
sending 'recovery' (5240 KB)...
OKAY [  0.701s]
writing 'recovery'...
OKAY [  0.678s]
erasing 'system'...
OKAY [  1.442s]
sending 'system' (446268 KB)...
OKAY [ 57.518s]
writing 'system'...
OKAY [ 33.915s]
erasing 'userdata'...
OKAY [  7.367s]
formatting 'userdata' partition...
Creating filesystem with parameters:
    Size: 6453985280
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8048
    Inode size: 256
    Journal blocks: 24620
    Label:
    Blocks: 1575680
    Block groups: 49
    Reserved block group size: 391
Created filesystem with 11/394352 inodes and 52512/1575680 blocks
sending 'userdata' (102525 KB)...
writing 'userdata'...
OKAY [ 28.454s]
erasing 'cache'...
OKAY [  1.457s]
formatting 'cache' partition...
Creating filesystem with parameters:
    Size: 464519168
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 7088
    Inode size: 256
    Journal blocks: 1772
    Label:
    Blocks: 113408
    Block groups: 4
    Reserved block group size: 31
Created filesystem with 11/28352 inodes and 3654/113408 blocks
sending 'cache' (9052 KB)...
writing 'cache'...
OKAY [  3.828s]
rebooting...

finished. total time: 136.937s
Press any key to exit...

bootloaderのロック設定
Nexus7が起動し、画面には、Welcome画面が表示されますが、ロック設定を忘れてはいけないので、直ちに、電源を切ります。
そして、Nexus7のVolume Downボタンを押しながらPowerボタンを押し、Nexus7を起動します。ドロイド君が倒れている画面が表示されていることを確認します。
「コマンドプロンプト」から次のとおり入力し、bootloaderのロックをしてください。
fastboot oem lock[Enter]

これによる「コマンドプロンプト」のログは次のとおりです。
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\*\sdk\platform-tools\
C:\*\sdk\platform-tools>fastboot oem lock[Enter]
...
(bootloader) Bootloader is locked now.
OKAY [ 10.495s]
finished. total time: 10.496s

Androidを起動する
ドロイド君が倒れている画面の右上にStartと表示されていることを確認して、Powerボタンを押します。
アカウント等の設定を済ませて、「設定」>「タブレット情報」>「Androidバージョン」を見ると「4.1.2」になっています。

0 件のコメント:

コメントを投稿