{"id":356,"date":"2013-06-23T13:55:21","date_gmt":"2013-06-23T05:55:21","guid":{"rendered":"http:\/\/blog.dayandcarrot.net\/?p=356"},"modified":"2013-06-23T13:55:21","modified_gmt":"2013-06-23T05:55:21","slug":"htc-droid-dna-wifi-ap-problem","status":"publish","type":"post","link":"https:\/\/dayandcarrot.space\/?p=356","title":{"rendered":"HTC Droid DNA\u65e0\u6cd5\u5f00\u542fWifi \u70ed\u70b9\u7684\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848(\u4e0d\u5b58\u5728VZW UICC)"},"content":{"rendered":"<p style=\"text-align: left;\"><a title=\"HTC Wifi Ap Problem\" href=\"\u539f\u521b\u5185\u5bb9\uff0c\u8f6c\u8f7d\u8bf7\u52a1\u5fc5\u6ce8\u660e\u672c\u535a\u6587\u5730\u5740  http:\/\/blog.dayandcarrot.net\/2013\/06\/htc-droid-dna-wifi-ap-problem\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #ff0000;\"><strong>\u539f\u521b\u5185\u5bb9\uff0c\u8f6c\u8f7d\u8bf7\u52a1\u5fc5\u6ce8\u660e\u672c\u535a\u6587\u5730\u5740<\/strong><\/span><\/a><\/p>\n<p style=\"text-align: left;\"><a title=\"HTC Wifi Ap Problem\" href=\"\u539f\u521b\u5185\u5bb9\uff0c\u8f6c\u8f7d\u8bf7\u52a1\u5fc5\u6ce8\u660e\u672c\u535a\u6587\u5730\u5740  http:\/\/blog.dayandcarrot.net\/2013\/06\/htc-droid-dna-wifi-ap-problem\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #ff0000;\"><strong>http:\/\/blog.dayandcarrot.net\/2013\/06\/htc-droid-dna-wifi-ap-problem\/<\/strong><\/span><\/a><\/p>\n<p>\/system\/app\/WifiRounter.apk\u91cc\u9762\u627e\u5230\u4e86\u70b9\u7ebf\u7d22\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\u662f\u8d1f\u8d23WifiAP\u7684\uff0c\u4f46\u662f\u5b83\u4e0d\u638c\u6743\uff0c\u8fd8\u9700\u8981\u5411\u4e00\u4e2aWifiService\u53bbRequest\u5f00\u542fWiFiAP\uff0c\u5982\u679c\u4e0d\u884c\u5c31\u901a\u8fc7TetheringGuard.apk\u63d0\u793a\u51fa\u9519\uff0c\u7136\u540e\u5c31\u6709\u4e86\u9519\u8bef\u4fe1\u606f\uff0c\u4e0d\u5b58\u5728VZW\u00a0UICC\u4e4b\u7c7b\u7684\u3002<br \/>\n\u4e00\u5f00\u59cb\u6211\u4ee5\u4e3aWifiService\u662f\u638c\u6743\u7684\uff0c\u91cc\u9762\u6709\u4e2aCustomUtils\u5f88\u662f\u53ef\u7591\uff0c\u4f46\u662f\u4fee\u6539\u4e4b\u540e\u53d1\u73b0\u6ca1\u7528\u3002<br \/>\n\u4e4b\u540e\u6839\u636eLogcat\u627e\u54ea\u91cc\u51fa\u4e86\u95ee\u9898\uff0c\u53d1\u73b0\u6709\u9519\u8bef\u63d0\u793a\u8bf4\u4ec0\u4e48DENY\u4e4b\u7c7b\u7684\uff0c\u53d1\u51falog\u7684tag\u53ebWifiService\u3002\u60f3\u4e86\u4e00\u4e0b\u53ef\u80fd\u8fd9\u4e2a\u4e1c\u897f\u5728\/system\/framework\/services.jar\u91cc\u9762\uff0c\u89e3\u5305\u4e86\u4e00\u4e0b\u679c\u7136\u5982\u6b64\u3002<br \/>\n\u7136\u540e\u5c31\u662f\u4fee\u6539\u8fc7\u7a0b\u4e86\uff0c\u91cc\u9762\u6709\u4e2a\u65b9\u6cd5\u53eb<br \/>\n.method private setWifiApMhsRequest(ZZILandroid\/net\/wifi\/WifiConfiguration;)Z<br \/>\n\u7ffb\u8bd1\u6210Java\u4ee3\u7801\u5dee\u4e0d\u591a\u8fd9\u6837\uff08\u611f\u8c22Java Decompiler\uff09\uff1a<br \/>\n&nbsp;<\/p>\n<pre>private boolean setWifiApMhsRequest(boolean paramBoolean1, boolean paramBoolean2, int paramInt, WifiConfiguration paramWifiConfiguration)\n  {\n    Slog.e(\"WifiService\", \"setWifiApMhsRequest enter\");\n    boolean bool;\n    if (SystemProperties.get(\"net.frisbee.enabled\", \"0\").equals(\"1\"))\n    {\n      Slog.e(\"WifiService\", \"ignore MHS for Frisbee\");\n      setParameterMHS(paramBoolean1, paramBoolean2, paramInt, paramWifiConfiguration);\n      this.mWifiApMhsPermission = true;\n      this.mProcessingMHS = false;\n      checkWifiApRemindDialog();\n      bool = true;\n    }\n    while (true)\n    {\n      return bool;\n      if ((this.mProcessingMHS == true) &amp;&amp; (paramBoolean1 == true))\n      {\n        Slog.e(\"WifiService\", \"MHS is processing\");\n        bool = false;\n      }\n      else if ((this.mEnableMhsFeature) &amp;&amp; (!paramBoolean1))\n      {\n        this.mWifiApMhsPermission = false;\n        this.mProcessingMHS = false;\n        setWifiApEnabled(null, false);\n        bool = true;\n      }\n      else\n      {\n        setParameterMHS(paramBoolean1, paramBoolean2, paramInt, paramWifiConfiguration);\n        this.mCm = ((ConnectivityManager)this.mContext.getSystemService(\"connectivity\"));\n        this.mMhsStatus = this.mCm.htcRequestPermittedTether(-19, -1, null);\n        if (this.mMhsStatus == 0)\n        {\n          Slog.e(\"WifiService\", \"MHS HTC_PERMITTED_TETHER_ALLOW\");\n          this.mWifiApMhsPermission = true;\n          this.mProcessingMHS = false;\n          checkWifiApRemindDialog();\n        }\n        label236:\n        do\n          while (true)\n          {\n            bool = true;\n            break;\n            if (this.mMhsStatus != 1)\n              break label236;\n            Slog.e(\"WifiService\", \"MHS HTC_PERMITTED_TETHER_DENY\");\n            this.mWifiApMhsPermission = false;\n            this.mProcessingMHS = false;\n          }\n        while (this.mMhsStatus != 2);\n        Slog.e(\"WifiService\", \"MHS HTC_PERMITTED_TETHER_PROGRASSING\");\n        this.mWifiApMhsPermission = false;\n        bool = false;\n      }\n    }\n  }<\/pre>\n<p>\u7136\u540e\u91cc\u9762\u6709\u4e2a\u4e0d\u77e5\u9053\u4ec0\u4e48\u4e1c\u897f\u7684\u7279\u6743\u53c2\u6570\uff0c\u53eb\u505a<\/p>\n<pre>net.frisbee.enabled<\/pre>\n<p>\u5982\u679c\u8fd9\u4e2a\u7684\u503c\u662f1\u7684\u8bdd\uff0c\u90a3\u4e48\u5c31\u76f4\u63a5\u7ed9\u6743\u9650\uff0c\u663e\u7136\u6211\u4eec\u8981\u505a\u7684\u4efb\u52a1\u5f88\u7b80\u5355<br \/>\n\u628a\u90a3\u4e2a.equals(&#8220;1&#8221;)\u6539\u6210&#8221;0&#8243;\u5c31\u884c\u5566~<br \/>\n\u6539\u5b8c\u4e86\u4e4b\u540e\u5dee\u4e0d\u591a\u8fd9\u6837\uff1a<\/p>\n<pre>    .line 4506\n    const-string v0, \"net.frisbee.enabled\"\n    const-string v3, \"0\"\n    invoke-static {v0, v3}, Landroid\/os\/SystemProperties;-&gt;get(Ljava\/lang\/String;Ljava\/lang\/String;)Ljava\/lang\/String;\n    move-result-object v0\n    #const-string v3, \"1\"\n#MODIFIED\n    const-string v3, \"0\"\n    invoke-virtual {v0, v3}, Ljava\/lang\/String;-&gt;equals(Ljava\/lang\/Object;)Z\n    move-result v0\n    if-eqz v0, :cond_2d\n    .line 4507\n    const-string v0, \"WifiService\"\n    const-string v3, \"ignore MHS for Frisbee\"\n    invoke-static {v0, v3}, Landroid\/util\/Slog;-&gt;e(Ljava\/lang\/String;Ljava\/lang\/String;)I<\/pre>\n<p>\u56de\u7f16\u8bd1\u56de\u53bb\u5c31\u641e\u5b9a\u4e86~<br \/>\n\u521a\u597d2\u70b9\uff0c\u7ee7\u7eed\u590d\u4e60\u64cd\u4f5c\u7cfb\u7edf\u8f6f<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u521b\u5185\u5bb9\uff0c\u8f6c\u8f7d\u8bf7\u52a1\u5fc5\u6ce8\u660e\u672c\u535a\u6587\u5730\u5740 http:\/\/blog.dayandcarrot.net\/2013\/06\/htc-droid-dna-wifi-ap-problem\/ \/system\/app\/WifiRounter.apk\u91cc\u9762\u627e\u5230\u4e86\u70b9\u7ebf\u7d22\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\u662f\u8d1f\u8d23WifiAP\u7684\uff0c\u4f46\u662f\u5b83\u4e0d\u638c\u6743\uff0c\u8fd8\u9700\u8981\u5411\u4e00\u4e2aWifiService\u53bbRequest\u5f00\u542fWiFiAP\uff0c\u5982\u679c\u4e0d\u884c\u5c31\u901a\u8fc7TetheringGuard.apk\u63d0\u793a\u51fa\u9519\uff0c\u7136\u540e\u5c31\u6709\u4e86\u9519\u8bef\u4fe1\u606f\uff0c\u4e0d\u5b58\u5728VZW\u00a0UICC\u4e4b\u7c7b\u7684\u3002 \u4e00\u5f00\u59cb\u6211\u4ee5\u4e3aWifiService\u662f\u638c\u6743\u7684\uff0c\u91cc\u9762\u6709\u4e2aCustomUtils\u5f88\u662f\u53ef\u7591\uff0c\u4f46\u662f\u4fee\u6539\u4e4b\u540e\u53d1\u73b0\u6ca1\u7528\u3002 \u4e4b\u540e\u6839\u636eLogcat\u627e\u54ea\u91cc\u51fa\u4e86\u95ee\u9898\uff0c\u53d1\u73b0\u6709\u9519\u8bef\u63d0\u793a\u8bf4\u4ec0\u4e48DENY\u4e4b\u7c7b\u7684\uff0c\u53d1\u51falog\u7684tag\u53ebWifiService\u3002\u60f3\u4e86\u4e00\u4e0b\u53ef\u80fd\u8fd9\u4e2a\u4e1c\u897f\u5728\/system\/framework\/services.jar\u91cc\u9762\uff0c\u89e3\u5305\u4e86\u4e00\u4e0b\u679c\u7136\u5982\u6b64\u3002 \u7136\u540e\u5c31\u662f\u4fee\u6539\u8fc7\u7a0b\u4e86\uff0c\u91cc\u9762\u6709\u4e2a\u65b9\u6cd5\u53eb .method private setWifiApMhsRequest(ZZILandroid\/net\/wifi\/WifiConfiguration;)Z \u7ffb\u8bd1\u6210Java\u4ee3\u7801\u5dee\u4e0d\u591a\u8fd9\u6837\uff08\u611f\u8c22Java Decompiler\uff09\uff1a &nbsp; private boolean setWifiApMhsRequest(boolean paramBoolean1, boolean paramBoolean2, int paramInt, WifiConfiguration paramWifiConfiguration) { Slog.e(&#8220;WifiService&#8221;, &#8220;setWifiApMhsRequest enter&#8221;); boolean bool; if (SystemProperties.get(&#8220;net.frisbee.enabled&#8221;, &#8220;0&#8221;).equals(&#8220;1&#8221;)) { Slog.e(&#8220;WifiService&#8221;, &#8220;ignore MHS for Frisbee&#8221;); setParameterMHS(paramBoolean1, paramBoolean2, paramInt, paramWifiConfiguration); this.mWifiApMhsPermission = true; this.mProcessingMHS = false; checkWifiApRemindDialog(); bool = true; } while (true) { [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[145],"class_list":["post-356","post","type-post","status-publish","format-standard","hentry","category-mobilelife","tag-firmware"],"_links":{"self":[{"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=\/wp\/v2\/posts\/356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=356"}],"version-history":[{"count":0,"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=\/wp\/v2\/posts\/356\/revisions"}],"wp:attachment":[{"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dayandcarrot.space\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}