最近打算用JZ4770方案來做我們自己的產品。君正給的代碼,是基於給艾諾定制的。每次用豌豆莢,或者QQ電腦管家連接設備的時候,總是顯示“艾諾 Novo7 Basic”。很明顯要改為我們自己的產品型號。目前只是用作開發板,後期要設計自己的板子。
本來以為這個字符串“Novo7 Basic”是通過“設置>關於平板電腦>型號”獲取的,但是通過修改xx.mk(xx代表板子類型)中的PRODUCT_MODEL := SmartQ7Candy之後,在
型號中看到的是SmartQ7Candy,但是通過USB連接電腦,仍然顯示“艾諾 Novo7 Basic"。
既然是通過USB識別的,用adb devices看了一下,果然顯示"Novo7 Basic"。
問了下老大,說這個值是通過讀取/sys/class/android_usb/android0/iSerial得到的。在內核代碼中搜索"android_usb",找到代碼
drivers/usb/gadget/android.c
這裡創建了一個android_usb的類,然後創建了一個類設備android0,
對於iSerial屬性
DESCRIPTOR_STRING_ATTR(iSerial, serial_string)
strncpy(serial_string, CONFIG_USB_SERIAL_NUM, sizeof(serial_string) - 1);
很明顯,該值是通過CONFIG_USB_SERIAL_NUM拷貝得來的。
於是修改內核的.config,將CONFIG_USB_SERIAL_NUM="Nono7 Basic" --> CONFIG_USB_SERIAL_NUM="SmartQ Candy"
編譯內核,燒錄之後。發現QQ電腦管家識別為OPhone,我估計是因為“SmartQ Candy”不在它的設備列表裡面,畢竟自己定義的,它肯定不知道的。對於不能識別的,就統一識別是OPhone.
用豌豆莢,可以識別為SmartQ Candy。