Difference between revisions of "WISE-PaaS/OTA Agent(Android)"
From ESS-WIKI
Line 17: | Line 17: | ||
+ | <syntaxhighlight lang="c"> | ||
+ | switch(Advaction.getAdvaction(asplit[0])){ | ||
+ | case systembackup: | ||
+ | Slog.i(TAG, "switch systembackup"); | ||
+ | RecoverySystem.rebootSystemBackup(mContext); | ||
+ | break; | ||
+ | case wipedata: | ||
+ | Slog.i(TAG, "switch wipedata"); | ||
+ | RecoverySystem.rebootWipeUserData(mContext); | ||
+ | break; | ||
+ | case wipecache: | ||
+ | Slog.i(TAG, "swtich wipecache"); | ||
+ | RecoverySystem.rebootWipeCache(mContext); | ||
+ | break; | ||
+ | case install: | ||
+ | Slog.i(TAG, "switch install"); | ||
+ | String file = asplit[1].trim(); | ||
+ | Slog.i(TAG, "install file: " + file); | ||
+ | File recoveryFile = new File(file); | ||
+ | if(!recoveryFile.exists()){ | ||
+ | Slog.i(TAG, "install, file not exist"); | ||
+ | return; | ||
+ | } | ||
− | The source code is here: | + | // first verify package |
− | + | /* | |
+ | try { | ||
+ | mWakelock.acquire(); | ||
+ | RecoverySystem.verifyPackage(recoveryFile, recoveryVerifyListener, null); | ||
+ | } catch (IOException e1) { | ||
+ | reportInstallError(OTAStateChangeListener.ERROR_PACKAGE_VERIFY_FALIED); | ||
+ | e1.printStackTrace(); | ||
+ | return; | ||
+ | } catch (GeneralSecurityException e1) { | ||
+ | reportInstallError(OTAStateChangeListener.ERROR_PACKAGE_VERIFY_FALIED); | ||
+ | e1.printStackTrace(); | ||
+ | return; | ||
+ | } finally { | ||
+ | mWakelock.release(); | ||
+ | } | ||
+ | */ | ||
+ | RecoverySystem.installPackage(mContext, recoveryFile); | ||
+ | break; | ||
+ | default: | ||
+ | Slog.i(TAG, "error paramer"); | ||
+ | break; | ||
+ | } | ||
+ | </syntaxhighlight>The source code is here: | ||
== Android OtaService test tools == | == Android OtaService test tools == | ||
== Android Ota-agent == | == Android Ota-agent == | ||
[[Category:Pages with broken file links]] | [[Category:Pages with broken file links]] |
Revision as of 05:53, 4 November 2016
Contents
Introduction
This document demonstrates how to support our ota-agent solution under your android system.This demonstration is android 4.3 based. If you encounter problem under your some-versio android system,please mailto me: jin.xin@advantech.com.cn
Architecture
The android ota solution is compose of two parts: the C-lanuage based Ota-agent and the Java-language based OtaService.
- Ota-agent achieves communiction with the ota-server, besides, it achieves the package download and unzip. But, the Ota-agent is C-language based and it can't invoke the Java-language based android OTA APIs, so the OtaService comes.
- OtaService is on the android framework layer, so it can invoke the android OTA APIs directly. The OtaService provides as a socket server. So the Ota-agent can invoke the android OTA APIs through the socket connnect providing by OTaService indirectly.
Android OtaService
we now support four commands, you can extent your commands.
switch(Advaction.getAdvaction(asplit[0])){
case systembackup:
Slog.i(TAG, "switch systembackup");
RecoverySystem.rebootSystemBackup(mContext);
break;
case wipedata:
Slog.i(TAG, "switch wipedata");
RecoverySystem.rebootWipeUserData(mContext);
break;
case wipecache:
Slog.i(TAG, "swtich wipecache");
RecoverySystem.rebootWipeCache(mContext);
break;
case install:
Slog.i(TAG, "switch install");
String file = asplit[1].trim();
Slog.i(TAG, "install file: " + file);
File recoveryFile = new File(file);
if(!recoveryFile.exists()){
Slog.i(TAG, "install, file not exist");
return;
}
// first verify package
/*
try {
mWakelock.acquire();
RecoverySystem.verifyPackage(recoveryFile, recoveryVerifyListener, null);
} catch (IOException e1) {
reportInstallError(OTAStateChangeListener.ERROR_PACKAGE_VERIFY_FALIED);
e1.printStackTrace();
return;
} catch (GeneralSecurityException e1) {
reportInstallError(OTAStateChangeListener.ERROR_PACKAGE_VERIFY_FALIED);
e1.printStackTrace();
return;
} finally {
mWakelock.release();
}
*/
RecoverySystem.installPackage(mContext, recoveryFile);
break;
default:
Slog.i(TAG, "error paramer");
break;
}