2010年から2015年まではてなダイアリーで更新ししていたブログです。
現在は「パンクはいつも突然に」に統合して更新しています。

LTE829のfastbootモード

 fastbootからのブートもできない。調べてみる。

kazz@oscar ~# lsusb
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 0582:0006 Roland Corp. 
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 005: ID 1a81:2004 Holtek Semiconductor, Inc. 
Bus 003 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0d8c:0001 C-Media Electronics, Inc. Audio Device
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bb4:0c01 HTC (High Tech Computer Corp.) Dream / ADP1 / G1 / Magic / Tattoo
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kazz@oscar ~# 

 HTCですよ、奥さん、again。あのときはfastbootモードなんかじゃなかったはずだが。

kazz@oscar ~/Android/Sdk/platform-tools# fastboot devices
no permissions	fastboot
kazz@oscar ~/Android/Sdk/platform-tools# 

 許可がないとな。でもLTE829の画面には何も出てこない。

 fastbootから抜ける方法は不明。裏カバーを開けたところにある小さな穴がリセットスイッチ、というか、実際の動作はシャットダウン。

追記

 3つのボタン同時押しでシャットダウンできた。ただ、一回では効かないもよう。
How To Exit Fastboot Mode? - OnePlus Forums

LTE928、ワンクリックルートならず

 Shuame / Root GeniusでもMtk Droid ToolsでもKingo RootでもiRootでもルート化成功せず。

 ではCWM Recoveryをインストールして・・・と思ったが、調べてみると要rootの方法しかわからん。

 でMT6752ベースのLollipop 5.1では世界中が苦労しているもよう。
Root for MTK6752 with Lollipop?
can't root clone MT6572 M7...

facebookアプリの通知が止まらなくなった

 数日前からfacebookアプリの通知が止まらなくなって、いろいろ試していたんだが、原因判明。facebookアプリには濡れ衣で、通知をしていたのはchromeだった。
Facebook、Googleと協力してモバイルウェブユーザーにプッシュ通知を送信 | TechCrunch Japan

 通知をタップするとchromeが立ち上がるのに気が付き、判明。

 現時点では通知全体のオンオフとそのサブオプションとしてメッセージ通知のオンオフがあるのみ。メッセージ通知だけしてほしいんだけどそれはできないもよう。できるようだったらfacebookアプリ捨ててもええんやけど。

adbで認識

 XiaomiもどきのMediaTekタブレットをadbで認識しない問題が解決した。

 いろんなことを総合するとadbに原因がある可能性が高い。たとえばadbのバージョンが古いとか。使っているadbはubuntuの公式リポジトリから入ったもので、1.0.31。

kazz@oscar ~# adb version  
Android Debug Bridge version 1.0.31
kazz@oscar ~# 

 あちこちのページを見ながらAndroid Studioをインストール。adbは~/Android/Sdk/platform-toolsにインストールされていた。

kazz@oscar ~/Android/Sdk/platform-tools# ./adb version
Android Debug Bridge version 1.0.32
Revision eac51f2bb6a8-android
kazz@oscar 

 1.0.32になっている。

 どきどきしながら実行。

kazz@oscar ~/Android/Sdk/platform-tools# adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
0123456789ABCDEF	unauthorized

kazz@oscar ~/Android/Sdk/platform-tools# 

 なんとか認識。でもSOL22の場合とだいぶ違う。

 kazz@oscar /etc/udev/rules.d# adb devices
 *1442315728* daemon not running. starting it now on port 5037 *
 *1442315729* daemon started successfully *
 List of devices attached
 CB5124P35E device
 kazz@oscar

 いろんな作業ができるかはこれから検証。

デバグモードで繋がらない

 XiaomiもどきのLTE829がUSBディバグモードでubuntuとつながらない。いろいろと.rulesファイルをいじってみても変化なし。MTPとしてはマウントされている。PTPにしろというページを見たのでやってみたが変わらず。

 そもそも、認識ミスでも何らかの表示はされるはず。

$ adb devices
List of devices attached
???????????? no permissions

 ところが、この????の行が全く表示されない。ちなみにSOL22をつなぐと.rulesファイルを何もいじらなくても

kazz@oscar /etc/udev/rules.d# adb devices

*1442315728* daemon not running. starting it now on port 5037 *

*1442315729* daemon started successfully *
List of devices attached
CB5124P35E device
kazz@oscar

 と表示される。ということは、USBまわりに問題があるのではなく、adbに問題がある可能性が高い。

 SOL22とLTE829の他の挙動の違いは、USBディバグモードでつないだ時にいずれもデスクトップにアイコンが現れるものの、sol22ではアイコンをダブルクリックしてもファイルが表示されないのに、LTE829ではMTPモード同様にファイルが表示されること。このあたりに手がかりがありそう。

 さらに

kazz@oscar /etc/udev/rules.d# dmesg|grep usb

(中略)

[ 5492.885627] usb 1-2: new high-speed USB device number 33 using xhci_hcd
[ 5493.016358] usb 1-2: New USB device found, idVendor=0e8d, idProduct=201d
[ 5493.016370] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[ 5493.016377] usb 1-2: Product: LTE829
[ 5493.016383] usb 1-2: Manufacturer: MediaTek
[ 5493.016389] usb 1-2: SerialNumber: 0123456789ABCDEF
kazz@oscar /etc/udev/rules.d#

 なに、このシリアルナンバー。シリアルちゃうやん。

もしかしてこれはニセXiaomi?

 adb接続がなかなかうまくいかなくて情報を探しているうちに何か妙だと気がついた。

kazz@oscar ~# sudo lsusb -vs 001:015

Bus 001 Device 015: ID 0e8d:201d MediaTek Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0e8d MediaTek Inc.
idProduct 0x201d
bcdDevice ff.ff
iManufacturer 2 MediaTek
iProduct 3 LTE829
iSerial 4 0123456789ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 62
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 18 MTP
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x001c 1x 28 bytes
bInterval 6
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 66
bInterfaceProtocol 1
iInterface 17 ADB Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered

 ウェブで集めた情報だとxiaomiのidVendorは2717のはずなんだが、0e8dになっている。しかもiManuifacturerはXiaomiではなくMedia Tek。以下のページのlsusbの結果とは明らかに違う。
adb connect from ubuntu 13.4 | Unofficial International MIUI / Xiaomi Phone Support

 0e8dは確かにMediaTekのIDのようだ。
USB_ModeSwitch • View topic - False operation on some Mediatek devices

 もう少し調べる。XiaomiのシンガポールバージョンということでGooglePlayや日本語対応がはじめからセットされているけど、実は違うOEMのハードウェアにXiaomiのMIUI OS(Xiaomiは元々OS作っていたらしい)載せているのか?ニセモノではないとは思うんだが。ちなみにMediaTekはXiaomiと親密な部品メーカー。

 どうみてもXiaomiのロゴなんですが。

 ついでにモードごとの違い。
 MTPモード

Bus 001 Device 017: ID 0e8d:200b MediaTek Inc.

 PTPモード

Bus 001 Device 003: ID 0e8d:200c MediaTek Inc.

 内蔵CD−ROMモード

Bus 001 Device 018: ID 0e8d:2002 MediaTek Inc.

 うむ、先日のHTC表示はなんだったんだ?