最近買ったArrows M03は、内部ストレージが16GBです。

実際に使える領域は9GB程度。

廉価版と割り切っているとはいえ、内部ストレージで使える領域が少なく、あれこれ不便しそうです。

Android6(Lolipop)には、SDカードを内部ストレージにできる機能が搭載されています。

しかしこの機種は内部ストレージ化の機能が封印され(機能ボタンの実装を省かれ)ています。

それでも機能が端末から削除されているわけではないため、外部からコマンドを打ち込んでやれば有効化できます。

あくまでも「M03から能動的にSDカード内蔵化機能の命令ができない」だけです。

勝手口の内鍵、または外鍵のどちらかが無く、どちらか鍵の付いてるほうから開錠すれば勝手口が開くのと同じです。

 

その手順「すべて」を公開することにしました。

なぜ「すべて」なのかというと、あちこち欠落している情報があり、それらをかき集めてやっと実現するから、ここで集約してしまおうということです。

 

※この操作はメーカーの推奨するものではありません。

 自己の責任において操作してください。

 私とメーカー(富士通、AndoridのGoogle、メモリカードメーカーなど)は一切の責任を負いません。

 

★★★以後の手順を踏んだ場合、上記の自己責任に同意したものとします。★★★

前提条件:Win7SP1+富士通M03+ネット接続(これを見てる時点でクリアしてますが)

 

◆目次

手順1:母艦側の環境を整える

 ・JDKセットアップ

 ・ADBセットアップ

  ・ドライバのiniファイルを編集する

手順2:端末側の環境を整える

 ・開発者モードにする

手順3:お互いに通信可能な状態にする

 ・ADBのデバイスインストールを行う

  ・端末側で認証する

手順4:コマンド入力

 ・パーティション確保

  ・パーティション分割

手順5:最終確認

 

【注意】以下から具体的な操作を行います。十分に慎重な操作にて手順を踏んでください。

 

やりたいことは、コマンドプロンプトで以下のコマンドを打ち込むことです。

sm partition disk:XXX,XXX private

sm partition disk:XXX,XXX mixed XX

(Xは可変の数字です)

しかしそのコマンドをM03に受け取ってもらうには準備が必要です。

その準備に十分な時間をかけます。

 

かつて、アメリカである木こりがいました。

その木こりに大木を切り倒すよう頼んだところ「わかった。8時間もらえるなら、6時間かけて斧を研ぐ。そして2時間で切り倒す」と答えたそうです。

その人は、アメリカを代表する、かの「リンカーン元大統領」その人だったそうです。

準備がいかに大切なことかわかるかと思います。

十分に時間をかけて準備しましょう。

 

======手順1:母艦側の環境を整える======

====== ・JDKセットアップ======

Android端末へコマンドを発射するには、ADBが必要です。

そのADBは、JAVAという土台の上で動いています。

JAVAをセットアップしましょう。

SUN(現Oracle)のJAVAページへ飛びます。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDKを選択します。(JREでもOKのはずですが)

 

続いてダウンロードページへ進みます。

矢印が「同意する」で、ダウンロードは四角部分を選択します。

 

32bit、64bitとありますが、

スタート>コンピュータを右クリック>プロパティで確認できます。

 

対応したビット数のものをダウンロードします。

セットアップはウィザードに従って標準インストールすればOKです。

 

====== ・ADBセットアップ======

手順が確認できました。

追記します。

 

Android端末にコマンドを発射するADBのセットアップを実施します。

Andoridスタジオを開きます。

https://developer.android.com/studio/index.html

SDK付きのファイルをダウンロードします。

なんと1.6GBあります。(2016年12月現在)

これが一番(待ち)時間のかかる作業です。

 

※この手順とは違う手順で回避したため、確認でき次第手順を更新します。

 具体的には事前に入手していたAndroid4.4.2の開発環境を使いました。

 

このセットアップで、インストール先を指定または確認するところがあります。

https://dl-ssl.google.com/android/repository/platform-tools_r21-windows.zip

これをダウンロードします。

ダウンロード後に解凍し、フォルダの「platform-tools」を開きます。

(★1)このコピー先をメモします。

 

======  ・ドライバのiniファイルを編集する======

手順を確認できました。

https://dl-ssl.google.com/android/repository/usb_driver_r11-windows.zip

これをダウンロードします。

ダウンロード後に解凍し、フォルダの「usb-driver」を開きます。

※この手順とは違う手順で回避したため、確認でき次第手順を更新します。

 具体的には、事前に入手していた富士通製の別な端末用で、設定を書き換えました。

※ここは回避した手順を 明記します。

 

android_winusb.inf を編集します。Win7標準のメモ帳でも可能です。

私は

C:¥app¥Java¥usb_driver

という場所にUSBドライバを配置しました。

 

[Google.NTx86]

というセクションの下に、以下の文言を書き込みます。

 

;Fujitsu M03

%SingleAdbInterface%        = USB_Install, USB\VID_04C5&PID_1547
%CompositeAdbInterface%     = USB_Install, USB\VID_04C5&PID_1547&MI_01

(下線部が重要です)

「;」はコメントアウトで、iniファイルとしては「無視しろ」という意味です。

 

続いて、

[Google.NTamd64]

のセクションの下にも、以下の文言を書き込みます。(同一の内容です)
 

;Fujitsu M03
%SingleAdbInterface%        = USB_Install, USB\VID_04C5&PID_1547
%CompositeAdbInterface%     = USB_Install, USB\VID_04C5&PID_1547&MI_01

(下線部が重要です)


iniファイルを保存します。

(★2)このファイルが保存されている場所をメモします。

 

ちなみに、ここで書き込む下線部の値は

スタート>コンピュータを右クリック>プロパティ>デバイスマネージャ(要管理者権限)

「ほかのデバイス」を展開すると表示されているはずのこれ。

Android ADB Interfaceをダブルクリック。

 

詳細タブを開きます。

※再現が面倒なので、認識済みのADBで代用してます。

この「VID_XXXX&PID_XXXXが書き込む内容です。

 

======手順2:端末側の環境を整える======

====== ・開発者モードにする======

M03の操作です。

 

通常はUSBに接続すると

・充電モード

・ファイル転送モード

・画像転送モード

・MIDI接続モード

が出てきます。

しかし、これではADBでコマンドを送ってもAndroidは受け取ってくれません。

野球のキャッチボールでいきなりサッカーボールが飛んできても対応に困り、スムーズにいきません。(スルーされます)

そこで「野球ボールだけじゃなくてサッカーボールも投げるから受け取ってくれよ」と準備しておく必要があります。

 

設定を開き、一番下の「端末情報」を開きます。

さらに一番下の「ビルド番号」を10回タップします。

途中で「開発者になるまであとxステップです」の表示が出てきます。

構わず10回タップし切ります。

 

「おめでとうございます。あなたは今、開発者になりました」のメッセージが出ることを確認します。

 

画面を一つ戻ります。

「端末情報」の上に「開発者向けオプション」が追加されています。

これをタップします。

 

開発者向けオプションをONにします。

警告出てきますが、OKを押します。

 

続いてUSBデバッグを有効にします。

同じく警告出てきますが、OKを押します。

 

これで「USB経由で充電の電気と画像データのやり取り以外にシステムコマンドを送るから受け取ってくれよ」が有効化しました。

 

======手順3:お互いに通信可能な状態にする======

====== ・ADBのデバイスインストールを行う======

さて、端末側でサッカーボールを受け取ってくれる準備はできましたが、サッカーボールを投げる側の準備がまだです。

いったい、誰に対してサッカーボールを投げていいのか、わからないのです。

では準備しましょう。

 

デバッグモードを有効にしたM03をUSBでWin7PCに接続します。

スタート>コンピュータを右クリック>プロパティ

「ほかのデバイス」に「Andorid ADB Interface」があります。

これを右クリックします。

「ハードウェア変更のスキャン」と「プロパティ」だけが出ているはずです。

この右クリックアクションが変わるまで待ちます。

おそらくWindowsUpdateでドライバを探しに行ってるのでしょう。

 

5分程度経つと、右クリックのアクションが変わります。

「ドライバーソフトウェアの更新」を選択します。

 

下を選択します。

 

ここで、(★2)の場所(編集したiniファイルがある場所)を入力します。

 

イヤな表示が出ますけど、下の「インストールします」を選択します。

1分程度で進めるはずです。

 

無事インストールできました。

※インストールできない場合、テストモードを有効にする必要があります。

テストモードはこちら参照。(コマンドのOFFを、ONにすればよい)

 

======  ・端末側で認証する======

ドライバインストールを終えた直後、M03側でメッセージが出るはずですが、許可します。

(キャプチャが無いため記憶で書いてます)

※このタイミングでは出てこないかもしれません。

 

======手順4:コマンド入力======

さて、いよいよお待ちかねの本番です。

環境変数を設定する人もいますが、ここはあえて設定しません。

パス入力の手間が省けるくらいで、一度やってしまえば以後ほとんど出番が無いからです。

 

====== ・パーティション確保======

スタート>cmd と入力>Enter

でコマンドプロンプトが出てきます。

(★1)のパスをコピーします。

(★1)のパスを、コマンドプロンプトで貼り付けます。

ちなみに私の場合は以下のパスです。

c:\app\Java\android-sdk-windows\platform-tools\adb.exe

ローカル検索で「adb.exe」を見つけてもいいです。

adb.exeに対して、半角スペースを空けて「shell」と入力します。

c:\app\Java\android-sdk-windows\platform-tools\adb.exe shell
※このコマンドを打った直後、M03側で認証を求められます。OKで許可します。

 

コマンドプロンプトで「shell@M03:/ $」が表示されれば、コマンドを受け取る準備ができているということです。(野球ボールだけでなくサッカーボールも受け取ってくれる)

 

さて、ここからは特に慎重に作業しましょう。

sm list-disks

と入力します。

disk:179,64と出ていますが、それぞれの環境で異なるはずです。

ここは読み替えてください。(★3)

 

続いてコマンド発行します。

 

※ここのコマンド発行により、SDカードの内容は「すべて消去」されます。

 SDカードのデータを維持したままこの操作を行うことはできません。

sm partiton disk:XXX,XXX private

と入力します。

XXX,XXXは(★3)

これでSDカードすべてが内蔵ディスクとして使えます。

 

======  ・パーティション分割======

さて、仕上げです。

私は128GBのMicroSDを使っていて、10%を外付けSDとして扱うことにしました。

そこで分割します。

sm partition disk:XXX,XXX mixed 90

XXX,XXXは(★3)

mixed 90」のこれは

「区切りなさい。内蔵領域を90%で指定します。残り10%は外付けSD領域として扱います」

ということです。

半分にしたいなら、mixedの値を50にすればいいのです。

10%を内蔵としたいなら、mixedの値を10にします。

 

======手順5:最終確認======

さて、これでSDカードは内蔵ディスクとして扱われました。

これで一安心・・・したらいけません

 

あくまでも「内蔵ディスクとして使う準備ができました」だけで、

「内蔵ディスクとして積極的に使います」とは違うのです。

積極的に使うよう、設定が残っています。

M03の設定を開きます。

端末情報>ストレージとUSB>内部ストレージ

を開きます。

右上のメニューから

データを移行

を選びます。

データの量によりますが、しばらくすると完了し、以後移行したカテゴリのデータは積極的にここへ格納されます。

 

お疲れ様でした。

これでSDの内蔵化全工程を完了しました。

端末側で対応していればここまで面倒なことしなくてもできるのですけどね。