最近打算用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。