清理 Windows Defender 快速扫描记录
C:\ProgramData\Microsoft\Windows Defender\Scans\History\Results
清理 Windows Defender 保护历史记录
C:\ProgramData\Microsoft\Windows Defender\Scans\History\Service\DetectionHistory
注:需要在PE下操作
清理 Windows Defender 快速扫描记录
C:\ProgramData\Microsoft\Windows Defender\Scans\History\Results
清理 Windows Defender 保护历史记录
C:\ProgramData\Microsoft\Windows Defender\Scans\History\Service\DetectionHistory
注:需要在PE下操作
转载自:使用Idea自带的反编译工具 [FernFlower]
终端直接输入命令
java -cp 参数1 org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true 参数2 参数3
参数说明:
完整命令示例:java -cp “E:\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar” org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true E:\exercise\reflect “E:\exercise\reflect\test”
——————–android8.0后的android_id生成——————–
由于在android8.0之后,应用的android_id 生成规则发生改变,不再和系统的android_id值一致,每个应用都在安装的时候拥有了自己的独特的android_id的值,并且有固定的生成规则
8.0后的android_id的生成规则也是在 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java中的generateSsaidLocked方法中
//省略源码
从以上的代码中可以看到主要的生成规则和影响由于主要的用户组都是0,其中影响android_id 的就是/data/system/users/0/settings_ssaid.xml中的userkey值(这个值只会在系统第一次启动时随机,并且之后不会改变),和应用本身的签名,生成新的android_id之后,会保存在/data/system/users/0/settings_ssaid.xml中
cd luckfox-pico ./build.sh buildrootconfig
在配置菜单中,找到并启用 squid:
Target packages -> Networking applications -> squid
创建 /etc/hostapd.conf 文件,内容如下:
interface=wlan0 driver=nl80211 ssid=MyHotspot hw_mode=g channel=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=MyPassword wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP
interface :指定无线网卡接口(通常是 wlan0)。
ssid :热点名称。
wpa_passphrase :热点密码。
hw_mode :无线模式(g 表示 2.4GHz,a 表示 5GHz)。
channel :信道号(推荐 1、6 或 11)。
hostapd -B /etc/hostapd.conf
创建 /etc/dnsmasq.conf 文件,内容如下:
interface=wlan0 dhcp-range=192.168.43.10,192.168.43.100,12h
interface :指定无线网卡接口。
dhcp-range :定义分配的 IP 地址范围和租约时间。
dnsmasq
ifconfig wlan0 192.168.43.1 netmask 255.255.255.0 up
1.NameError: name ‘SnmpEngine’ is not defined
pysnmp高版本的api路径有改动,from pysnmp.hlapi import * 无法引入需要的模块。解决方案,使用低版本pysnmp(4.4.12)
pip uninstall pysnmp pip install pysnmp==4.4.12
2.ModuleNotFoundError: No module named ‘pyasn1.compat.octets’
pyasn1版本过高导致的问题。解决方案,使用低版本(0.4.8)
pip uninstall pyasn1 pip install pyasn1==0.4.8
参考资料:
Cannot find getCmd in pysnmp.hlapi
SNMP Library for Python(7.1.15)
pysnmp : AttributeError: ‘module’ object has no attribute ‘NotificationOriginator’
解决snmp服务无法开机启动问题
新建 /etc/wsl.conf,文件内容如下:
[boot] systemd=true
一些常用的OID
系统描述:1.3.6.1.2.1.1.1.0
系统名称:1.3.6.1.2.1.1.5.0
系统运行时间: 1.3.6.1.2.1.1.3.0
CPU利用率: 1.3.6.1.4.1.2021.11.11.0
内存利用率: 1.3.6.1.4.1.2021.4.5.0
使用snmpget测试
snmpget -v 2c -c public localhost 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.5.0
在 win10 2021 LTSC 上安装配置 wsl2 和 ubuntu
解决python和bc命令无法使用问题
sudo apt install python-is-python3 bc
解决Path中存在空格问题
新建 /etc/wsl.conf,文件内容如下:
[interop] appendWindowsPath=false
很多小伙伴都会遇到公司的app需要通过外网访问公司的内网服务,这个时候后台同学就会配置一个代理服务器,app通过代理服务器访问公司内网。出于安全的考虑,还会对访问代理服务器的请求进行身份验证。
那么Android的WebView如何设置代理,之前查了下网上的资料,大多是通过反射进行设置,但是Google官方已经提供了方便的API供我们使用了。所以,下面就简单介绍下WebView的代理的设置。
Android WebView设置代理需要使用ProxyConfig相关类,身份验证需要在WebViewClient的onReceivedHttpAuthRequest里进行。
首先,我们在项目的build.gradle添加相关依赖。
implementation 'androidx.webkit:webkit:1.3.0'
设置代理具体代码如下:
private void init() { wv = findViewById(R.id.wv); WebSettings webSettings = wv.getSettings(); webSettings.setSupportZoom(true); webSettings.setJavaScriptEnabled(true); wv.setWebViewClient(new WebViewClient() { @Override public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm){ //身份验证(账号密码) handler.proceed("userName", "password"); } }); setProxy(); wv.loadUrl("http://www.uc123.com"); } private void setProxy() { if (WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)) { ProxyConfig proxyConfig = new ProxyConfig.Builder() .addProxyRule("111.123.321.121:1234") .addDirect().build(); ProxyController.getInstance().setProxyOverride(proxyConfig, new Executor() { @Override public void execute(Runnable command) { //do nothing } }, new Runnable() { @Override public void run() { Log.w(TAG, "WebView代理改变"); } }); } }
搜索源码定位到打印日志位置:SharedMetadata#151
借用AS 新版Logcat 过滤语法进行过滤即可,过滤语法如下
-tag:gralloc4
即排除掉tag为gralloc4的日志
说下应用场景,最近安卓要加载一些第三方网站进行用户的开放使用,这些第三方网站基本都是全英文的外国网站,于是产品需求希望能对网站进行中文翻译,类似pc浏览器的谷歌翻译网页
private void translateWeb() { String javaScript = "javascript:function appendScrip() {" + "var head= document.getElementsByTagName('head')[0]; var script= document.createElement('script'); script.src= 'https://res.zvo.cn/translate/translate.js'; head.appendChild(script);" + "}" + "appendScrip();"; bwvContent.evaluateJavascript(javaScript, new ValueCallback() { @Override public void onReceiveValue(String s) { MyLogUtils.e("javaScript.onReceiveValue:" + s); bwvContent.postDelayed(new Runnable() { @Override public void run() { if (bwvContent==null) { return; } String javaScript2 = "javascript:function startTranslate() {" + "translate.localLanguage='zh-CN';translate.selectLanguageTag.show = false;translate.executeByLocalLanguage();" + "}" + "startTranslate();"; bwvContent.evaluateJavascript(javaScript2, new ValueCallback() { @Override public void onReceiveValue(String s) { MyLogUtils.e("javaScript2.onReceiveValue:" + s); } }); } }, 500); } }); }
注意点
1.这里的bwvContent用的是腾讯的webview,在执行注入脚本的时候用的evaluateJavascript方法,原生webview如果没有的话用loadurl也可
2.第一段脚本注入和第二段脚本注入加了个500ms的延时操作,因为实测过程中,连续执行的情况下容易没能顺利进行翻译,所以加了个500ms加高成功率,可自行调试测试
3.该方法的注入,选择时机放在了onProgressChanged回调里,当加载进度progress==100时,进行延时1000ms后执行该方法做自动网页翻译,或者由用户手动点击翻译按钮的时候调用,时机的选择自行调试
使用的注入脚本的相关链接:网页多语言翻译 js v1.2,更新翻译接口 – OSCHINA – 中文开源技术交流社区