ksud: compress embed assets (#186)
This commit is contained in:
@@ -1,22 +1,28 @@
|
||||
use anyhow::Result;
|
||||
use const_format::concatcp;
|
||||
use crate::{utils, defs};
|
||||
use rust_embed::RustEmbed;
|
||||
|
||||
pub const RESETPROP_PATH: &str = concatcp!(defs::BINARY_DIR, "resetprop");
|
||||
use crate::{defs::BINARY_DIR, utils};
|
||||
|
||||
pub const RESETPROP_PATH: &str = concatcp!(BINARY_DIR, "resetprop");
|
||||
pub const BUSYBOX_PATH: &str = concatcp!(BINARY_DIR, "busybox");
|
||||
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
const RESETPROP: &[u8] = include_bytes!("../bin/aarch64/resetprop");
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
const RESETPROP: &[u8] = include_bytes!("../bin/x86_64/resetprop");
|
||||
#[derive(RustEmbed)]
|
||||
#[folder = "bin/aarch64"]
|
||||
struct Asset;
|
||||
|
||||
pub const BUSYBOX_PATH: &str = concatcp!(defs::BINARY_DIR, "busybox");
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
const BUSYBOX: &[u8] = include_bytes!("../bin/aarch64/busybox");
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
const BUSYBOX: &[u8] = include_bytes!("../bin/x86_64/busybox");
|
||||
#[derive(RustEmbed)]
|
||||
#[folder = "bin/x86_64"]
|
||||
struct Asset;
|
||||
|
||||
pub fn ensure_bin_assets() -> Result<()> {
|
||||
utils::ensure_binary(RESETPROP_PATH, RESETPROP)?;
|
||||
utils::ensure_binary(BUSYBOX_PATH, BUSYBOX)?;
|
||||
pub fn ensure_binaries() -> Result<()> {
|
||||
for file in Asset::iter() {
|
||||
utils::ensure_binary(
|
||||
format!("{BINARY_DIR}{file}"),
|
||||
&Asset::get(&file).unwrap().data,
|
||||
)?
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ pub fn on_post_data_fs() -> Result<()> {
|
||||
// we should clean the module mount point if it exists
|
||||
ensure_clean_dir(module_dir)?;
|
||||
|
||||
assets::ensure_bin_assets().with_context(|| "Failed to extract bin assets")?;
|
||||
assets::ensure_binaries().with_context(|| "Failed to extract bin assets")?;
|
||||
|
||||
if Path::new(module_update_img).exists() {
|
||||
if module_update_flag.exists() {
|
||||
@@ -191,6 +191,6 @@ pub fn install() -> Result<()> {
|
||||
ensure_dir_exists(defs::ADB_DIR)?;
|
||||
std::fs::copy("/proc/self/exe", defs::DAEMON_PATH)?;
|
||||
|
||||
// install binary assets also!
|
||||
assets::ensure_bin_assets().with_context(|| "Failed to extract assets")
|
||||
// install binary assets
|
||||
assets::ensure_binaries().with_context(|| "Failed to extract assets")
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ fn do_install_module(zip: String) -> Result<()> {
|
||||
// print banner
|
||||
println!(include_str!("banner"));
|
||||
|
||||
assets::ensure_bin_assets().with_context(|| "Failed to extract assets")?;
|
||||
assets::ensure_binaries().with_context(|| "Failed to extract assets")?;
|
||||
|
||||
// first check if workding dir is usable
|
||||
ensure_dir_exists(defs::WORKING_DIR).with_context(|| "Failed to create working dir")?;
|
||||
|
||||
Reference in New Issue
Block a user