USB経由でSDカードアクセス時にファイル名に伴ってファイルシステムが壊れるバグがあるかも

472 views
Skip to first unread message

まいむぞう

unread,
Aug 8, 2009, 11:21:38 PM8/8/09
to android-g...@googlegroups.com
まいむぞうです。

価格.comの口コミ板からの情報ですが、
ヤバそうなバグなのでお知らせしておきます。

SDカードにアクセスしている時、特定の文字を含むファイル名もしくはディレクトリ名を付けると
ファイルの中身が000になるなど、情報を失ってしまうそうです。
ファイルの中に該当文字が入っている場合は、問題無いようです。
ファイルやディレクトリが壊れた場合は、ファイルシステムとして障害が発生するようで、消せなくなるとの事。フォーマットするしかないようです。

危険な文字
> 「竹」「十」(ほぼ確実に壊れる)
> 「ボ」「劇」(壊れる事もある)
文字コード上の問題っぽいので、他にも危険な文字はあるでしょうね。

現在Docomo側でも把握している模様。HT-03Aでのみ発生しているのかも?
応急対策としては、マルチバイト文字は使わず、(いわゆる半角の)アルファベットと数字のみでファイル名やディレクトリ名をつけてくださいとのこと。

詳細は、こちらの「データをmicroSDに保存する場合に関して」というスレッドを参照ください。
http://bbs.kakaku.com/bbs/K0000035598/

※なお、自分はチキンなので検証していませんw

--
------------------------------------------------------------------------------------------------------
大路裕介(おおみちゆうすけ)/まいむぞう
mail: mai...@gmail.com
skype: maimuzo
twitter: maimuzo
blog: http://fromnorth.blogspot.com/
service for rubyist: http://gemspec.info
for Android users: http://www.android-app.info/
------------------------------------------------------------------------------------------------------

Nock

unread,
Aug 9, 2009, 2:57:45 AM8/9/09
to 日本Androidの会
Backslashでしょうか・・・
Windows側で特定コードを含むフォルダ名を作ってしまうと
android側で処理し損ねると。

「Shift_JISのダメ文字」
http://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp


普通のフォルダなら注意すれば回避できますけど
アルバムタイトルなどに入っていて同期かけてしまうと
ちょっとやっかいですね。



On Aug 9, 12:21 pm, まいむぞう <maim...@gmail.com> wrote:
> まいむぞうです。
>
> 価格.comの口コミ板からの情報ですが、
> ヤバそうなバグなのでお知らせしておきます。
>
> SDカードにアクセスしている時、特定の文字を含むファイル名もしくはディレクトリ名を付けると
> ファイルの中身が000になるなど、情報を失ってしまうそうです。
> ファイルの中に該当文字が入っている場合は、問題無いようです。
> ファイルやディレクトリが壊れた場合は、ファイルシステムとして障害が発生するようで、消せなくなるとの事。フォーマットするしかないようです。
>
> 危険な文字> 「竹」「十」(ほぼ確実に壊れる)
> > 「ボ」「劇」(壊れる事もある)
>
> 文字コード上の問題っぽいので、他にも危険な文字はあるでしょうね。
>
> 現在Docomo側でも把握している模様。HT-03Aでのみ発生しているのかも?
> 応急対策としては、マルチバイト文字は使わず、(いわゆる半角の)アルファベットと数字のみでファイル名やディレクトリ名をつけてくださいとのこと。
>
> 詳細は、こちらの「データをmicroSDに保存する場合に関して」というスレッドを参照ください。http://bbs.kakaku.com/bbs/K0000035598/
>
> ※なお、自分はチキンなので検証していませんw
>
> --
> ------------------------------------------------------------------------------------------------------
> 大路裕介(おおみちゆうすけ)/まいむぞう
> mail: maim...@gmail.com

Nock

unread,
Aug 9, 2009, 5:21:49 AM8/9/09
to 日本Androidの会
手元の未使用2GBカードで再現したので
Projectのほうにreproを入れておきました。

http://code.google.com/p/android/issues/detail?id=3504

ざっと眺めてみたんですが
問題部分のコード特定までできなかったので
おわかりの方、コメント追記していただけると修正が早くなるかもしれません。

bb

unread,
Aug 9, 2009, 6:35:01 AM8/9/09
to android-g...@googlegroups.com
はじめまして。

ソースをgrepしてみただけですが、

external\dosfstools\src\check.c
static int bad_name()

か、

external\dosfstools\src\file.c
int file_cvt()

ではなかろうかと思いました。
どちらかで引っかかって、auto_rename されているのかと。
違っていたら、済みません。


Nock さんは書きました:

まいむぞう

unread,
Aug 10, 2009, 8:55:09 PM8/10/09
to android-g...@googlegroups.com
まいむぞうです。

Nockさん、bbさん、検証ありがとうございます。
イシュートラッカーやソースまでおおよそ検証するなんて、さすが素早い!

価格.comの方では

> ・HT-03AとPCをUSBケーブルで接続して、SDカード上のファイル名などを付けた場合
> ・HT-03AからSDカードを抜いて、PCに接続しファイル名を付けて、HT-03Aに戻した後にファイルなどにアクセスした場合

は再現するけど、

> ・HT-03A上でアプリなどを使って、SDカード上のファイル名などを付けた場合

は問題なかったとの事。

何か関係ありますかね?
(Android内ではファイル保存時に対策されている?)


------------------------------------------------------------------------------------------------------
大路裕介(おおみちゆうすけ)/まいむぞう
mail: mai...@gmail.com
skype: maimuzo
twitter: maimuzo
blog: http://fromnorth.blogspot.com/
service for rubyist: http://gemspec.info
for Android users: http://www.android-app.info/
------------------------------------------------------------------------------------------------------

2009/08/09 19:35 に bb<ueno...@gmail.com> さんは書きました:

Nock

unread,
Aug 11, 2009, 3:02:50 AM8/11/09
to 日本Androidの会
HT-03A上でアプリから操作をする場合は
すべてUTF-8になるので特に問題は出ないとおもいます。

これは例えば Ubuntuに HT-03Aをつないで、
PC側から操作をした場合も同様です。
(ubuntuからであれば「予定表」なんてフォルダを作っても問題ありません)

問題がでるのは Shift-JISを基本として使用している環境、
つまり Windowsでそれらのフォルダを作成した場合だけになります。

#確認していませんが、Windows上であってもcygwinあたりから
utfな環境でフォルダ作成したらたぶんダイジョウブですよね。


On Aug 11, 9:55 am, まいむぞう <maim...@gmail.com> wrote:
> まいむぞうです。
>
> Nockさん、bbさん、検証ありがとうございます。
> イシュートラッカーやソースまでおおよそ検証するなんて、さすが素早い!
>
> 価格.comの方では
>
> > ・HT-03AとPCをUSBケーブルで接続して、SDカード上のファイル名などを付けた場合
> > ・HT-03AからSDカードを抜いて、PCに接続しファイル名を付けて、HT-03Aに戻した後にファイルなどにアクセスした場合
>
> は再現するけど、
>
> > ・HT-03A上でアプリなどを使って、SDカード上のファイル名などを付けた場合
>
> は問題なかったとの事。
>
> 何か関係ありますかね?
> (Android内ではファイル保存時に対策されている?)
>
> ------------------------------------------------------------------------------------------------------
> 大路裕介(おおみちゆうすけ)/まいむぞう
> mail: maim...@gmail.com
> skype: maimuzo
> twitter: maimuzo
> blog:http://fromnorth.blogspot.com/
> service for rubyist:http://gemspec.info
> for Android users:http://www.android-app.info/
> ------------------------------------------------------------------------------------------------------
>
> 2009/08/09 19:35 に bb<uenok...@gmail.com> さんは書きました:

bb

unread,
Aug 11, 2009, 7:27:06 AM8/11/09
to android-g...@googlegroups.com
おそらく、ですが、ショートファイルネームの扱いに問題があるのではないかと。
FATの仕様上、ロングファイルネームの部分はUTF-16で扱われるのですが、
ショートファイルネームはOS環境でのエンコードを使っています。
なので、日本語WindowsではシフトJISになっています。
LinuxなどでFATのファイルを作成すると、アルファベットの適当なショート
ファイルネームをつけているので、問題が出ない…ということだった気がします。


まいむぞう さんは書きました:
Reply all
Reply to author
Forward
0 new messages