[不具合]Android版Google Chrome 66で画像選択しようとするとクラッシュするバグが発生

本日、弊社サービスを利用しているお客様から、Android版Google Chromeを使って画像をアップロードしようとした際にエラーが発生するという問い合わせが入りました。
自分たちの環境でも試したところ、Android 6.0の端末で下記のようなエラーが出ることを確認しました。

Chromeの検証ツールではconsoleに特にエラー出力が出力されていなかったため、adb logcat コマンドでOSのログを取得。

04-26 18:58:29.812  1726  2925 I ActivityManager: Start proc 26320:com.android.chrome:decoder_service/u0i881 for service com.android.chrome/org.chromium.chrome.browser.photo_picker.DecoderService
04-26 18:58:29.885 18544 18544 W cr_Autocomplete: stopping autocomplete.
04-26 18:58:29.867 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215608): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.867 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215609): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.867 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215610): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.887 26320 26332 W FileUtils: Failed to chmod(/data/user/0/com.android.chrome/app_chrome): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
04-26 18:58:29.887 26320 26320 I cr_LibraryLoader: Using linker: LegacyLinker
04-26 18:58:29.888 26320 26332 W FileUtils: Failed to chmod(/data/user/0/com.android.chrome/app_textures): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
04-26 18:58:29.888 26320 26332 W ContextImpl: Unable to create files subdir /data/user/0/com.android.chrome/cache
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215611): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215612): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215613): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215614): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215615): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.877 26332 26332 W com.android.chrome:decoder_service: type=1400 audit(0.0:215616): avc: denied { search } for comm=XXXXXXXXXXXXXXXXXXXXXXX name="com.android.chrome" dev="mmcblk0p43" ino=318469 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 ppid=680 pcomm="main" pgid=26320 pgcomm="decoder_service"
04-26 18:58:29.912 26320 26320 D AndroidRuntime: Shutting down VM
04-26 18:58:29.912 26320 26320 E AndroidRuntime: FATAL EXCEPTION: main
04-26 18:58:29.912 26320 26320 E AndroidRuntime: Process: com.android.chrome:decoder_service, PID: 26320
04-26 18:58:29.912 26320 26320 E AndroidRuntime: java.lang.RuntimeException: Unable to create service org.chromium.chrome.browser.photo_picker.DecoderService: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.chromium.base.CommandLine.hasSwitch(java.lang.String)' on a null object reference
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.app.ActivityThread.handleCreateService(ActivityThread.java:2944)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.app.ActivityThread.access$1900(ActivityThread.java:154)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:102)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:224)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:5526)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-26 18:58:29.912 26320 26320 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.chromium.base.CommandLine.hasSwitch(java.lang.String)' on a null object reference
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.base.SysUtils.isLowEndDevice(SysUtils.java:35)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.base.library_loader.LegacyLinker.ensureInitializedLocked(LegacyLinker.java:11)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.base.library_loader.LegacyLinker.prepareLibraryLoad(LegacyLinker.java:25)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:62)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:17)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at org.chromium.chrome.browser.photo_picker.DecoderService.onCreate(DecoderService.java:4)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        at android.app.ActivityThread.handleCreateService(ActivityThread.java:2934)
04-26 18:58:29.912 26320 26320 E AndroidRuntime:        ... 8 more
04-26 18:58:29.914  1726  2547 D ActivityManager: New dropbox entry: com.android.chrome:decoder_service, system_app_crash, XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

詳しいことはわかりませんが、どうやら/data/user/0/com.android.chrome/app_texturesに対してchmod(読み書き権限の変更)をしようとして権限不足によりシステムから拒否されてchrome本体が落ちているようです。

問題が発生しているAndroid版Chromeのバージョンは 66.0.3359.126 で、この記事を書いた時点での最新版となっています。


なお、Android 7.0 で同じバージョンのChromeで画像アップロードした際は、問題なく画像選択可能でした。

Chromeアプリ本体の不具合ということであれば、自分以外にも不具合の報告が上がっているはず…ということで調べてみたところ、すでに数件の報告がネット上に上がっていました。

今回の場合、ほぼ間違いなくChromeアプリ本体の不具合のため、Googleがアップデートで不具合修正をするまで待つしかありません。
それまでの間、Android向けの別のブラウザアプリを利用することで、不具合を回避することができます。

自分たちの環境で確認した限りでは、Firefoxを用いると問題なくアップロード可能でした。

また、報告では、Chromeを端末出荷時にインストールされていたバージョンに戻すことで、再度画像アップロードが可能となる報告もありました。

自分の環境でも試したところ、確かに画像アップロードが可能となっていることを確認。
自分の環境の場合、バージョンダウン後のChromeのバージョンは 56.0.2924.87 となっていました。

Chromeのバージョンダウンは、アプリを一度無効化し、再度有効化することで可能です。

Androidアプリを削除(アンインストール)/無効化/非表示にする方法 – モバレコ

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG