11 #include <RADCore/RADCore.h>
12 #include <RADInstaller/RADInstaller.h>
80 const std::string& manifestPath,
const std::string& publicKeyPem = {});
84 const std::vector<std::string>& selectedComponents = {});
JSON value supporting null, bool, number, string, array, and object.
Definition: RADCore.h:541
Success-or-error return value for APIs that should not throw.
Definition: RADCore.h:158
Manifest parser, verifier, and installer bridge.
Definition: RADUpdate.h:72
static RADCore::RADJsonValue manifestToJson(const UpdateManifest &manifest)
Converts a manifest to JSON.
static VerificationResult verifyBundle(const std::string &bundleRoot, const std::string &manifestPath, const std::string &publicKeyPem={})
Verifies payload hashes, sizes, and optional manifest signature.
static RADCore::RADResult< ABMetadata > loadABMetadata(const std::string &path)
Loads A/B metadata JSON.
static RADCore::RADJsonValue abMetadataToJson(const ABMetadata &metadata)
Converts A/B metadata to JSON.
static RADInstaller::Result installBundle(const std::string &bundleRoot, const UpdateManifest &manifest, const std::string &targetRoot, const std::vector< std::string > &selectedComponents={})
Installs a bundle using RADInstaller when installerManifest is present.
static bool saveABMetadata(const std::string &path, const ABMetadata &metadata, std::string *error=nullptr)
Saves A/B metadata JSON.
static RADCore::RADResult< UpdateManifest > loadManifest(const std::string &path)
Loads an update manifest from JSON.
Definition: RADUpdate.h:17
Installer result.
Definition: RADInstaller.h:70
Payload file declared in an update manifest.
Definition: RADUpdate.h:20
uint64_t size
Expected file size in bytes; 0 disables size checking.
Definition: RADUpdate.h:26
std::string sha256
Expected lowercase SHA-256 hex digest.
Definition: RADUpdate.h:24
std::string path
File path relative to bundle root.
Definition: RADUpdate.h:22
Signed update manifest.
Definition: RADUpdate.h:30
std::string minimumVersion
Minimum compatible installed version.
Definition: RADUpdate.h:38
std::string channel
Release channel.
Definition: RADUpdate.h:36
std::string signaturePath
Optional signature path for this manifest.
Definition: RADUpdate.h:44
std::vector< Payload > payloads
Payload files.
Definition: RADUpdate.h:40
std::string version
Update version.
Definition: RADUpdate.h:34
std::string product
Product identifier.
Definition: RADUpdate.h:32
std::string installerManifest
Optional installer manifest path inside the bundle.
Definition: RADUpdate.h:42
Update verification result.
Definition: RADUpdate.h:64
bool ok
True when all checks passed.
Definition: RADUpdate.h:66
std::vector< std::string > errors
Error messages.
Definition: RADUpdate.h:68