<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HyperOS on Izumi Notebook</title><link>https://izumi.pub/en/tags/HyperOS/</link><description>Recent content in HyperOS on Izumi Notebook</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>izumi</copyright><lastBuildDate>Sat, 29 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://izumi.pub/en/tags/HyperOS/index.xml" rel="self" type="application/rss+xml"/><item><title>Chrome Crashes When Accessing the Local Network After Upgrading Xiaomi 17 Pro to HyperOS 4.0</title><link>https://izumi.pub/en/Android/xiaomi-17-pro-hyperos-4-chrome-local-network-crash/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://izumi.pub/en/Android/xiaomi-17-pro-hyperos-4-chrome-local-network-crash/</guid><description>&lt;h2 id="symptoms"&gt;Symptoms
&lt;/h2&gt;&lt;p&gt;After upgrading my Xiaomi 17 Pro to HyperOS 4.0 / Android 17, Chrome started crashing whenever it opened local network addresses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opening the router admin page at &lt;code&gt;http://192.168.10.1/&lt;/code&gt; made Chrome exit immediately.&lt;/li&gt;
&lt;li&gt;Other local IP addresses and local domains caused the same crash.&lt;/li&gt;
&lt;li&gt;MT Manager timed out when connecting to NAS SMB.&lt;/li&gt;
&lt;li&gt;Public internet access on the same phone still worked.&lt;/li&gt;
&lt;li&gt;Other devices on the same LAN could access the router and NAS normally.&lt;/li&gt;
&lt;li&gt;Xiaomi Browser could open the same local addresses without any issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Device and system version at the time:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Device: Xiaomi 17 Pro
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Model: 25098PN5AC
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;System: HyperOS 4.0 / Android 17
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Build: OS4.0.0.27.XBLCNXM
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;At first glance this looks like a network issue, but the key difference is that Xiaomi Browser worked while Chrome and MT Manager did not. That points more toward an app permission problem than a broken LAN.&lt;/p&gt;
&lt;h2 id="fix"&gt;Fix
&lt;/h2&gt;&lt;p&gt;Use ADB to check the local network AppOps state for Chrome, MT Manager, and Xiaomi Browser:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell &lt;span class="s1"&gt;&amp;#39;cmd appops get --user 0 com.android.chrome ACCESS_LOCAL_NETWORK&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell &lt;span class="s1"&gt;&amp;#39;cmd appops get --user 0 bin.mt.plus ACCESS_LOCAL_NETWORK&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell &lt;span class="s1"&gt;&amp;#39;cmd appops get --user 0 com.android.browser ACCESS_LOCAL_NETWORK&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The abnormal state looked like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Chrome:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Uid mode: ACCESS_LOCAL_NETWORK: ignore
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ACCESS_LOCAL_NETWORK: allow; rejectTime=...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MT Manager:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Uid mode: ACCESS_LOCAL_NETWORK: ignore
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ACCESS_LOCAL_NETWORK: allow; rejectTime=...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Xiaomi Browser:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ACCESS_LOCAL_NETWORK: allow; time=...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Chrome and MT Manager had package-level &lt;code&gt;allow&lt;/code&gt;, but their UID-level AppOps state was still &lt;code&gt;ignore&lt;/code&gt;. In this state, the system settings UI may appear to show the permission as allowed, while the app is still blocked from accessing the local network.&lt;/p&gt;
&lt;p&gt;Set the affected apps&amp;rsquo; UID-level local network AppOps back to &lt;code&gt;allow&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell cmd appops &lt;span class="nb"&gt;set&lt;/span&gt; --uid com.android.chrome ACCESS_LOCAL_NETWORK allow
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell cmd appops &lt;span class="nb"&gt;set&lt;/span&gt; --uid bin.mt.plus ACCESS_LOCAL_NETWORK allow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you use wireless debugging, pair the phone first:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb pair &amp;lt;phone-ip&amp;gt;:&amp;lt;pair-port&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb devices -l
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After the fix, Chrome could open &lt;code&gt;http://192.168.10.1/&lt;/code&gt; normally again, and MT Manager could access NAS SMB as expected.&lt;/p&gt;
&lt;h2 id="cause"&gt;Cause
&lt;/h2&gt;&lt;p&gt;Starting with Android 17, local network protection is enforced for apps targeting SDK 37 or higher. Access to LAN addresses, mDNS, SSDP, &lt;code&gt;NsdManager&lt;/code&gt;, and other local network capabilities is affected by &lt;code&gt;ACCESS_LOCAL_NETWORK&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The core issue here was not that Chrome had no permission at all. The permission state was split:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Package-level AppOps: &lt;code&gt;ACCESS_LOCAL_NETWORK = allow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;UID-level AppOps: &lt;code&gt;ACCESS_LOCAL_NETWORK = ignore&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After the system upgrade, some apps&amp;rsquo; UID-level AppOps state did not migrate correctly. This created a situation where the settings UI could look correct, but actual local network access was still blocked.&lt;/p&gt;
&lt;p&gt;Xiaomi Browser did not have the UID-level &lt;code&gt;ignore&lt;/code&gt; state, so it could access the same local addresses normally. Chrome and MT Manager were blocked by UID-level AppOps, showing up as a crash in Chrome and an SMB timeout in MT Manager.&lt;/p&gt;
&lt;p&gt;The Chrome crash was not a normal DNS failure or TCP timeout. The crash log showed Chrome failing in its own &lt;code&gt;NetworkService&lt;/code&gt; thread and &lt;code&gt;libchrome.so&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;name: NetworkService &amp;gt;&amp;gt;&amp;gt; com.android.chrome &amp;lt;&amp;lt;&amp;lt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;backtrace:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /data/app/.../com.android.chrome.../base.apk!libchrome.so
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In short, the abnormal system permission state triggered a Chrome network service crash.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Only run &lt;code&gt;ACCESS_LOCAL_NETWORK allow&lt;/code&gt; for apps that actually need local network access.&lt;/li&gt;
&lt;li&gt;If another app has the same problem, replace the package name and repeat the check and fix.&lt;/li&gt;
&lt;li&gt;You can find package names with &lt;code&gt;adb shell pm list packages | grep -i &amp;lt;keyword&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Future system or app updates may change AppOps state again. If the issue comes back, recheck the UID-level permission.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://developer.android.com/privacy-and-security/local-network-permission" target="_blank" rel="noopener"
&gt;Android Developers: Local network permission&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://developer.chrome.com/blog/local-network-access" target="_blank" rel="noopener"
&gt;Chrome for Developers: New permission prompt for Local Network Access&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>