{"id":14191,"date":"2024-08-01T17:14:57","date_gmt":"2024-08-01T09:14:57","guid":{"rendered":"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191"},"modified":"2024-08-21T09:48:53","modified_gmt":"2024-08-21T01:48:53","slug":"lxc4-0-0%e4%ba%8eandroid%e5%b9%b3%e5%8f%b0%e9%9b%86%e6%88%90%e6%9c%89%e6%95%88%e4%bf%ae%e6%94%b9%e6%95%b4%e7%90%86","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191","title":{"rendered":"lxc4.0.0\u4e8eandroid\u5e73\u53f0\u96c6\u6210\u6709\u6548\u4fee\u6539\u6574\u7406"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E4%B8%80%E3%80%81%E5%86%85%E6%A0%B8%E5%B1%82%E4%BF%AE%E6%94%B9\" title=\"\u4e00\u3001\u5185\u6838\u5c42\u4fee\u6539\">\u4e00\u3001\u5185\u6838\u5c42\u4fee\u6539<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#lxc%E5%90%AF%E5%8A%A8\" title=\"lxc\u542f\u52a8\">lxc\u542f\u52a8<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E5%BC%80%E5%90%AF%E5%86%85%E6%A0%B8%E8%AF%A6%E7%BB%86%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA\" title=\"\u5f00\u542f\u5185\u6838\u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa\">\u5f00\u542f\u5185\u6838\u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E5%A2%9E%E5%8A%A0devbinder_pad%E9%A9%B1%E5%8A%A8\" title=\"\u589e\u52a0\/dev\/binder_pad\u9a71\u52a8\">\u589e\u52a0\/dev\/binder_pad\u9a71\u52a8<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E4%BA%8C%E3%80%81%E7%B3%BB%E7%BB%9F%E5%8F%8A%E7%A8%8B%E5%BA%8F\" title=\"\u4e8c\u3001\u7cfb\u7edf\u53ca\u7a0b\u5e8f\">\u4e8c\u3001\u7cfb\u7edf\u53ca\u7a0b\u5e8f<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E6%8C%82%E8%BD%BD%E5%88%86%E5%8C%BA%E5%A4%B1%E8%B4%A5\" title=\"\u6302\u8f7d\u5206\u533a\u5931\u8d25\">\u6302\u8f7d\u5206\u533a\u5931\u8d25<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#TODO\" title=\"TODO\">TODO<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E9%98%B2%E6%AD%A2%E8%BF%9B%E5%85%A5recovery%E6%A8%A1%E5%BC%8F\" title=\"\u9632\u6b62\u8fdb\u5165recovery\u6a21\u5f0f\">\u9632\u6b62\u8fdb\u5165recovery\u6a21\u5f0f<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E7%99%BD%E5%90%8D%E5%8D%95%E6%96%B9%E6%B3%95\" title=\"\u767d\u540d\u5355\u65b9\u6cd5\">\u767d\u540d\u5355\u65b9\u6cd5<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E5%8E%BB%E9%99%A4label%E6%A0%A1%E9%AA%8C\" title=\"\u53bb\u9664label\u6821\u9a8c\">\u53bb\u9664label\u6821\u9a8c<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E7%A6%81%E6%AD%A2%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BDadb%E8%AE%BE%E5%A4%87\" title=\"\u7981\u6b62\u81ea\u52a8\u6302\u8f7dadb\u8bbe\u5907\">\u7981\u6b62\u81ea\u52a8\u6302\u8f7dadb\u8bbe\u5907<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E7%A6%81%E6%AD%A2vendoretcfstabqcom%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BDdata%E5%88%86%E5%8C%BA\" title=\"\u7981\u6b62vendor\/etc\/fstab.qcom\u81ea\u52a8\u6302\u8f7d\/data\u5206\u533a\">\u7981\u6b62vendor\/etc\/fstab.qcom\u81ea\u52a8\u6302\u8f7d\/data\u5206\u533a<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9B%AE%E5%BD%95%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95\" title=\"\u6839\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u76ee\u5f55\">\u6839\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u76ee\u5f55<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-14\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E4%B8%89%E3%80%81zygote%E9%80%82%E9%85%8D\" title=\"\u4e09\u3001zygote\u9002\u914d\">\u4e09\u3001zygote\u9002\u914d<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-15\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E5%88%9B%E5%BB%BAstorage%E7%9B%AE%E5%BD%95\" title=\"\u521b\u5efa\/storage\u76ee\u5f55\">\u521b\u5efa\/storage\u76ee\u5f55<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-16\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AE%E4%BF%AE%E6%94%B9\" title=\"\u56db\u3001\u914d\u7f6e\u4fee\u6539\">\u56db\u3001\u914d\u7f6e\u4fee\u6539<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-17\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=14191\/#1%E7%B3%BB%E7%BB%9F%E5%B1%9E%E6%80%A7\" title=\"1.\u7cfb\u7edf\u5c5e\u6027\">1.\u7cfb\u7edf\u5c5e\u6027<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E5%86%85%E6%A0%B8%E5%B1%82%E4%BF%AE%E6%94%B9\"><\/span>\u4e00\u3001\u5185\u6838\u5c42\u4fee\u6539<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"lxc%E5%90%AF%E5%8A%A8\"><\/span>lxc\u542f\u52a8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>arch\/arm64\/configs\/vendor\/kona_defconfig<\/code>\u589e\u52a0\uff1a<\/p>\n<pre><code class=\"language-bash\">CONFIG_SYSVIPC=y\nCONFIG_POSIX_MQUEUE=y<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E5%BC%80%E5%90%AF%E5%86%85%E6%A0%B8%E8%AF%A6%E7%BB%86%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA\"><\/span>\u5f00\u542f\u5185\u6838\u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>kernel\/printk.c<\/code>\u6ce8\u91ca\uff1a<\/p>\n<pre><code class=\"language-bash\">    \/* Ratelimit when not explicitly enabled. *\/\n    if (!(devkmsg_log &amp; DEVKMSG_LOG_MASK_ON)) {\n        if (!___ratelimit(&amp;user-&gt;rs, current-&gt;comm)){\n            \/\/return ret;\n        }\n    }<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E5%A2%9E%E5%8A%A0devbinder_pad%E9%A9%B1%E5%8A%A8\"><\/span>\u589e\u52a0\/dev\/binder_pad\u9a71\u52a8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>drivers\/android\/Kconfig<\/code>\u589e\u52a02\u4e2abinder\u8bbe\u5907\uff0cvndbinder_pad\u548cbinder_pad\uff1a<br \/>\n<code>default &quot;binder,hwbinder,vndbinder,vndbinder_pad,binder_pad&quot;<\/code><\/p>\n<p>\u5bf9\u5e94\u6e90\u7801\u4fee\u6539\uff1a<\/p>\n<ul>\n<li>1\uff09frameworks\/native\/libs\/binder\/ProcessState.cpp<\/li>\n<\/ul>\n<pre><code class=\"language-cpp\">#ifdef __ANDROID_VNDK__\nconst char* kDefaultDriver = &quot;\/dev\/vndbinder_pad&quot;;\n#else\nconst char* kDefaultDriver = &quot;\/dev\/binder_pad&quot;;\n#endif\n<\/code><\/pre>\n<ul>\n<li>\n<p>2)\u521d\u59cb\u5316\u65b0\u589ebinder\u8bbe\u5907\u7684\u8bfb\u5199\u6743\u9650<br \/>\n\u5728\/ueventd.rc\u4e2d\u589e\u52a0\uff1a<\/p>\n<pre><code class=\"language-bash\">\/dev\/binder_pad           0666   root       root\n\/dev\/vndbinder_pad        0666   root       root<\/code><\/pre>\n<\/li>\n<li>\n<p>3)\u4fee\u6539servicemanager\u4e0evndservicemanager\u9ed8\u8ba4\u7684\u9a71\u52a8\u8bbe\u5907<br \/>\n\u91c7\u7528\u4fee\u6539rc\u914d\u7f6e\u6587\u4ef6\u7684\u65b9\u5f0f\uff0c\u4e0d\u76f4\u63a5\u4fee\u6539\u6e90\u7801\u3002<br \/>\n2-1\uff09\/system\/etc\/init\/servicemanager.rc<br \/>\n<code>service servicemanager \/system\/bin\/servicemanager \/dev\/binder_pad <\/code><br \/>\n2-2\uff09\/vendor\/etc\/init\/vndservicemanager.rc<br \/>\n<code>service vndservicemanager \/vendor\/bin\/vndservicemanager \/dev\/vndbinder_pad<\/code><\/p>\n<\/li>\n<\/ul>\n<h1><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E7%B3%BB%E7%BB%9F%E5%8F%8A%E7%A8%8B%E5%BA%8F\"><\/span>\u4e8c\u3001\u7cfb\u7edf\u53ca\u7a0b\u5e8f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"%E6%8C%82%E8%BD%BD%E5%88%86%E5%8C%BA%E5%A4%B1%E8%B4%A5\"><\/span>\u6302\u8f7d\u5206\u533a\u5931\u8d25<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>system\/core\/init\/first_stage_init.cpp<\/code>\u6ce8\u91ca\uff1a<\/p>\n<pre><code class=\"language-cpp\">    if (!DoFirstStageMount()) {\n        \/\/LOG(FATAL) &lt;&lt; &quot;Failed to mount required partitions early ...&quot;;\n    }<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"TODO\"><\/span>TODO<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>system\/core\/init\/util.cpp<\/code>\u6ce8\u91ca\uff1a<\/p>\n<pre><code class=\"language-cpp\">\/\/    if ((sb.st_mode &amp; (S_IWGRP | S_IWOTH)) != 0) {\n\/\/        return Error() &lt;&lt; &quot;Skipping insecure file&quot;;\n\/\/    }<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E9%98%B2%E6%AD%A2%E8%BF%9B%E5%85%A5recovery%E6%A8%A1%E5%BC%8F\"><\/span>\u9632\u6b62\u8fdb\u5165recovery\u6a21\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>1)<br \/>\n<code>system\/core\/init\/builtins.cpp<\/code>\u6ce8\u91ca\uff1a<\/p>\n<pre><code class=\"language-cpp\">static Result&lt;Success&gt; reboot_into_recovery(const std::vector&lt;std::string&gt;&amp; options) {\n    LOG(ERROR) &lt;&lt; &quot;Rebooting into recovery&quot;;\n\/\/    \/\/CZ\n\/\/    LOG(ERROR) &lt;&lt; &quot;CZLog give up write_bootloader_message&quot;;\n\/\/    return Success();\n\n    std::string err;\n\/\/    if (!write_bootloader_message(options, &amp;err)) {\n\/\/        return Error() &lt;&lt; &quot;Failed to set bootloader message: &quot; &lt;&lt; err;\n\/\/    }\n\/\/    property_set(&quot;sys.powerctl&quot;, &quot;reboot,recovery&quot;);\n    property_set(&quot;sys.powerctl&quot;, &quot;reboot&quot;);\n    return Success();\n}<\/code><\/pre>\n<p>2)<br \/>\n<code>system\/core\/init\/reboot.cpp<\/code>\u6ce8\u91ca\uff1a<\/p>\n<pre><code class=\"language-cpp\">    LOG(INFO) &lt;&lt; &quot;CZLog force refuse shutdown trigger&quot;;\n\n\/\/    ActionManager::GetInstance().ClearQueue();\n    \/\/ Queue shutdown trigger first\n\/\/    ActionManager::GetInstance().QueueEventTrigger(&quot;shutdown&quot;);\n    \/\/ Queue built-in shutdown_done\n    auto shutdown_handler = [cmd, command, reboot_target, run_fsck](const BuiltinArguments&amp;) {\n        DoReboot(cmd, command, reboot_target, run_fsck);\n        return Success();\n    };\n    ActionManager::GetInstance().QueueBuiltinAction(shutdown_handler, &quot;shutdown_done&quot;);\n\n\/\/    \/\/ Skip wait for prop if it is in progress\n\/\/    ResetWaitForProp();\n\/\/\n\/\/    \/\/ Clear EXEC flag if there is one pending\n\/\/    for (const auto&amp; s : ServiceList::GetInstance()) {\n\/\/        s-&gt;UnSetExec();\n\/\/    }\n    return false;<\/code><\/pre>\n<p>3)<code>system\/core\/init\/service.cpp<\/code>\u6ce8\u91ca<\/p>\n<pre><code class=\"language-cpp\">\/\/                    \/\/ Aborts into bootloader\n\/\/                    LOG(FATAL) &lt;&lt; &quot;critical process &#039;&quot; &lt;&lt; name_ &lt;&lt; &quot;&#039; exited 4 times &quot;\n\/\/                               &lt;&lt; (boot_completed ? &quot;in 4 minutes&quot; : &quot;before boot completed&quot;);\n\n                    \/\/ Aborts into bootloader\n                    LOG(ERROR) &lt;&lt; &quot;CZLog force refuse reboot,critical process &#039;&quot; &lt;&lt; name_ &lt;&lt; &quot;&#039; exited 4 times &quot;\n                               &lt;&lt; (boot_completed ? &quot;in 4 minutes&quot; : &quot;before boot completed&quot;);\n<\/code><\/pre>\n<p><code>system\/core\/init\/vold\/cryptfs.cpp<\/code>\u8fd4\u56de\uff1a<\/p>\n<pre><code class=\"language-cpp\">static void cryptfs_reboot(RebootType rt) {\n    SLOGI(&quot;CZLog cryptfs_reboot %d&quot;,rt);return;\n    switch (rt) {<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E7%99%BD%E5%90%8D%E5%8D%95%E6%96%B9%E6%B3%95\"><\/span>\u767d\u540d\u5355\u65b9\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<p><code>frameworks\/base\/core\/jni\/com_android_internal_os_Zygote.cpp<\/code>\u6ce8\u91ca<br \/>\n<code>\/\/    gOpenFdTable-&gt;ReopenOrDetach(fail_fn);<\/code><\/p>\n<\/li>\n<li>\n<p><code>frameworks\/base\/core\/jni\/fd_utils.cpp<\/code>\u6ce8\u91ca<\/p>\n<pre><code class=\"language-cpp\">if (!whitelist-&gt;IsAllowed(file_path)) {\n\/\/fail_fn(std::string(&quot;Not whitelisted : &quot;).append(file_path));\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<pre><code class=\"language-cpp\">  if (new_fd == -1) {\n      PLOG(ERROR) &lt;&lt; &quot;CZLog return ReopenOrDetach&quot; &lt;&lt; android::base::StringPrintf(&quot;Failed open(%s, %i): %s&quot;,\n                                                                           file_path.c_str(),\n                                                                           open_flags,\n                                                                           strerror(errno));\n      return;\n\/\/    fail_fn(android::base::StringPrintf(&quot;Failed open(%s, %i): %s&quot;,\n\/\/                                        file_path.c_str(),\n\/\/                                        open_flags,\n\/\/                                        strerror(errno)));\n  }<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E5%8E%BB%E9%99%A4label%E6%A0%A1%E9%AA%8C\"><\/span>\u53bb\u9664label\u6821\u9a8c<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>system\/core\/init\/service.cpp<\/code>\u6ce8\u91ca\uff1a<br \/>\n1)<\/p>\n<pre><code class=\"language-cpp\">\/\/    if (rc == 0 &amp;&amp; computed_context == mycon.get()) {\n\/\/        return Error() &lt;&lt; &quot;File &quot; &lt;&lt; service_path &lt;&lt; &quot;(labeled \\&quot;&quot; &lt;&lt; filecon.get()\n\/\/                       &lt;&lt; &quot;\\&quot;) has incorrect label or no domain transition from &quot; &lt;&lt; mycon.get()\n\/\/                       &lt;&lt; &quot; to another SELinux domain defined. Have you configured your &quot;\n\/\/                          &quot;service correctly? https:\/\/source.android.com\/security\/selinux\/&quot;\n\/\/                          &quot;device-policy#label_new_services_and_address_denials&quot;;\n\/\/    }\n\/\/    if (rc &lt; 0) {\n\/\/        return Error() &lt;&lt; &quot;Could not get process context&quot;;\n\/\/    }<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E7%A6%81%E6%AD%A2%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BDadb%E8%AE%BE%E5%A4%87\"><\/span>\u7981\u6b62\u81ea\u52a8\u6302\u8f7dadb\u8bbe\u5907<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>\/vendor\/etc\/init\/hw\/init.qcom.usb.rc<\/code><br \/>\n\u6ce8\u91caonboot\u4e8b\u4ef6\u91cc\u7684<code>#    mount functionfs adb \/dev\/usb-ffs\/adb uid=2000,gid=1000,rmode=0770,fmode=0660<\/code><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E7%A6%81%E6%AD%A2vendoretcfstabqcom%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BDdata%E5%88%86%E5%8C%BA\"><\/span>\u7981\u6b62vendor\/etc\/fstab.qcom\u81ea\u52a8\u6302\u8f7d\/data\u5206\u533a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>#\/dev\/block\/bootdevice\/by-name\/userdata                  \/data<\/code><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9B%AE%E5%BD%95%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95\"><\/span>\u6839\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u76ee\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\/dev\/cgroup_info\/<br \/>\n\u5e76\u9700\u8981\u628a\u5bbf\u4e3b\u673a\u7684cgroup.rc\u6587\u4ef6\u62f7\u8d1d\u8fc7\u6765<\/li>\n<li>\/mnt\/vendor\/metadata\/<\/li>\n<li>\/etc<\/li>\n<li>\/odm<\/li>\n<li>\/proc<\/li>\n<li>\/product<\/li>\n<\/ul>\n<h1><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81zygote%E9%80%82%E9%85%8D\"><\/span>\u4e09\u3001zygote\u9002\u914d<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAstorage%E7%9B%AE%E5%BD%95\"><\/span>\u521b\u5efa\/storage\u76ee\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h1><span class=\"ez-toc-section\" id=\"%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AE%E4%BF%AE%E6%94%B9\"><\/span>\u56db\u3001\u914d\u7f6e\u4fee\u6539<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"1%E7%B3%BB%E7%BB%9F%E5%B1%9E%E6%80%A7\"><\/span>1.\u7cfb\u7edf\u5c5e\u6027<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>ro.lxc.container.enable<br \/>\n\u5bf9\u4e8e\u4e91\u673a\u6b64\u5c5e\u6027\u8981\u8bbe\u7f6e\u4e3a0\u6216\u8005\u7a7a\uff0c\u6b64\u5c5e\u6027\u5173\u8054\u7684\u4e00\u4e9b\u8bbe\u7f6e\uff1a<br \/>\n1\uff09\u7f51\u5361\u89e3\u6790<br \/>\n\u89c1<code>frameworks\/opt\/net\/ethernet\/java\/com\/android\/server\/ethernet\/EthernetTracker.java<\/code>\u7c7b\uff0c\u901a\u8fc7ro.lxc.container.enable\u7684\u503c\u5728\u8bbe\u7f6e\u7f51\u5361\u540d\u79f0\u7684\u6b63\u5219\u3002<\/li>\n<\/ul>\n<button class=\"simplefavorite-button\" data-postid=\"14191\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55 \u4e00\u3001\u5185\u6838\u5c42\u4fee\u6539lxc\u542f\u52a8\u5f00\u542f\u5185\u6838\u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa\u589e\u52a0\/dev\/binder_pad\u9a71\u52a8\u4e8c\u3001\u7cfb\u7edf\u53ca\u7a0b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[791],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/14191"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14191"}],"version-history":[{"count":25,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/14191\/revisions"}],"predecessor-version":[{"id":14391,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/14191\/revisions\/14391"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14191"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}