ksud: compress embed assets (#186)

This commit is contained in:
skbeh
2023-02-03 09:31:32 +08:00
committed by GitHub
parent e4267848f0
commit bea93f6ad7
5 changed files with 192 additions and 41 deletions

View File

@@ -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(())
}
}

View File

@@ -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")
}

View File

@@ -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")?;