Red de conocimiento informático - Material del sitio web - Cómo hacer una copia de seguridad completa de la partición del sistema y de la partición de datos del sistema Android

Cómo hacer una copia de seguridad completa de la partición del sistema y de la partición de datos del sistema Android

La copia de seguridad del sistema Android se puede utilizar en una variedad de situaciones. El siguiente script de Python se puede utilizar para realizar una copia de seguridad de toda la partición de datos: empaquete todos los archivos y directorios de la partición de datos en data.zip y genere. un script de edición específico de recuperación para actualizar -script.sh. Por supuesto, solo necesita modificar la ruta de respaldo del script para hacer una copia de seguridad de la partición del sistema.

La ruta de copia de seguridad del script es suficiente para hacer una copia de seguridad de la partición del sistema. Si agrega algunas líneas de código, puede hacer una copia de seguridad de las particiones de inicio, recuperación, uboot y otras, pero esto requiere escribir diferentes códigos de copia de seguridad para diferentes particiones:

backup.pyimport?sys?

¿importar?os?

desde?os.path?import?join?

desde?os ?importar?ruta?

¿importar?archivo zip?

desde?archivo zip?importar?archivo zip

def ?packdir(dir,z,dirinfo,emptydirs, linkinfo):?

dirs = os.listdir(dir)?

si no dirs:?

emptydirs.append(dir)?

else:?

¿para?

absdir = join(dir, d)?

si no es path.islink(absdir) y(path. isdir(absdir) o path.isfile(absdir )):?

¿romper?

emptydirs.append(dir)?

¿para?

absdir =?join(dir, d)?

st?=?os.lstat(absdir)?

info?[st.st_uid, st.st_gid, st .st_mode]?

if?path.islink(absdir):?

info.append(absdir)?

linkdir?=?os.readlink( absdir)?

linkinfo[linkdir]? =?info?

elif?path.isdir(absdir):?

dirinfo[absdir] =? info?

packdir (absdir, z, dirinfo, vaciodirs, linkinfo)?

elif?path.isfile(absdir):?

dirinfo[absdir] ? =?info?

os.utime(absdir, (1403408099, 1403408099))?

z.write(absdir)?

else:? ? "¿Tipo de archivo desconocido?

zi?=?ZipFile('data.zip','w',zipfile.ZIP_DEFLATED)?

dirinfo?=?{}?

dirsvacíos ?=?[]?

linkinfo?=?{}?

packdir('/data', zi, dirinfo, vacíodirs, linkinfo

)? f?=?open('update-script.sh','wb');?

f.write('ifelse(is_mounted("/data"), unmount("/data"), 0);\n')?

f.write('format("ext4",?"EMMC",?"/dev/block

/data",?" 0",?" /data");\n')?

f.write('mount("ext4",?"EMMC",?" /dev/block /data",?" /data");\n')?

f.write('package_extract_dir("data",?" /data");\n')?

mkdir_cmd?=?' run_program("/sbin/busybox", "mkdir", "-p", "'?

mkdir_cmd? =?'"?, "'.join(emptydirs )?

mkdir_cmd? =?'") ;\n'?

f.write(mkdir_cmd)?

f.write(mkdir_cmd)?

info?=?dirinfo[clave]?

info?=?list(info)?

info.append(clave)?

info?=?tuple(info)?

set_perm?=?' >f.write(set_perm)?

F.write(set_perm)?

info = enlaceinfo[clave]?

info?=?tuple(info) )?

enlace simbólico?=?enlace simbólico("s")? enlace simbólico("s",?" s");\n'(clave, información[3])?

set_perm?=?' run_program("/sbin/busybox", "chown", "-h", "install:install", "s");\n'(info[3],)?

f.write(enlace simbólico)?

f.write(set_perm)?

f.write('unmount("/data");')? >

f.close()?

update_script='update-script.sh'

os.utime(update_script, (1403408099, 1403408099))?

zi.write(update_script)?

zi.close()

Cómo ejecutar:

Primero, necesita tener permisos de root y el el script necesita Depende de python-for-android para ejecutarse.

Luego debes empaquetar el script en un apk o ejecutarlo en el shell adb a través de la línea de comando.