Android OTA Upgrade

Source: Internet
Author: User

1,build Otapackage system.img not packed in?

Ota包里面缺失system img,原因是客户修改了prop里面的“ro.product.device” value值.尝试以下两种方式,ota_from_target_files中不需要设定 cust_dir1 这个值了:a.  修改ota_from_target_files 中的system_path:system_path =    os.path.join("out/target/product/g32wh_xfy","system.img")b.  將 system.img copy 一份到不需要 device 相关的路径,比如out/target下,那么在此处设置system_path值如下:system_path = os.path.join("out/target", "system.img")

2,build OTA Upgrade Package When there is an exception, unable to compile?

是low memory 导致build otapackage 失败的:需确定build otapackage时保证足够的memory,比较多的情况下在制作升级包时,都是采用虚拟机的方式,而不是特定义的一台server,所以就会有low memory 的情况。如果可 以,增加此虚拟机的memory 也行参考以下两种方案:a) 将 partition_table_MT6589.xls中的android那个区域的大小改小一些, 删除一些内置   在system区域的apk;(cause:对于build otapackage 失败,是在打包ota时,对    ota进行签章时报了low memory的error。对于签章sign所需的memory的大小,取决于apk的大小,所以对partition_table_MT6589.xls 中的android 分区设定,如果android 分区设定大,则在对ota中的apk进行签章时要求的memory也要大。)b) 修改SignFile.java 中的cmd = [“java”, “-Xmx2048m”, “-jar”, 这条 ,将“-Xmx2048m”,修改 为“-Xmx4096m” 或者更大,也可。(cause:对于这个SignFile 中 的这个cmd,是指当前签章run 的虚拟机上,指定虚拟机可用的最大heap size为2048,这个值 需要参考当前的build的pc server的可用内存的大小。

3,dm/fota/mota related feature macro switch?

   在alps/mediate/config/[project]/projectConfig.mk里的对应DM/FOTA/MOTA的宏开关都由客户自行控制,但如果要实现相应的功能,则需要将相应的宏开关设置为Yes。宏开关所控制的应用如下:    MTK_SMSREG_APP -- 短信自注册编译开关    MTK_DM_APP--DM功能(包括采配,SCOMO, LAWMO,FUMO)编译开关MTK_FOTA_SUPPORT-- FOTA编译开关MTK_FOTA_ENTRY-- FOTA升级手机端入口开关MTK_SCOMO_ENTRY -- SCOMO下载及升级状态查看入口开关MTK_GOOGLEOTA_SUPPORT -- MOTA升级功能 (JB2 之前版本)MTK_SYSTEM_UPDATE_SUPPORT --MOTA升级功能(JB2及JB2之后的版本)。

4,DM SMS Self-registration, after re-download version also to re-SMS self-registration?

 支持情况:目前MT6573/75/77/89都支持DM短信自注册相关资料:有关短信子注册,DM的参考资料请在DMS搜索以下文档:CMCC_Common_DM送测版本克制化准备.ppt客户端的代码请参考:alps/mediatek/source/packages/SmsRegSolution: 修改alps/mediatek/source/packages/dm_agent_binder/下的dm_agent.c文件,将其中的define DM_IMSI_PATH DM_ROOT_PATH "imsi"修改为define DM_IMSI_PATH "/data/imsi"这样修改的话,在恢复出厂设置时也会重新发送自注册消息。

5,fota Upgrade Error Summary.

a. 0x8001007C: system_attr 文档与当前device版本的system.img不一致b. 0x80010016: system 分区太小c. 0x80010022: boot.xml或system.xml配置有误,请check boot.xml/system.xml中<PartitionName>boot</PartitionName>或    <PartitionName>system</PartitionName>d, 0x80000001: redbend 的 library 在解析升级包时需要更多的memory(默认20MB,一般够),可分析制作boot.delta时的log,并check boot.xml,设置:SourceInputOffsetInFlash>0</SourceInputOffsetInFlash  TargetInputOffsetInFlash>0</TargetInputOffsetInFlashe. 0x8000013C:ram太小,ram use cannot be less than 0x10004,请采用v7.0工具制作升级包

6, how do I ota.zip for SDcard Upgrade?

1. Enable SystemUpdate: EngineerMode--->Others--->System update options--->Sd card Update22. Build : makeMtk [project] newmakeMtk [project] otapackages Full package:[project]-ota-eng.[username].zip ,rename as updat.zip; or delta package, please use command : build/tools/releasetools/ota_from_target_files -n -i old.zip

New.zip Update.zip
3. Meta-inf (/com/google/andriod/updater-script) (from the full package)
Scatter.txt:partition layout information (from the full package)
Type.txt:type of update package
Config: (Configure follow info by yourself, please preference Build.prop)
4. Package The files (update.zip, Meta-inf, Scatter.txt, Type.txt, configure.xml) above as **.zip
5. Copy **.zip to SD card, entry Setting->system update

8, MOTA Server set up the environment problem.

 在搭建MOTA Server时,会有无权访问文档或者无法打开某些文档的类似error 原因:搭建MOTA server的整体环境有问题解决:製作差分包的server環境是否有以下3個問題1. out/host/linux-x86/bin/ 目錄下的檔案必須為可執行權限 chmod 755 *2. server 是否缺少 32 bit 相關 library, apt-get install libc6-i386 lib32gcc1 lib32z1lib32stdc++6 ia32-libs3. server 是否缺少 java 程式, apt-get install openjdk-6-jre

9,mota Server upload whole package software failed, interface display upload error?

1.在/var/www/路径下需要创建文件夹命名为OTA 2.在fota/db.php文件里面,查看$upload_version_dir的值是否等于‘/var/www/OTA/‘;如  果不是的话,需要对1中提到的OTA路径按要求进行修改。

10.MOTA change version issues when upgrading

默认情况下,可以通过修改ProjectConfig.mk中的MTK_BUILD_VERNO即可达到修改版本的目的。如果客户想保留MTK_BUILD_VERNO字段不变,采用CUSTOM_BUILD_VERNO来区分版本,需做以下修改:– 配置:ProjectConfig.mk中配置宏:CUSTOM_BUILD_VERNO=custom.v1– APP code:GoogleOta 中的Util.java中的getDeviceVersionInfo()里的String buildnumber = SystemProperties.get("ro.build.display.id")修改为String buildnumber = SystemProperties.get("ro.costom.build.version")– 差分包:制作差分包的准备包时,配置config.xml时:buildnumber 参考build.prop里的ro.costom.build.version进行配置 。

11,ota Upgrade query version failed, log display yourversion is illegal?

这是因为手机的信息,也就是old版本的信息与Server上提交old版本时候填写的信息不一致。 old版本,new版本在upload到server的时候,server上要求填写的项是来自于package包的build.prop文件。对应关系如下:build.prop upload.php– ro.build.display.id-----------------build number of the version– ro.product.locale.language---------------LANGUAGE– ro.product.manufacturer------------------OEM– ro.operator.oper--------------------OPERATOR– ro.product.device-----------PRODUCT– ro.build.fingerprint------------FINGERPRINT– ro.build.version.release--------------------android version– ro.product.name------------------------name of the version

12,faq10254]ota after the upgrade reboot, prompt: "Fail toupgrade to version *".

Reason: The customer has customized a custom version, so that after the upgrade notification upgrade results, the original code gets the version information is Build.verno, not the custom version, so different, prompting the upgrade failed. Please modify code as follows: Modify Systemupdatereceiver.java's Getupdateresult (): Modified: Private Boolean Getupdateresult () {xlog.i (TAG, " Getupdateresult "), if (Featureoption.mtk_emmc_support) {try {IBinder binder = Servicemanager.getservice (" GoogleOtaBin    Der ");    Systemupdatebinder Agent = systemupdatebinder.stub. Asinterface (binder);    if (Agent = = null) {XLOG.E (TAG, "Agent is null.");    return false;    } return Agent.readupgraderesult ();    } catch (RemoteException e) {e.printstacktrace ();    return false;    }} else {//add by lyx begin String strcurrentversion = Systemproperties.get ("ro.custom.build.version");    if (strcurrentversion ==null) {String strcurrentversion = systemproperties.get ("Ro.build.display.id");    }//add by lyx End if (strcurrentversion! = null) {strcurrentversion = Strcurrentversion.trim (); XLOG.I (TAG, "strcurrentversion =" + StrcurrentvErsion);    } downloadinfo downloadinfo = Downloadinfo.getinstance (Mcontext);    String strtargetversion = Downloadinfo.gettargetver ();    if (strtargetversion! = null) {strtargetversion = Strtargetversion.trim ();    XLOG.I (TAG, "strtargetversion =" + strtargetversion);    } return (Strtargetversion.equalsignorecase (strcurrentversion)); }    }

13,ota upgrade, unable to find the update package?

 在对比版本的时候,会对比fingerprint值,log来看这里12-20 09:49:20.895: INFO/SystemUpdate/HttpManager(2002): fingerPrintPkg = XXXXX/vh075_td_emmc_xxxxx_s4509/vh075_td_emmc_xxxxx_s4509:4.2.2/JDQ39/1387464158:user/test-keys12-20 09:49:20.895: INFO/SystemUpdate/HttpManager(2002): fingerPrintLocal = fingerPrintLocal是获取来的本地手机的fingerprint值,这边获取为null,是因为 客户定义的版本号太长了,导致在组装成fingerprint值的时候,超出了google限制的property的长度92 byte,这种情况下,请改小客户定义版本内容,即XXXXX/vh075_td_emmc_xxxxx_s4509/vh075_td_emmc_xxxxx_s4509:4.2.2/JDQ39/1387464158:user/test-keys

14,ota upgrade cannot be entered into recovery mode

原因:在初始化时没有将应用GoogleOtaBinder设置为user root。解决:在init.rc中添加以下两行:1, service GoogleOtaAgent /system/bin/GoogleOtaBinder2, user root

15, requires the FOTA upgrade feature for all operators

解决:A. 将/alps/mediatek/source/operator/OP02/SPEC0200/operator_packages下的fota_zte文件拷贝到/alps/mediatek/source/external下b, 将Android.mk文件的第一行”ifneq”和最后一行的”endif”用“#”注释掉

16, using Ota_from_target_files to make differential packet failure problem

原因:客户误用整包来制作差分包了,需要改换成ota.zip来制作差分包。解决:您在用ota_from_target_files制作差分包时,请用/out/target/product/[product]/obj/PACKAGING/target_files_intermediates/

The following [Project]-target_files-eng.[username].zip, renamed Ota.zip. This is used to make differential packets.
The original package.

17, the difference between OTA upgrade and Fota, and the corresponding information?
Support: Current MT6573/75/77 support OTA upgrade
Related information: Refer to the following path of the DMS for reference on OTA upgrades:
/3g Phone data/smart phone/software_customer/standard package/mt6577 SW Doc
Package/application/ota Update
Client code please refer to: alps/mediatek/source/packages/googleota* three files
The difference between Dm/fota and Mota: There are two ways to upgrade software versions, just one of them.
FOTA: Is the need to get three-party Redbend license, the release and management of the upgrade package is controlled by the operator, in the implementation process
Need to apply from the operator to open DM (enhanced after-sales service) function, in the course of the upgrade to charge;
Mota: It is our own implementation of a set of upgrade, where the server side and the client have been implemented, and free of charge to the customer
, there is no need for tripartite intervention.

18,FAQ11682] When the mobile phone in the OTA upgrade, will only use the WLAN upgrade is not selected, click Upgrade only use WLAN upgrade will check

This is the MTK design, because the differential packet is generally relatively large, we do not recommend that the end user to use GPRS traffic to download. The
The Wifi-only check box is initialized every time to ensure that the end user does not cause a loss of traffic due to unchecked
Lost.
Our code flow You can refer to the
Click Yes-check the GPRS network--GPRS Network is not available (the customer has disconnected the GPRS network) ———-
Load cut to pausedownload status ——— – Initialize wifi-only as tick
Click No--initialize wifi-only to tick
If the client finds this behavior inappropriate, it can comment out the invocation of the Initwifionlycheckbox () method. But
Is MTK does not recommend modification

19, Signature issue during differential package upgrade

原因:A版使用的key和B版使用的key不一致,导致签章error。解决:先确定在ProjectConfig.mk文件中的宏:MTK_SIGNATURE_CUSTOMIZATION设置,如果设置为yes, 客户需要自己去gen releasekey,生成key的文档参考DMS如下路径的资料:/Product Line/WCX/3G Phone Data/Smart Phone/Software_Customer/Standard Package/MT6575 SW Doc Package/Build/V2.3 /Application Signing Process Enhancement.ppt ,产生releasekey之后(releasekey在:alps/build/target/product/security/project下),Build第一个版本,build A new, build A otapackage, 将A版download到手机上,再build第二版,build B new, build Botapackage。最后用命令./build/tools/releasetools/ota_from_target_files –k alps/build/target/product/security/project/release –n –i oldotapackage.zip newotapackage.zip update.zip.如果宏MTK_SIGNATURE_CUSTOMIZATION设置为no,则不需要产生key,使用默认的alps/build/target/product/security下的testkey。这时在build 完A、B两个版本后直接用命令:./build/tools/releasetools/ota_from_target_files –n –i oldotapackage.zip newotapackage.zip update.zip.来制作差分包

Android OTA Upgrade

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.