CRIU (stands for Checkpoint and Restore in Userspace) is a utility to checkpoint/restore Linux tasks. http://criu.org https://github.com/checkpoint-restore/criu
However, it is not enough just support for Linux tasks, in some case, people want to use CRIU to checkpoint/restore Android tasks. Besides, for some special cases, people want to checkpoint/restore a process tree including Linux tasks and Android tasks.
-
Release a criu variance for Android; Build a criu variance that can be run on Android. The biggest challengeThe is the dependency of original CRIU. Certainly, we could evaluate the static version of CRIU. We give this task low priority. Because construct an Android runtime on host is possible, we could checkpoint/restore it with original CRIU.
-
Make criu to support checkpoint/restore Android runtime; Android runtime have different libc and pthread implementation compare with generic Linux runtime
-
Make criu to support checkpoitn/restore configfs; Android use configfs for usb devices
-
Make criu to support checkpoint/restore Android properties sharing mapping;
-
Make criu to support checkpoint/restore binder device (Binder IPC); Kernel: Export binder information to /proc//binder CRIU: Support binder type device and support binder ops replay
-
Upstream the feature of checkpoint/restore Android runtime to original CRIU branch. Make criu to identify the glibc-based runtime and bionic-based runtime at runtime. In some case, especially for container, maybe the root process is Linux runtime, but the child is Android runtime, Make criu to support checkpoint/restore the process tree mixed Linux runtime (Glibc-based) and Android runtime;
The project is licensed under GPLv2 (though files sitting in the lib/ directory are LGPLv2.1).