ksud: re-extract ksud when necessary close #1242
This commit is contained in:
@@ -17,11 +17,12 @@ struct Asset;
|
|||||||
#[folder = "bin/x86_64"]
|
#[folder = "bin/x86_64"]
|
||||||
struct Asset;
|
struct Asset;
|
||||||
|
|
||||||
pub fn ensure_binaries() -> Result<()> {
|
pub fn ensure_binaries(ignore_if_exist: bool) -> Result<()> {
|
||||||
for file in Asset::iter() {
|
for file in Asset::iter() {
|
||||||
utils::ensure_binary(
|
utils::ensure_binary(
|
||||||
format!("{BINARY_DIR}{file}"),
|
format!("{BINARY_DIR}{file}"),
|
||||||
&Asset::get(&file).unwrap().data,
|
&Asset::get(&file).unwrap().data,
|
||||||
|
ignore_if_exist,
|
||||||
)?
|
)?
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ pub fn on_post_data_fs() -> Result<()> {
|
|||||||
// we should clean the module mount point if it exists
|
// we should clean the module mount point if it exists
|
||||||
ensure_clean_dir(module_dir)?;
|
ensure_clean_dir(module_dir)?;
|
||||||
|
|
||||||
assets::ensure_binaries().with_context(|| "Failed to extract bin assets")?;
|
assets::ensure_binaries(true).with_context(|| "Failed to extract bin assets")?;
|
||||||
|
|
||||||
if Path::new(module_update_img).exists() {
|
if Path::new(module_update_img).exists() {
|
||||||
if module_update_flag.exists() {
|
if module_update_flag.exists() {
|
||||||
@@ -259,7 +259,7 @@ pub fn install() -> Result<()> {
|
|||||||
std::fs::copy("/proc/self/exe", defs::DAEMON_PATH)?;
|
std::fs::copy("/proc/self/exe", defs::DAEMON_PATH)?;
|
||||||
restorecon::lsetfilecon(defs::DAEMON_PATH, restorecon::ADB_CON)?;
|
restorecon::lsetfilecon(defs::DAEMON_PATH, restorecon::ADB_CON)?;
|
||||||
// install binary assets
|
// install binary assets
|
||||||
assets::ensure_binaries().with_context(|| "Failed to extract assets")?;
|
assets::ensure_binaries(false).with_context(|| "Failed to extract assets")?;
|
||||||
|
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
link_ksud_to_bin()?;
|
link_ksud_to_bin()?;
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ fn _install_module(zip: &str) -> Result<()> {
|
|||||||
// print banner
|
// print banner
|
||||||
println!(include_str!("banner"));
|
println!(include_str!("banner"));
|
||||||
|
|
||||||
assets::ensure_binaries().with_context(|| "Failed to extract assets")?;
|
assets::ensure_binaries(false).with_context(|| "Failed to extract assets")?;
|
||||||
|
|
||||||
// first check if workding dir is usable
|
// first check if workding dir is usable
|
||||||
ensure_dir_exists(defs::WORKING_DIR).with_context(|| "Failed to create working dir")?;
|
ensure_dir_exists(defs::WORKING_DIR).with_context(|| "Failed to create working dir")?;
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ pub fn ensure_dir_exists<T: AsRef<Path>>(dir: T) -> Result<()> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ensure_binary<T: AsRef<Path>>(path: T, contents: &[u8]) -> Result<()> {
|
pub fn ensure_binary<T: AsRef<Path>>(path: T, contents: &[u8], ignore_if_exist: bool) -> Result<()> {
|
||||||
if path.as_ref().exists() {
|
if ignore_if_exist && path.as_ref().exists() {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user