編輯:關於Android編程
最近在做PAD項目,QA提交了一個bug,用iTools管理PAD時,iTools顯示的設備與目標機型的設備型號不一致,在其他豌豆莢,百度等手機助手並沒有遇到這個問題。為了解決該問題,首先查詢機器system目錄下的prop.build中關於設備的說明是否有影響。主要包含:
ro.product.model=型號_modle
ro.product.brand=品牌_brand
ro.product.name=手機名稱_name
……
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=制造商_manufacturer
但是發現識別的設備名稱為其他品牌,可以確定該品牌不是通過prop.build文件獲取。另外在測試過程中發現,如果斷網的情況下,設備名稱會等同於model名稱,因此可以知道iTools會根據某個ID,在自己的網上數據庫去查找對應的設備型號。
通過用usblayzer查看usb的VID,PID,並對應http://www.linux-usb.org/usb.ids中的VID,發現此VID為某廠商的VID,因此估計iTools是根據USB的VID,PID進行獲取對應的設備名稱。所以我們將原來的VID PID改成台電PAD的VID與PID,因為台電在斷網與聯網情況下識別都是與model名稱一致。通過查詢可以知道VID=18d1是google的,pid為0007.所以修改android4.4/device/softwinner/fiber-a31stm的init.sun6i.usb.rc文件中:
on property:sys.usb.config=mtp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 0007
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
.......
該文件中所有的VID都要修改成一樣的18d1,PID可以錯開,但是不能與google的注冊設備沖突。如下:
VID->18d1 Google Inc.
PID-> 0d02 Celkon A88
2d00 Android-powered device in accessory mode
2d01 Android-powered device in accessory mode withADB support
4e11 Nexus One
4e12 Nexus One (debug)
4e13 Nexus One (tether)
4e20 Nexus S (fastboot)
4e21 Nexus S
4e22 Nexus S (debug)
4e24 Nexus S (tether)
4e40 Nexus 7 (fastboot)
4e41 Nexus 7 (MTP)
4e42 Nexus 7 (debug)
4e43 Nexus 7 (PTP)
4ee1 Nexus 4 / 10
4ee2 Nexus 4 (debug)
4ee3 Nexus 4 (tether)
4ee4 Nexus 4 (debug + tether)
7102 Toshiba Thrive tablet
b004 Pandigital / B&N Novel 9" tablet
d109 LG G2x MTP
d10a LG G2x MTP (debug)
經過修改,設備名稱與model名稱一致。
總結:iTools連接時,會先用USBVID PID到自己的網絡數據庫匹配設備名稱,如果有網絡並且數據庫有數據,則采用網絡端數據,如果沒有網絡或者有網絡但是數據庫沒有對應VID PID,則是有model一致型號。
如果你的微信被舉報了,怎麼辦呢?是慢慢等著自動解封,還是自己動手呢?下面就來看看手機微信被人舉報後怎麼解除吧!舉報現象:1、一種是你真的發布了違背法律法規、
我們在自定義android組件的時候,除了用Java構建出組件的樣子外,有時候還需要去申明一些“屬性”提供給項目使用,那麼什麼是組件
沒睡著覺,起來更篇文章吧哈哈!首先祝賀李宗偉擊敗我丹,雖然我是支持我丹的,但是他也不容易哈哈,值得尊敬的人!切入正題:這一篇來介紹個自定義廣播接收者。通常我們在外撥電話的
從大的方面來說,Android系統的啟動可以分為兩個部分:第一部分是Linux核心的啟動,第二部分是Android系統的啟動。第一部分主要包括系統引導,核心和驅動程序等,