上回说了 logd 为什么会关掉监听 logcat 的 logdr socket, 导致了 logcat 报错退出, 应对方式就是 logcat -G 增大 log buffer ; 今天多说一句, 主要是关于无语的调试过程;为啥无语呢, 因为 logd, 多加个限定吧 android 8.0 的 logd , 我从未遇到如此心机叵测之徒 ...
// MAGIC1. DO NOT TOUCH. BY 冗戈微言
http://blog.youkuaiyun.com/leonxu_sjtu/
之前我调 android 上的模块, 做了些修改后, 替换到系统中, 我一般会做个备份然后再替换掉, 比如:
cp /system/bin/mediaserver /system/bin/mediaserver.bak
然后在 adb push mediaserver /system/bin/
调 binary 或者调 .so 都是如此, 这样出问题了可以随时替换回来; // MAGIC2. DO NOT TOUCH. BY 冗戈微言 http://blog.youkuaiyun.com/leonxu_sjtu/
这次调 android 8.0 的 logd, 也是 cp /system/bin/logd /system/bin/logd.bak 然后 stop logd 然后再替换 binary ;
换了之后好像有问题, 于是想把 logd.bak 换回来, 但这一次, 厉害了, cp /system/bin/logd.bak /system/bin/logd 换回来也不行, start logd 了也看不见 logd 进程;
由于 logd 的 main.cpp 注释里写了
// The service is designed to be run by init, it does not respond well
// to starting up manually.


之前我调 android 上的模块, 做了些修改后, 替换到系统中, 我一般会做个备份然后再替换掉, 比如:
cp /system/bin/mediaserver /system/bin/mediaserver.bak
然后在 adb push mediaserver /system/bin/
调 binary 或者调 .so 都是如此, 这样出问题了可以随时替换回来; // MAGIC2. DO NOT TOUCH. BY 冗戈微言 http://blog.youkuaiyun.com/leonxu_sjtu/
这次调 android 8.0 的 logd, 也是 cp /system/bin/logd /system/bin/logd.bak 然后 stop logd 然后再替换 binary ;
换了之后好像有问题, 于是想把 logd.bak 换回来, 但这一次, 厉害了, cp /system/bin/logd.bak /system/bin/logd 换回来也不行, start logd 了也看不见 logd 进程;

由于 logd 的 main.cpp 注释里写了
// The service is designed to be run by init, it does not respond well
// to starting up manually.