当前位置: 首页 > news >正文

域名备案查询站长之家网站数据库分离怎么做

域名备案查询站长之家,网站数据库分离怎么做,南京h5网站开发,如何将别人的网站作为自己的AOSP Settings WIFI随机MAC地址功能 背景 最近客户提出了想要实现随机WIFIMAC地址的功能#xff08;我们默认WIFI的MAC地址是固定的#xff09;。网上搜到了一篇不错的文章#xff0c;本次改动也是基于这个来写的。 由于客户指定使用的settings是AOSP的#xff0c;所以在…AOSP Settings WIFI随机MAC地址功能 背景 最近客户提出了想要实现随机WIFIMAC地址的功能我们默认WIFI的MAC地址是固定的。网上搜到了一篇不错的文章本次改动也是基于这个来写的。 由于客户指定使用的settings是AOSP的所以在AOSP Settings上改动。 看了一下其实Amlogic提供的settings在这部分的代码量少多了。更好修改。 Android11 Wifi Mac地址设置随机或者固定分析_android11 获取wifi mac-CSDN博客 一、配置文件属性决定全局开启/关闭WIFI随机MAC 如果是需要固定死开启/关闭WIFI随机MAC只需要改动下面这个文件就可以了。 frameworks/opt/net/wifi/service/res/values/config.xml //WiFi MAC 是否随机设置 !-- Indicates that connected MAC randomization is supported on this device -- bool translatablefalse nameconfig_wifi_connected_mac_randomization_supportedtrue/bool//AP 一般是投屏 MAC 是否随机设置 !-- Indicates that p2p MAC randomization is supported on this device -- bool translatablefalse nameconfig_wifi_p2p_mac_randomization_supportedfalse/bool//AP 一般是热点 MAC 是否随机设置 !-- Indicates that AP mode MAC randomization is supported on this device -- bool translatablefalse nameconfig_wifi_ap_mac_randomization_supportedtrue/bool不过这样做只能定死不能随用户心情改动。 这个文件一旦编译完成就不可以更改。 因此需要把这个判断逻辑改掉不用它判断。 二、修改判断逻辑为prop属性 由于我们要新增加一个prop属性所以写属性的读取属性的方法都要写。 frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java 这个函数是判断资源文件中是否随机WIFI MAC的位置 /*** Helper method to check if Connected MAC Randomization is supported - onDown events are* skipped if this feature is enabled (b/72459123).** return boolean true if Connected MAC randomization is supported, false otherwise*/ public boolean isConnectedMacRandomizationEnabled() {return mContext.getResources().getBoolean( R.bool.config_wifi_connected_mac_randomization_supported); }我们将其修改成判断prop属性 --- a/frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.javab/frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java-153,6 153,7 import java.util.List;import java.util.Set;import java.util.concurrent.atomic.AtomicBoolean;import java.util.concurrent.atomic.AtomicInteger; import android.os.SystemProperties; -210,6 211,7 public class ClientModeImpl extends StateMachine {protected void log(String s) {Log.d(getName(), s);}private static final String PROP_MAC_RANDOMIZATION persist.mac_randomization_enabled;private final WifiMetrics mWifiMetrics;private final WifiInjector mWifiInjector;private final WifiMonitor mWifiMonitor;-3334,8 3336,7 public class ClientModeImpl extends StateMachine {public boolean isConnectedMacRandomizationEnabled() { - return mContext.getResources().getBoolean( - R.bool.config_wifi_connected_mac_randomization_supported);return SystemProperties.getBoolean(PROP_MAC_RANDOMIZATION, false);}还有一个地方也涉及到随机WIFI MAC的判断 --- a/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConfigManager.javab/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConfigManager.java-75,6 75,7 import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set; import android.os.SystemProperties; -329,6 330,7 public class WifiConfigManager {private final NetworkListSharedStoreData mNetworkListSharedStoreData;private final NetworkListUserStoreData mNetworkListUserStoreData;private final RandomizedMacStoreData mRandomizedMacStoreData;private static final String PROP_MAC_RANDOMIZATION persist.mac_randomization_enabled; -645,10 647,10 public class WifiConfigManager {* Returns whether MAC randomization is supported on this device.* param config* return* modified by zhangt 2024.02.19*/private boolean isMacRandomizationSupported() { - return mContext.getResources().getBoolean( - R.bool.config_wifi_connected_mac_randomization_supported);return SystemProperties.getBoolean(PROP_MAC_RANDOMIZATION, false);}我是在同时修改上面两处内容后才成功的。 三、在WIFI 详细内容界面增加Switch开关用来开启关闭该功能 packages/apps/Settings/res/xml/wifi_network_details_fragment2.xml --- a/packages/apps/Settings/res/xml/wifi_network_details_fragment2.xmlb/packages/apps/Settings/res/xml/wifi_network_details_fragment2.xml-83,6 83,12 android:summarystring/wifi_subscription_summarysettings:allowDividerAbovetrue/ SwitchPreferenceandroid:keyrandom_mac_address_switchandroid:titlestring/random_mac_address_titleandroid:summarystring/random_mac_address_summaryandroid:defaultValuefalse /这里WIFI 详细内容界面的xml文件是上面这个。 然后我们要在这个界面的具体逻辑代码中进行实现。 --- a/packages/apps/Settings/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.javab/packages/apps/Settings/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java-55,6 55,10 import java.time.Clock;import java.time.ZoneOffset;import java.util.ArrayList;import java.util.List; import android.os.SystemProperties; import androidx.preference.SwitchPreference; import androidx.preference.Preference; import android.os.Bundle; -75,6 79,12 public class WifiNetworkDetailsFragment2 extends DashboardFragment implements// Interval between initiating SavedNetworkTracker scansprivate static final long SCAN_INTERVAL_MILLIS 10_000; private WifiManager wifiManager;private SwitchPreference randomMacAddressPreference;private static final String PROP_MAC_RANDOMIZATION persist.mac_randomization_enabled;VisibleForTestingNetworkDetailsTracker mNetworkDetailsTracker;private HandlerThread mWorkerThread; -134,6 145,25 public class WifiNetworkDetailsFragment2 extends DashboardFragment implementssuper.onCreateOptionsMenu(menu, inflater);} Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);wifiManager (WifiManager) requireContext().getSystemService(Context.WIFI_SERVICE);randomMacAddressPreference findPreference(random_mac_address_switch);if (randomMacAddressPreference ! null) {randomMacAddressPreference.setChecked(isMacRandomizationSupported());randomMacAddressPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {Overridepublic boolean onPreferenceChange(Preference preference, Object newValue) {boolean isWifiMacRandomEnabled (boolean) newValue;setRandomMacAddress(isWifiMacRandomEnabled);return true;}});}} Overridepublic boolean onOptionsItemSelected(MenuItem menuItem) {switch (menuItem.getItemId()) {-218,6 248,15 public class WifiNetworkDetailsFragment2 extends DashboardFragment implementsreturn mControllers;} private void setRandomMacAddress(boolean isWifiMacRandomEnabled) {SystemProperties.set(PROP_MAC_RANDOMIZATION, Boolean.toString(isWifiMacRandomEnabled));}private boolean isMacRandomizationSupported() {return SystemProperties.getBoolean(PROP_MAC_RANDOMIZATION, false);}在代码中搜索的时候我发现有WifiNetworkDetailsFragment2.java和WifiNetworkDetailsFragment.java两个差不多的文件根据验证我的是WifiNetworkDetailsFragment2.java。 这里我首先添加了setRandomMacAddress和isMacRandomizationSupported方法用来写入和读取prop属性。然后在onCreate方法中获取到我们新建的自动连接Switch按钮与属性相绑定。如果没有改属性则写入属性。最后在开关的事件监听中改变属性值 四、最终现象 默认的效果是WIFI MAC不随机。在点开我们新加的Switch前也是没有prop属性的。在打开开关后新连接的WIFI的MAC地址会随机掉。在关掉开关后所有的WIFI MAC地址会变成一样的。 注意如果你随机到新MAC之后关闭这个开关那么所有的WIFI MAC都会变成你新随机到的这个而不是出厂默认MAC
http://www.hkea.cn/news/14282437/

相关文章:

  • 如何去掉网站后缀wordpress国外有名的网站
  • 西安手机商城网站设计物流网站开发实训
  • 宿迁集团网站建设如何咨询网络服务商
  • 完成公司门户网站建设深圳优秀网站建设公司
  • 办公家具网站建设公司湖北华路建设工程有限公司网站
  • 简洁大气的企业网站wordpress出售电子书
  • 动态手机网站怎么做电子商务主要学什么就业工资
  • 做网站推广需要什么wordpress 和wiki
  • php网站说明广州木马网站建设公司怎么样
  • 建设网站公司管备案么工业设计专业怎么样
  • 游戏官网做的好的网站比分网站建设
  • 做二手货车网站公司工业设计师
  • 职业学校网站模板erp系统教学
  • 网站排名不稳定大宗商品交易平台政策
  • 北京做网站的公司有哪些嵌入式软件开发语言
  • 虫部落导航网站怎么做信息流投放平台
  • 网站开发英文怎么说深圳知名设计公司
  • 沈阳网络公司官网seo综合诊断工具
  • 扬中本地网站佛山模板建站哪家好
  • 手机网站安装app界面设计常用的布局具有哪些
  • 网站重新制作多久google重新收录重庆seo推广方案
  • 怎样做科普视频网站软件网站排行榜
  • p2p网站开发的流程绵阳做seo网站公司
  • 做网站常用代码网站备案需要关闭网站吗
  • 三亚北京网站建设外贸建站及推广
  • 广告网站设计公司 作用织梦网站怎么做模板
  • 国外做贸易网站深圳画册设计企业
  • 一对一做的好的网站dede网站首页
  • 电商网站如何设计内容深圳建网站的
  • 网站建设 知识产权免费建设网站的方法