星期三, 5月 17, 2017

Android: APN: OTA後立即更新APN清單

總結谷歌網路上的解法
1.去修改alps\build\tools\releasetools\ota_from_target_files
這應該只是把人家MTK的FAQ貼出來啊,問題是,你開發的平台不一定是MTK的平台
所以,不是MTK版本的android那就不用試了,而且這作法只僅限KK之前的版本。

2.實作一個BroadcastReceiver ,在開機後去檢查OTA的版本有沒有變更,若有就去做restore to default的動作。

apn list的建立是透過查找telephony.db的mcc+mnc來列出,而一開始並沒有產上,它是讀取/etc/apns-conf.xml建立的,一旦建立,之後開機就不再會去檢查/etc/apns-conf.xml。
所有的操作都是透過SQL來查詢DB。所以基本上,因為OTA不會更新到userdata,所以OTA只會更新/etc/apns-conf.xml,那麼要更新儲存在data/data/com.android.providers.telephony/databases/telephony.db,就只能刪除後才會重新建立。

所以解法2也是走這個思維,一般手動操作也是透過"Cellular networks" ->"Access Point Names" ->"reset to default".或是factory reset達到目的。

事實上,在android\packages\providers\TelephonyProvider\src\com\android\providers\telephony\TelephonyProvider.java的程式中,其實還有另外一種更新的條件。
那就是在onCreate它會去檢查build id("ro.build.id"),如果build id不一致,那就會去做更新APN DB的動作。所以,我們也可利用這段程式碼,加上新的更新條件,例如檢查APN版本(這個要另外新增和維護)


其他:
1.apn file的來源除了原本放在 "/etc/apns-conf.xml",其實程式碼也還有另外定義幾個位置
  a.OEM_APNS_PATH   "/oem/telephony/apns-conf.xml"
  b.OTA_UPDATED_APNS_PATH "/data/misc/apns-conf.xml"
  c.REGIONAL_APNS_PATH "/etc/regional-apns-conf.xml"

a,b兩項都會去檢查檔案建立的時間戳記,誰是最新的最後就是用誰
c項則是針對前面動作結束後,再對Regional去做更新

2.android\packages\apps\Settings\src\com\android\settings\ApnSettings.java
這邊有些APN查詢的操作

參考來源:
OTA升级过程中更新APN数据库
http://blog.csdn.net/lipengshiwo/article/details/52133571
http://blog.csdn.net/sergeycao/article/details/39641885
Android APN配置
http://blog.csdn.net/yangwen123/article/details/10526871
OTA Updates
https://source.android.com/devices/tech/ota/

YETI車友故障紀錄

記錄一下YETI車友故障問題和時間

1.圓燈雪怪
2012/03出廠
2012/09領牌
2017/04爆閥體
http://www.mobile01.com/topicdetail.php?f=214≈t=5130994&p=1

2.原廠安全性召回








收到總公司的通知,在07.08打電話回服務廠,簡單查詢有在名單內,告知目前等待維修車輛已經排隊到八月中旬,客服先登記,之後再安排專員聯繫實際維修時間。

星期日, 5月 14, 2017

Food 超人故事機 故障 維修紀錄

2016.12 好市多買的故事機。
我們家都叫它包子頭而非Food超人。
有一天它秀逗了,狀況如底下影片連結所示。

https://youtu.be/VE-hWX5gtL0


現在要來送修,在此記錄一下送修過程:

2017.05.15郵局花了65元,買了一個5號便利箱寄出。

2017.05.18 19:25客服來電,說明內部音樂卡故障,將更換全新一台,寄送方式可選新竹貨運或是郵局。

2017.05.22 信箱收到郵局投遞通知單,之後領回


外層用了個紙箱寄


實際內容跟市面一樣包裝



開盒看見 兩張紙條。一張是QA,品管畫押
另外一張要你USB充電時接電腦!(估計應是電路沒做保護,不能用超過500 ma)

以上就是維修紀錄,包子頭2代繼續使用。


星期四, 5月 11, 2017

Android: ADB: Commands and Usages



adb bugreport


ADB sideload is a new feature that was added to AOSP recovery in Jelly Bean.
You will need version 1.0.29 or higher (1.0.32 or higher)
Flashing/restoring Android update.zip packages.
1.Vol UP + Power choose recovery mode or adb reboot recovery
2.choose "Apply update from adb
3.give command adb sideload
   $ adb sideload ota.zip