status_t BnGoogleOtaAgent::onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { XLOGI("OnTransact (%u,%u)", code, flags); switch(code) { case TRANSACTION_SET_REBOOT_FLAG: { XLOGI("setRebootFlag\n"); data.enforceInterface (descriptor); reply->writeInt32 (setRebootFlag()); return NO_ERROR; } break; case TRANSACTION_CLEAR_UPGRADE_RESULT: { XLOGI("clearUpgradeResult\n"); data.enforceInterface(descriptor); reply->writeInt32(clearUpgradeResult()); return NO_ERROR; } break; case TRANSACTION_READ_UPGRADE_RESULT: { XLOGI("readOtaResult\n"); data.enforceInterface(descriptor); reply->writeInt32(readUpgradeResult()); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } return NO_ERROR; }
status_t BnDMAgent::onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { XLOGI("OnTransact (%u,%u)", code, flags); reply->writeInt32(DM_READ_NO_EXCEPTION);//used for readException switch (code) { case TRANSACTION_setLockFlag: { /* XLOGI("setLockFlag\n"); data.enforceInterface (descriptor); reply->writeInt32 (setLockFlag ()); // XLOGI("locked\n"); return NO_ERROR; */ XLOGI("setLockFlag\n"); data.enforceInterface(descriptor); int len = data.readInt32(); XLOGD("setLockFlag len = %d\n", len); if (len == -1) { // array is null reply->writeInt32(0); } else { char buff[len]; data.read(buff, len); XLOGD("setLockFlag buff = %s\n", buff); reply->writeInt32(setLockFlag(buff, len)); } XLOGI("setLockFlag done\n"); return NO_ERROR; } break; case TRANSACTION_clearLockFlag: { XLOGI("clearLockFlag\n"); data.enforceInterface(descriptor); reply->writeInt32(clearLockFlag()); XLOGI("cleared\n"); return NO_ERROR; } break; case TRANSACTION_readDMTree: { XLOGI("readDMTree\n"); data.enforceInterface(descriptor); int size = 0; char * ret = readDMTree(size); if (ret == NULL) { reply->writeInt32(-1); } else { reply->writeInt32(size); reply->write(ret, size); free(ret); } XLOGI("DMTree read done\n"); return NO_ERROR; } break; case TRANSACTION_writeDMTree: { XLOGI("writeDMTree\n"); data.enforceInterface(descriptor); int len = data.readInt32(); if (len == -1) { // array is null reply->writeInt32(0); } else { char buff[len]; data.read(buff, len); reply->writeInt32(writeDMTree(buff, len)); } XLOGI("DMTree wrote\n"); return NO_ERROR; } break; case TRANSACTION_isLockFlagSet: { XLOGI("isLockFlagSet\n"); data.enforceInterface(descriptor); reply->writeInt32(isLockFlagSet()); XLOGI("isLockFlagSet done\n"); return NO_ERROR; } break; case TRANSACTION_readIMSI: { XLOGI("readIMSI\n"); data.enforceInterface(descriptor); int size = 0; char * ret = readIMSI(size); XLOGD("readIMSI = %s\n", ret); if (ret == NULL) { reply->writeInt32(-1); } else { reply->writeInt32(size); reply->write(ret, size); free(ret); } XLOGI("readIMSI done\n"); return NO_ERROR; } break; case TRANSACTION_writeIMSI: { XLOGI("writeIMSI\n"); data.enforceInterface(descriptor); int len = data.readInt32(); XLOGD("writeIMSI len = %d\n", len); if (len == -1) { // array is null reply->writeInt32(0); } else { char buff[len]; data.read(buff, len); XLOGD("writeIMSI buff = %s\n", buff); reply->writeInt32(writeIMSI(buff, len)); } XLOGI("writeIMSI done\n"); return NO_ERROR; } break; case TRANSACTION_readCTA: { XLOGI("readCTA\n"); data.enforceInterface(descriptor); int size = 0; char * ret = readCTA(size); XLOGD("readCTA = %s\n", ret); if (ret == NULL) { reply->writeInt32(-1); } else { reply->writeInt32(size); reply->write(ret, size); free(ret); } XLOGI("readCTA done\n"); return NO_ERROR; } break; case TRANSACTION_writeCTA: { XLOGI("writeCTA\n"); data.enforceInterface(descriptor); int len = data.readInt32(); XLOGD("writeCTA len = %d\n", len); if (len == -1) { // array is null reply->writeInt32(0); } else { char buff[len]; data.read(buff, len); XLOGD("writeCTA buff = %s\n", buff); reply->writeInt32(writeCTA(buff, len)); } XLOGI("writeCTA done\n"); return NO_ERROR; } break; case TRANSACTION_readOperatorName: { XLOGI("readOperatorName\n"); data.enforceInterface(descriptor); int size = 0; char * ret = readOperatorName(size); if (ret == NULL) { reply->writeInt32(-1); } else { reply->writeInt32(size); reply->write(ret, size); free(ret); } XLOGI("readOperatorName done\n"); return NO_ERROR; } break; case TRANSACTION_setRebootFlag: { XLOGI("setRebootFlag\n"); data.enforceInterface(descriptor); reply->writeInt32(setRebootFlag()); XLOGI("setRebootFlag done\n"); return NO_ERROR; } break; case TRANSACTION_getLockType: { XLOGI("getLockType\n"); data.enforceInterface(descriptor); reply->writeInt32(getLockType()); XLOGI("getLockType done\n"); return NO_ERROR; } break; case TRANSACTION_getOperatorID: { XLOGI("getOperatorID\n"); data.enforceInterface(descriptor); reply->writeInt32(getOperatorID()); XLOGI("getOperatorID done\n"); return NO_ERROR; } break; case TRANSACTION_getOperatorName: { XLOGI("getOperatorName\n"); data.enforceInterface(descriptor); char * ret = getOperatorName(); if (ret == NULL) reply->writeInt32(-1); else reply->writeInt32(0); XLOGI("getOperatorName done\n"); return NO_ERROR; } break; case TRANSACTION_isHangMoCallLocking: { XLOGI("isHangMoCallLocking\n"); data.enforceInterface(descriptor); reply->writeInt32(isHangMoCallLocking()); XLOGI("isHangMoCallLocking done\n"); return NO_ERROR; } break; case TRANSACTION_isHangMtCallLocking: { XLOGI("isHangMtCallLocking\n"); data.enforceInterface(descriptor); reply->writeInt32(isHangMtCallLocking()); XLOGI("isHangMtCallLocking\n"); return NO_ERROR; } break; case TRANSACTION_clearRebootFlag: { XLOGI("clearRebootFlag\n"); data.enforceInterface(descriptor); reply->writeInt32(clearRebootFlag()); XLOGI("clearRebootFlag done\n"); return NO_ERROR; } break; case TRANSACTION_isBootRecoveryFlag: { XLOGI("isBootRecoveryFlag\n"); data.enforceInterface(descriptor); reply->writeInt32(isBootRecoveryFlag()); XLOGI("isBootRecoveryFlag done\n"); return NO_ERROR; } break; case TRANSACTION_isWipeSet: { XLOGI("isWipeset\n"); data.enforceInterface(descriptor); reply->writeInt32(isWipeSet()); XLOGI("isWipeset done\n"); return NO_ERROR; } break; case TRANSACTION_setWipeFlag: { XLOGI("setWipeFlag\n"); data.enforceInterface(descriptor); //int len=data.readInt32 (); reply->writeInt32(setWipeFlag("FactoryReset", sizeof("FactoryReset"))); XLOGI("setWipeFlag done\n"); return NO_ERROR; } break; case TRANSACTION_clearWipeFlag: { XLOGI("clearWipeFlag\n"); data.enforceInterface(descriptor); reply->writeInt32(clearWipeFlag()); XLOGI("clearWipeFlag done\n"); return NO_ERROR; } break; case TRANSACTION_getUpgradeStatus: { XLOGI("getUpgradeStatus\n"); data.enforceInterface(descriptor); reply->writeInt32(getUpgradeStatus()); XLOGI("getUpgradeStatus done\n"); return NO_ERROR; } break; case TRANSACTION_restartAndroid: { XLOGI("restartAndroid\n"); data.enforceInterface(descriptor); reply->writeInt32(restartAndroid()); XLOGI("restartAndroid\n"); return NO_ERROR; } break; case TRANSACTION_readOtaResult: { XLOGI("readOtaResult\n"); data.enforceInterface(descriptor); reply->writeInt32(readOtaResult()); return NO_ERROR; } break; case TRANSACTION_clearOtaResult: { XLOGI("clearOtaResult\n"); data.enforceInterface(descriptor); reply->writeInt32(clearOtaResult()); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } return NO_ERROR; }