blob: af502f6fdf48272c137e8df94903b6f0410cca26 [file] [log] [blame]
diff --git a/common/platform_constants_android.cc b/common/platform_constants_android.cc
index 371fe26..ef13058 100644
--- a/common/platform_constants_android.cc
+++ b/common/platform_constants_android.cc
@@ -30,7 +30,7 @@ const char kUpdatePayloadPublicKeyPath[] =
const char kCACertificatesPath[] = "/system/etc/security/cacerts_google";
// No deadline file API support on Android.
const char kOmahaResponseDeadlineFile[] = "";
-const char kNonVolatileDirectory[] = "/data/misc/update_engine";
+const char kNonVolatileDirectory[] = "/var/lib/update_engine";
const char kPostinstallMountOptions[] =
"context=u:object_r:postinstall_file:s0";
diff --git a/hardware_android.cc b/hardware_android.cc
index 947b13a..0ccb161 100644
--- a/hardware_android.cc
+++ b/hardware_android.cc
@@ -22,10 +22,11 @@
#include <algorithm>
#include <memory>
-
+#if 0
#include <bootloader.h>
#include <android-base/properties.h>
+#endif
#include <base/files/file_util.h>
#include <base/strings/stringprintf.h>
@@ -34,9 +35,11 @@
#include "update_engine/common/utils.h"
#include "update_engine/utils_android.h"
+#if 0
using android::base::GetBoolProperty;
using android::base::GetIntProperty;
using android::base::GetProperty;
+#endif
using std::string;
namespace chromeos_update_engine {
@@ -58,7 +61,7 @@ const char kPropProductManufacturer[] = "ro.product.manufacturer";
const char kPropBootHardwareSKU[] = "ro.boot.hardware.sku";
const char kPropBootRevision[] = "ro.boot.revision";
const char kPropBuildDateUTC[] = "ro.build.date.utc";
-
+#if 0
// Write a recovery command line |message| to the BCB. The arguments to recovery
// must be separated by '\n'. An empty string will erase the BCB.
bool WriteBootloaderRecoveryMessage(const string& message) {
@@ -91,7 +94,7 @@ bool WriteBootloaderRecoveryMessage(const string& message) {
}
return true;
}
-
+#endif
} // namespace
namespace hardware {
@@ -124,7 +127,7 @@ bool HardwareAndroid::IsOfficialBuild() const {
//
// In case of a non-bool value, we take the most restrictive option and
// assume we are in an official-build.
- return GetBoolProperty("ro.secure", true);
+ return true;//GetBoolProperty("ro.secure", true);
}
bool HardwareAndroid::IsNormalBootMode() const {
@@ -132,11 +135,11 @@ bool HardwareAndroid::IsNormalBootMode() const {
// update_engine will allow extra developers options, such as providing a
// different update URL. In case of error, we assume the build is in
// normal-mode.
- return !GetBoolProperty("ro.debuggable", false);
+ return true;//!GetBoolProperty("ro.debuggable", false);
}
bool HardwareAndroid::AreDevFeaturesEnabled() const {
- return !IsNormalBootMode();
+ return false;//!IsNormalBootMode();
}
bool HardwareAndroid::IsOOBEEnabled() const {
@@ -152,19 +155,22 @@ bool HardwareAndroid::IsOOBEComplete(base::Time* out_time_of_oobe) const {
}
string HardwareAndroid::GetHardwareClass() const {
- auto manufacturer = GetProperty(kPropProductManufacturer, "");
- auto sku = GetProperty(kPropBootHardwareSKU, "");
- auto revision = GetProperty(kPropBootRevision, "");
+ //auto manufacturer = GetProperty(kPropProductManufacturer, "");
+ //auto sku = GetProperty(kPropBootHardwareSKU, "");
+ //auto revision = GetProperty(kPropBootRevision, "");
- return manufacturer + ":" + sku + ":" + revision;
+ //return manufacturer + ":" + sku + ":" + revision;
+ return "manufacturer:sku:revision";
}
string HardwareAndroid::GetFirmwareVersion() const {
- return GetProperty(kPropBootBootloader, "");
+ //return GetProperty(kPropBootBootloader, "");
+ return "1.0";
}
string HardwareAndroid::GetECVersion() const {
- return GetProperty(kPropBootBaseband, "");
+ //return GetProperty(kPropBootBaseband, "");
+ return "1.0";
}
int HardwareAndroid::GetPowerwashCount() const {
@@ -174,11 +180,11 @@ int HardwareAndroid::GetPowerwashCount() const {
bool HardwareAndroid::SchedulePowerwash() {
LOG(INFO) << "Scheduling a powerwash to BCB.";
- return WriteBootloaderRecoveryMessage(kAndroidRecoveryPowerwashCommand);
+ return false;//WriteBootloaderRecoveryMessage(kAndroidRecoveryPowerwashCommand);
}
bool HardwareAndroid::CancelPowerwash() {
- return WriteBootloaderRecoveryMessage("");
+ return true;//WriteBootloaderRecoveryMessage("");
}
bool HardwareAndroid::GetNonVolatileDirectory(base::FilePath* path) const {
@@ -197,7 +203,8 @@ bool HardwareAndroid::GetPowerwashSafeDirectory(base::FilePath* path) const {
}
int64_t HardwareAndroid::GetBuildTimestamp() const {
- return GetIntProperty<int64_t>(kPropBuildDateUTC, 0);
+ //return GetIntProperty<int64_t>(kPropBuildDateUTC, 0);
+ return utils::GetIntProperty(kPropBuildDateUTC, 0);
}
bool HardwareAndroid::GetFirstActiveOmahaPingSent() const {
diff --git a/sideload_main.cc b/sideload_main.cc
index ddb312e..b983534 100644
--- a/sideload_main.cc
+++ b/sideload_main.cc
@@ -155,7 +155,7 @@ bool ApplyUpdatePayload(const string& payload,
// During the sideload we don't access the prefs persisted on disk but instead
// use a temporary memory storage.
- MemoryPrefs prefs;
+ //MemoryPrefs prefs;
std::unique_ptr<BootControlInterface> boot_control =
boot_control::CreateBootControl();
@@ -169,9 +169,21 @@ bool ApplyUpdatePayload(const string& payload,
LOG(ERROR) << "Error initializing the HardwareInterface.";
return false;
}
+ base::FilePath non_volatile_path;
+ if (!hardware->GetNonVolatileDirectory(&non_volatile_path)) {
+ LOG(ERROR) << "Failed to get a non-volatile directory.";
+ return false;
+ }
+ std::unique_ptr<PrefsInterface> prefsIf;
+ Prefs* prefs = new Prefs();
+ if (!prefs->Init(non_volatile_path.Append(kPrefsSubDirectory))) {
+ LOG(ERROR) << "Failed to initialize preferences.";
+ return false;
+ }
+ prefsIf.reset(prefs);
UpdateAttempterAndroid update_attempter(
- &sideload_daemon_state, &prefs, boot_control.get(), hardware.get());
+ &sideload_daemon_state, prefsIf.get(), boot_control.get(), hardware.get());
update_attempter.Init();
TEST_AND_RETURN_FALSE(update_attempter.ApplyPayload(
diff --git a/update_attempter_android.cc b/update_attempter_android.cc
index 04ccb18..60e96ff 100644
--- a/update_attempter_android.cc
+++ b/update_attempter_android.cc
@@ -21,7 +21,7 @@
#include <memory>
#include <utility>
-#include <android-base/properties.h>
+//#include <android-base/properties.h>
#include <base/bind.h>
#include <base/logging.h>
#include <base/strings/string_number_conversions.h>
@@ -29,7 +29,7 @@
#include <brillo/data_encoding.h>
#include <brillo/message_loops/message_loop.h>
#include <brillo/strings/string_utils.h>
-#include <log/log_safetynet.h>
+//#include <log/log_safetynet.h>
#include "update_engine/common/constants.h"
#include "update_engine/common/error_code_utils.h"
@@ -449,7 +449,7 @@ void UpdateAttempterAndroid::ProcessingDone(const ActionProcessor* processor,
case ErrorCode::kPayloadTimestampError:
// SafetyNet logging, b/36232423
- android_errorWriteLog(0x534e4554, "36232423");
+ //android_errorWriteLog(0x534e4554, "36232423");
break;
default:
@@ -599,7 +599,10 @@ void UpdateAttempterAndroid::SetStatusAndNotify(UpdateStatus status) {
status_ = status;
size_t payload_size =
install_plan_.payloads.empty() ? 0 : install_plan_.payloads[0].size;
- UpdateEngineStatus status_to_send = {.status = status_,
+ UpdateEngineStatus status_to_send = {.last_checked_time = 0,
+ .status = status_,
+ .current_version = "n",
+ .current_system_version = "n",
.progress = download_progress_,
.new_size_bytes = payload_size};
@@ -764,8 +767,8 @@ void UpdateAttempterAndroid::UpdatePrefsAndReportUpdateMetricsOnReboot() {
string current_boot_id;
TEST_AND_RETURN(utils::GetBootId(&current_boot_id));
// Example: [ro.build.version.incremental]: [4292972]
- string current_version =
- android::base::GetProperty("ro.build.version.incremental", "");
+ string current_version = "4292972";
+ //android::base::GetProperty("ro.build.version.incremental", "");
TEST_AND_RETURN(!current_version.empty());
// If there's no record of previous version (e.g. due to a data wipe), we
diff --git a/update_manager/policy.h b/update_manager/policy.h
index b60c4da..a57cfa6 100644
--- a/update_manager/policy.h
+++ b/update_manager/policy.h
@@ -202,7 +202,7 @@ class Policy {
std::string*, R*,
Args...) const) const {
std::string class_name = PolicyName() + "::";
-
+#if 0
if (reinterpret_cast<typeof(&Policy::UpdateCheckAllowed)>(
policy_method) == &Policy::UpdateCheckAllowed)
return class_name + "UpdateCheckAllowed";
@@ -223,6 +223,7 @@ class Policy {
return class_name + "P2PEnabledChanged";
NOTREACHED();
+#endif
return class_name + "(unknown)";
}
diff --git a/utils_android.cc b/utils_android.cc
index 393e65a..40c06b7 100644
--- a/utils_android.cc
+++ b/utils_android.cc
@@ -15,8 +15,10 @@
//
#include "update_engine/utils_android.h"
+#include <base/strings/string_number_conversions.h>
+#include <brillo/key_value_store.h>
-#include <fs_mgr.h>
+#include <fstab/fstab.h>
using std::string;
@@ -40,6 +42,9 @@ static struct fstab* OpenFSTab() {
namespace utils {
bool DeviceForMountPoint(const string& mount_point, base::FilePath* device) {
+ //*device = base::FilePath("/dev/disk/by-partlabel/misc");
+ // return true;
+#if 1
struct fstab* fstab;
struct fstab_rec* record;
@@ -58,8 +63,26 @@ bool DeviceForMountPoint(const string& mount_point, base::FilePath* device) {
*device = base::FilePath(record->blk_device);
fs_mgr_free_fstab(fstab);
return true;
+#endif
}
+int64_t GetIntProperty(const string& key, int64_t default_value){
+ brillo::KeyValueStore store;
+ if(store.Load(base::FilePath("/etc/update_engine/build.prop"))){
+ std::string result;
+ int64_t result_value;
+ if(!store.GetString(key, &result)){
+ LOG(ERROR) << "Error get key" << key;
+ return default_value;
+ }
+ if(base::StringToInt64(result,&result_value)){
+ return result_value;
+ }
+ }else{
+ LOG(ERROR) << "Error opening property file.";
+ }
+ return default_value;
+}
} // namespace utils
} // namespace chromeos_update_engine
diff --git a/utils_android.h b/utils_android.h
index 18dd8ab..9692610 100644
--- a/utils_android.h
+++ b/utils_android.h
@@ -30,6 +30,7 @@ namespace utils {
bool DeviceForMountPoint(const std::string& mount_point,
base::FilePath* device);
+int64_t GetIntProperty(const std::string& key, int64_t default_value);
} // namespace utils
} // namespace chromeos_update_engine