使用stop start命令来重启framework,我们来看下其代码
是在system/core/toolbox下面,原理很简单就是利用ctl属性来控制进程。
start.c
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <cutils/properties.h>
- int start_main(int argc, char *argv[])
- {
- if(argc > 1) {
- property_set("ctl.start", argv[1]);
- } else {
- /* defaults to starting the common services stopped by stop.c */
- property_set("ctl.start", "netd");
- property_set("ctl.start", "surfaceflinger");
- property_set("ctl.start", "zygote");
- property_set("ctl.start", "zygote_secondary");
- }
- return 0;
- }
stop.c
#include <stdio.h>
#include <string.h>
#include <cutils/properties.h>
int stop_main(int argc, char *argv[])
{
if(argc > 1) {
property_set("ctl.stop", argv[1]);
} else{
/* defaults to stopping the common services */
property_set("ctl.stop", "zygote_secondary");
property_set("ctl.stop", "zygote");
property_set("ctl.stop", "surfaceflinger");
property_set("ctl.stop", "netd");
}
return 0;
}