oneplus6-编译-LineageOS-19.1-android12

lineage-19.1/oneplus6-build.md

修复内核崩溃

经过此两修改后, 编译出的OTA包 刷入手机,

手机重启正常越过logo 进入android, 但卡在LineageOS-19的弧形进度界面,

没有此两修改时, 根本进不到android, 只到开机logo就黑屏 亮呼吸灯 , 串口处于900E(高通ramdump模式),

因此此两修改有用,但问题还没完毕

1. 根据lineageOS-19.1官方OTA包和我ota包的vendor内容对比,补充缺少的文件

修改记录:TheMuppets-v/proprietary_vendor_oneplus.git/718403

参考 ota-compare-my-to-official/file_ls_not_in_my_otaZip.txt

对 TheMuppets/proprietary_vendor_oneplus.git : vendor/oneplus/sdm845-common/sdm845-common-vendor.mk 的 PRODUCT_COPY_FILES 新增以下行:

PRODUCT_COPY_FILES += \
#...
#新增以下行:vendor/oneplus/sdm845-common//proprietary/product/priv-app/HotwordEnrollmentOKGoogleWCD9340_SDM845/HotwordEnrollmentOKGoogleWCD9340_SDM845.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/product/priv-app/HotwordEnrollmentOKGoogleWCD9340_SDM845/HotwordEnrollmentOKGoogleWCD9340_SDM845.apk \vendor/oneplus/sdm845-common//proprietary/product/priv-app/HotwordEnrollmentXGoogleWCD9340_SDM845/HotwordEnrollmentXGoogleWCD9340_SDM845.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/product/priv-app/HotwordEnrollmentXGoogleWCD9340_SDM845/HotwordEnrollmentXGoogleWCD9340_SDM845.apk \vendor/oneplus/sdm845-common//proprietary/system/frameworkc/qcnvitems.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system/frameworkc/qcnvitems.jar \vendor/oneplus/sdm845-common//proprietary/system/framework/tcmclient.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system/framework/tcmclient.jar \vendor/oneplus/sdm845-common//proprietary/system/framework/WfdCommon.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system/framework/WfdCommon.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/app/NxpNfcNci/NxpNfcNci.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/app/NxpNfcNci/NxpNfcNci.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/app/QtiTelephonyService/QtiTelephonyService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/app/QtiTelephonyService/QtiTelephonyService.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/app/SoterService/SoterService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/app/SoterService/SoterService.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/com.nxp.nfc.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/com.nxp.nfc.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/com.qti.dpmframework.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/com.qti.dpmframework.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/dpmapi.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/dpmapi.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/qcrilhook.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/qcrilhook.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/framework/vendor.qti.hardware.alarm-V1.0-java.jar:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/framework/vendor.qti.hardware.alarm-V1.0-java.jar \vendor/oneplus/sdm845-common//proprietary/system_ext/priv-app/IFAAService/IFAAService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/priv-app/IFAAService/IFAAService.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/priv-app/ims/ims.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/priv-app/ims/ims.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk \vendor/oneplus/sdm845-common//proprietary/system_ext/priv-app/WfdService/WfdService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/system_ext/priv-app/WfdService/WfdService.apk \vendor/oneplus/sdm845-common//proprietary/vendor/app/CneApp/CneApp.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/app/CneApp/CneApp.apk \vendor/oneplus/sdm845-common//proprietary/vendor/app/IWlanService/IWlanService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/app/IWlanService/IWlanService.apk \vendor/oneplus/sdm845-common//proprietary/vendor/app/TimeService/TimeService.apk:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/app/TimeService/TimeService.apk \vendor/oneplus/sdm845-common//proprietary/vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml \vendor/oneplus/sdm845-common//proprietary/vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti.xml:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti.xml \vendor/oneplus/sdm845-common//proprietary/vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml \vendor/oneplus/sdm845-common//proprietary/vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml \vendor/oneplus/sdm845-common//proprietary/vendor/lib/libfastcvopt.so:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/lib/libfastcvopt.so \vendor/oneplus/sdm845-common//proprietary/vendor/lib/libthermalclient.so:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/lib/libthermalclient.so \vendor/oneplus/sdm845-common//proprietary/vendor/lib64/libfastcvopt.so:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/lib64/libfastcvopt.so \vendor/oneplus/sdm845-common//proprietary/vendor/lib64/libthermalclient.so:$(TARGET_COPY_OUT_VENDOR)/proprietary/vendor/lib64/libthermalclient.so
2. 解决编译错误Prebuilt apk found in PRODUCT_COPY_FILES BUILD_PREBUILT instead

修改记录:LineageOS-v/android_build.git/83a47c

mka showcommands bacon 时报错 Prebuilt apk found in PRODUCT_COPY_FILES BUILD_PREBUILT instead 解决

LineageOS/android_build.git : build/make/core/Makefile
函数check-product-copy-files 中 : $(error 改为 $(waring

define check-product-copy-files
$(if $(filter-out $(TARGET_COPY_OUT_SYSTEM_OTHER)/%,$(2)), \
-  $(if $(filter %.apk, $(2)),$(error \
+  $(if $(filter %.apk, $(2)),$(waring \Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))) \

参考1: https://blog.csdn.net/qq_44844314/article/details/130132581

参考2: https://blog.csdn.net/kc58236582/article/details/53364239

(不奏效,待排查)记录android崩溃日志,增加logcat命令脚本作为服务

修改点
  • LineageOS/android_system_core.git : /app4/lineage19_oneplus6/system/core
/app4/lineage19_oneplus6/system/core/libcutils/fs_config.cpp
/app4/lineage19_oneplus6/system/core/rootdir/init.rc
  • TheMuppets/proprietary_vendor_oneplus.git /sdm845-common: /app4/lineage19_oneplus6/vendor/oneplus/sdm845-common
/app4/lineage19_oneplus6/vendor/oneplus/sdm845-common/sdm845-common-vendor.mk
/app4/lineage19_oneplus6/vendor/oneplus/sdm845-common/myLogScript.sh

参考1: 新增android日志服务: https://blog.csdn.net/xuanyulevel6/article/details/140018074

android12启动卡死在android门口(Lineage弧形图标) 修改x.cr排查死在哪

现状: oneplus6手机刷入我编译的LineageOS19.1(android12) ,内核正常启动, 卡死在android门口(Lineage弧形图标)

排查方案: 修改x.rc排查死在哪

步骤1.利用twrp的adb shell修改x.rc

grep yyy /system_root/system/etc/init/hw/init.rc

    write /system/yyy02-on-init 1write /system/yyy04-on-early-fs 1write /mnt/user/0/yyy03-on-post-fs 1write /system/yyy05-on-post-fs 1write /system/bin/yyy06-on-late-fs 1write /system/bin/yyy07-on-post-fs-data 1write /data/yyy08-on-post-fs-data 1write /data/system/yyy09-on-post-fs-data 1write /data/yyy10-on-post-fs-data 1mkdir /data/apex/yyy11-mkdir-on-post-fs-datamkdir /data/yyy12-mkdir-on-post-fs-datamkdir /data/yyy13-on-post-fs-datawrite /data/yyy16-on-boot 1write /system/yyy17-on-boot 1write /system/yyy15-on-charger 1
步骤2. 正常启动手机 引发LineageOS19.1卡死在弧形图标
步骤3. 进twrp观看x.rc修改点执行效果

fastboot boot twrp-3.7.0_11-0-enchilada.img | twrp-3.5.2_9-0-enchilada.img

(twrp启动后可能要等一会儿才能连的上adb shell)

twrp界面操作: Mount --> data 、 system

adb shell :

mount | grep system

/dev/block/sda13 on /system_root type ext4 (ro,seclabel,relatime)
/dev/block/sda13 on /system type ext4 (ro,seclabel,relatime)

(被执行到的修改点)find / -name yyy* 2>/dev/null

/data/yyy13-on-post-fs-data
/data/yyy16-on-boot
/data/yyy12-mkdir-on-post-fs-data
/data/yyy10-on-post-fs-data
/data/apex/yyy11-mkdir-on-post-fs-data
/data/yyy08-on-post-fs-data

对比 x.rc ,发现有不少修改点没有被执行到

oneplus6-build

#解决 repo sync 时 可能的报错
sudo apt install -y git-lfs
#git-lfs filter-process --skip: 1: git-lfs: not found
#fatal: 远端意外挂断了
#error.GitError: Cannot checkout LineageOS/android_external_chromium-webview_prebuilt_arm: Cannot initialize work tree for LineageOS/android_external_chromium-webview_prebuilt_arm
#error: Cannot checkout LineageOS/android_external_chromium-webview_prebuilt_armcurl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /app/bin/repo
chmod a+x /app/bin/repoexport PATH_BASE=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/app/bin/
export PATH=$PATH_BASED=/app4/lineage19_oneplus6
mkdir -p $D && cd $DGitBranch=lineage-19.1
DevName=enchilada #oneplus6==enchilada
Github=githubfast#oneplus6 第三方厂商驱动(vendor) 、 linux4.9内核
#https://github.com/TheMuppets/proprietary_vendor_oneplus.git /enchilada     : vendor/oneplus/enchilada
#https://github.com/LineageOS/android_device_oneplus_enchilada.git           : device/oneplus/enchilada
#https://github.com/LineageOS/android_device_oneplus_sdm845-common.git       : device/oneplus/sdm845-common
#https://github.com/LineageOS/android_kernel_oneplus_sdm845.git              : kernel/oneplus/sdm845
#https://github.com/LineageOS/android_hardware_oneplus.git                   : hardware/oneplus
#命名样式? github.com/LineageOS/android_x_y_z.git                             : x/y/z
grep devicesettings android/snippets/lineage.xml  # snippets/lineage.xml 中 已经定义  android_packages_resources_devicesettings ,不再需要 单独clone
#  <project path="packages/resources/devicesettings" name="LineageOS/android_packages_resources_devicesettings" />proprietary_vendor_oneplus=$D/TheMuppets----proprietary_vendor_oneplus
git clone --depth=30 https://$Github.com/TheMuppets/proprietary_vendor_oneplus.git --branch $GitBranch $proprietary_vendor_oneplus
#大仓库,只克隆 该分支lineage-19.1 为起点的 1个提交
mkdir -p $D/vendor/oneplus
ln -s $proprietary_vendor_oneplus/$DevName  $D/vendor/oneplus/$DevName
ln -s $proprietary_vendor_oneplus/sdm845-common $D/vendor/oneplus/sdm845-commongit clone --branch $GitBranch  https://$Github.com/LineageOS/android_device_oneplus_enchilada.git  $D/device/oneplus/$DevName
git clone --branch $GitBranch  https://$Github.com/LineageOS/android_device_oneplus_sdm845-common.git       $D/device/oneplus/sdm845-common
#$D/device/oneplus/?sdm845-common?common?
git clone --branch $GitBranch  https://$Github.com/LineageOS/android_kernel_oneplus_sdm845.git   $D/kernel/oneplus/sdm845#https://github.com/LineageOS/android_hardware_oneplus.git  最低版本为 lineage-18.1
git clone --branch $GitBranch  https://github.com/LineageOS/android_hardware_oneplus.git  $D/hardware/oneplus#手工将以上5个仓库 x/.git/config 中 '[remote "origin"]'/url 中的 githubfast 改回 github#参照 "报错解决记录/0.找不到`webview.apk`" 解决该报错#初始化仓库群. 
REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' repo init   --manifest-url https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git --manifest-branch $GitBranch
grep tsing  $D/.repo/repo/.git/config  #REPO_URL变量只对repo命令起作用
#	url = https://mirrors.tuna.tsinghua.edu.cn/git/git-repo#$D/repo/manifests/default.xml
#<remote  name="aosp" fetch="https://android.googlesource.com"  fetch替换为 "https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"
_xmlP="$D/.repo/manifests/default.xml"
_xmlS1='fetch="https://android.googlesource.com"'
_xmlS2='fetch="https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"'
grep -Hn "$_xmlS1" $_xmlP
( p="$_xmlP"  \
s1="$_xmlS1"   \
s2="$_xmlS2" \
python3 -c 'import os,pathlib; d=os.environ; p=d["p"]; s1=d["s1"]; s2=d["s2"];  f=pathlib.Path(p); f.write_text(f.read_text().replace(s1,s2))' ;)
grep -Hn "$_xmlS2" $_xmlP
#/app4/lineage19_oneplus6/.repo/manifests/default.xml:12:           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"repo sync --current-branch --no-tags --prune#编译步骤正文开始
source build/envsetup.sh#export V=1
export LC_ALL=C
export ALLOW_MISSING_DEPENDENCIES=true
lunch lineage_$DevName-userdebug && mka showcommands bacon  # lineage_enchilada-userdebug | lineage_enchilada-eng
#编译步骤正文结束

备注1 : mka bacon 的排错形式是 m V=1 -j 1 bacon

oneplus6-OTA-flash

oneplus6-OTA线刷包 刷机

ls -lh $D/out/target/product/enchilada/lineage-19.1-20241105-UNOFFICIAL-enchilada.zip
#-rwxrwxrwx   767M   /app4/lineage19_oneplus6/out/target/product/enchilada/lineage-19.1-20241105-UNOFFICIAL-enchilada.zipadb reboot bootloader
fastboot boot twrp-3.5.2_9-0-enchilada.img
adb sideload /app4/lineage19_oneplus6/out/target/product/enchilada/lineage-19.1-20241105-UNOFFICIAL-enchilada.zip

重启, 走过logo、没进android、呼吸灯常亮并崩溃

且 强制关机再开机 并进按音量加(音量减?) 进入fastboot 执行 fastboot boot twrp-3.5.2_9-0-enchilada.img 也一样 走过logo、没进android、呼吸灯常亮并崩溃

报错解决记录

0.找不到webview.apk
报错
m V=1 -j 1 bacon
#报错如下: 
#... cp external/chromium-webview/prebuilt/arm64/webview.apk out/target/product/enchilada/obj/APPS/webview_intermediates/package.apk  ...
# FAILED: out/target/product/enchilada/obj/APPS/webview_intermediates/package.apk
# zip2zip.go:82: zip: not a valid zip file
解决
#理论上应该 git clone --branch android12L  https://android.googlesource.com/platform/external/chromium-webview  , 但是由于该仓库巨大34GB且科学上网太慢, 所以只clone以下小仓库 且 不管分支
git clone https://github.com/LineageOS/android_external_chromium-webview.git  /tmp/
# https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android_external_chromium-webview
#/tmp/android_external_chromium-webview/.git/config
webview_arm64_F=/tmp/android_external_chromium-webview/prebuilt/arm64/webview.apk  # ls -lh  $webview_arm64_F #91MB
md5sum $webview_arm64_F
# 717afb18c5a27c4d610f3edfb767689f  prebuilt/arm64/webview.apk
cp $webview_arm64_F  $D/external/chromium-webview/prebuilt/arm64/webview.apk
1. LineageOS-19.1(android12)中 不要手工cloneandroid_packages_resources_devicesettings.git, 否则导致报错 ‘git: unsupported checkout state’

LineageOS-19.1(android12)中 估计已经在 manifest.xml(即android/default.xml) 中描述了 android_packages_resources_devicesettings.git, 因此 若手工clone该仓库,反而会报错

报错
git clone --branch $GitBranch  https://$Github.com/LineageOS/android_packages_resources_devicesettings.git   $D/packages/resources/devicesettingsrepo sync --current-branch --no-tags --prune
#error.GitError: Cannot checkout LineageOS/android_packages_resources_devicesettings: /app4/lineage19_oneplus6/packages/resources/devicesettings/.#git: unsupported checkout state
#error: Cannot checkout LineageOS/android_packages_resources_devicesettings
解决
rm -fr $D/packages/resources/devicesettings cd $D
repo sync LineageOS/android_packages_resources_devicesettings   --force-sync
2. android_device_oneplus_enchilada : device/oneplus/enchilada/.git: unsupported checkout state
报错
lunch lineage_$DevName-userdebug
# error.GitError: Cannot checkout LineageOS/android_device_oneplus_enchilada: /app4/lineage19_oneplus6/device/oneplus/enchilada/.git: unsupported checkout state
# error: Cannot checkout LineageOS/android_device_oneplus_enchilada
# error: Unable to fully sync the tree
# error: Checking out local projects failed.
# Failing repos:
# device/oneplus/enchilada
解决
repo sync --current-branch  LineageOS/android_device_oneplus_enchilada   --force-sync
3. ‘repo init --depth=x’ 导致 ‘mka bacon’ 报错’android_common does not provide a dex boot jar’
报错
repo init --depth=x # '--depth=x'  会导致 'mka bacon' 报错如下
# error: frameworks/base/boot/Android.bp:44:1: module "platform-bootclasspath" variant "android_common" does not provide a dex boot jar
解决

去掉repo init --depth=x 中的--depth=x

4. ‘mka bacon’ 报错 ‘namespace hardware/oneplus does not exist’
报错
m V=1  -j 1  bacon
# error: device/oneplus/sdm845-common/Android.bp:1:1: module "soong_namespace": namespace hardware/oneplus does not exist
解决

猜测 hardware/oneplus 应该是 对应 组织github.com/LineageOS下仓库形如*hardware_oneplus*,

搜索github.com/LineageOS/hardware_oneplus 得到 LineageOS/android_hardware_oneplus.git

从而解决办法为

git clone --branch lineage-19.1  https://github.com/LineageOS/android_hardware_oneplus.git  $D/hardware/oneplus
5. module “platform-bootclasspath” variant “android_common”: module WfdCommon does not provide a dex boot jar

WfdCommon==Wi-Fi Display Common

报错
m -j 1 bacon #报错
#module "platform-bootclasspath" variant "android_common": module WfdCommon does not provide a dex boot jar
排查过程
find $D -type f -size -1024k -not  -path  "*/.repo/*"    | xargs -I@ bash -c " grep -Hn 'does not provide a dex boot jar' '@'  && echo '@' "
#/app4/lineage19_oneplus6/build/soong/java/dexpreopt_bootjars.go:492:			ctx.ModuleErrorf("module %s does not provide a dex boot jar", name)

google搜索WfdCommon 得到 4、出现错误:"internal error: failed to find dex jar path for module "WfdCommon" 仿照其修改如下


grep -Hn -A 1 -B 1 WfdCommon $D/device/oneplus/sdm845-common/*.mk
#/app4/lineage19_oneplus6/device/oneplus/sdm845-common/common.mk:463:  PRODUCT_BOOT_JARS += \
#                                                               :464:      WfdCommon
解决

删除 /app4/lineage19_oneplus6/device/oneplus/sdm845-common/common.mk 中的 PRODUCT_BOOT_JARS += WfdCommon

6. multiple definition of `yylloc’
报错
m V=1 -j 1 bacon #'mka bacon' 的排错形式
# /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
解决
echo 'HOSTCFLAGS += -fcommon' >> $D/kernel/oneplus/sdm845/Makefile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超好用shell脚本NuShell mac安装

利用管道控制任意系统 Nu 可以在 Linux、macOS 和 Windows 上运行。一次学习&#xff0c;处处可用。 一切皆数据 Nu 管道使用结构化数据&#xff0c;你可以用同样的方式安全地选择&#xff0c;过滤和排序。停止解析字符串&#xff0c;开始解决问题。 强大的插件系统 具备强…

【Window主机访问Ubuntu从机——Xrdp配置与使用】

使用Xrdp在Window环境下远程桌面访问Ubuntu主机 文章目录 Ubuntu安装图形化界面Ubuntu安装Xrdp通过网线连接两台主机Window主机有线连接配置Ubuntu从机设置测试有线连接 Window主机打开远程桌面功能参考文章总结 Ubuntu安装图形化界面 sudo apt update sudo apt upgrade sudo …

ECharts图表图例8

用eclipse软件制作动态单仪表图 用java知识点 代码截图&#xff1a;

实验6记录网络与故障排除

实验6记录网络与故障排除 实验目的及要求&#xff1a; 通过实验&#xff0c;掌握如何利用文档记录网络设备相关信息并完成网络拓扑结构的绘制。能够使用各种技术和工具来找出连通性问题&#xff0c;使用文档来指导故障排除工作&#xff0c;确定具体的网络问题&#xff0c;实施…

读取文件内容、修改文件内容、识别文件夹目录(Web操作系统文件/文件夹详解)

前言 因 Unicode IDE 编辑器导入文件、文件夹需要&#xff0c;研究了下导入文件/文件夹的功能实现&#xff0c;发现目前相关文章有点少&#xff0c;故而记录下过程&#xff0c;如果有误&#xff0c;还望指正。(API的兼容性及相关属性、接口定义&#xff0c;请自行查看文件系统 …

【卡尔曼滤波】数据融合Fusion的应用 C语言、Python实现(Kalman Filter)

【卡尔曼滤波】数据融合Fusion的应用 C语言、Python实现&#xff08;Kalman Filter&#xff09; 更新以gitee为准&#xff1a; gitee地址 文章目录 卡尔曼滤波数据融合Python实现C语言实现多个数据如何融合附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Pac…

docker-hub 无法访问,使用windows魔法拉取docker images再上传到linux docker环境中

云机的服务器是可以docker拉取镜像的&#xff0c;但是本地的虚拟机、物理服务器等网络环境不好的情况&#xff0c;是无法访问docker-hub的&#xff0c;即使更换了docker镜像源国内源也无法使用。 本文章使用 在魔法网络环境下的windows&#xff0c;下载docker images后&#xf…

Python →爬虫实践

爬取研究中心的书目 现在&#xff0c;想要把如下网站中的书目信息爬取出来。 案例一 耶鲁 Publications | Yale Law School 分析网页&#xff0c;如下图所示&#xff0c;需要爬取的页面&#xff0c;标签信息是“<p>”&#xff0c;所以用 itemssoup.find_all("p&…

【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1

1.使用快捷键CtrlAltT打开命令终端&#xff0c;或者单击右键点击… 2.常用shell命令 目录信息查看命令&#xff1a;ls ls -a&#xff1a;显示目录所有文件及文件夹&#xff0c;包括隐藏文件&#xff0c;比如以.开头的 ls -l&#xff1a;显示文件的详细信息 ls -al&#xff1…

WordPress 6.7 “Rollins”发布

每个 WordPress 版本都会向一位在音乐界留下不可磨灭印记的艺术家致敬。WordPress 6.7 的代号为“Rollins”&#xff0c;旨在向传奇爵士萨克斯演奏家桑尼罗林斯致敬。罗林斯是爵士乐界最伟大的即兴演奏家和先驱之一&#xff0c;他以精湛的技术、创新精神和无畏的音乐表达方式影…

ESXi安装【真机和虚拟机】(超详细)

项目简介&#xff1a; ESXi&#xff08;Elastic Sky X Integrated&#xff09;是VMware公司开发的一种裸机虚拟化管理程序&#xff0c;允许用户在单一物理服务器上运行多个虚拟机&#xff08;VM&#xff09;。它直接安装在服务器硬件上&#xff0c;而不是操作系统之上&#xff…

【若依框架】代码生成详细教程,15分钟搭建Springboot+Vue3前后端分离项目,基于Mysql8数据库和Redis5,管理后台前端基于Vue3和Element Plus,开发小程序数据后台

今天我们来借助若依来快速的搭建一个基于springboot的Java管理后台&#xff0c;后台网页使用vue3和 Element Plus来快速搭建。这里我们可以借助若依自动生成Java和vue3代码&#xff0c;这就是若依的强大之处&#xff0c;即便你不会Java和vue开发&#xff0c;只要跟着石头哥也可…

HBuilder(uniapp) 配置android模拟器

HBuilder&#xff08;uniapp&#xff09; 配置android模拟器 选择完成之后&#xff0c;点击ok&#xff0c;再次点击Configure—》AVD Manager

flutter插件:录制系统播放的声音

该插件基于flutter包 flutter_screen_recording 和 github库 SystemAudioCaptureAndroid&#xff0c;实现了在安卓手机上录制系统播放声音的功能&#xff0c;也就是说&#xff0c;只要一个安卓应用没有设置不允许其它应用录制声音&#xff0c;该插件可以录制该应用播放的声音。…

Mac中安装OhMyZsh

Mac中安装OhMyZsh 文章目录 Mac中安装OhMyZsh一、Homebrew二、OhMyZsh1、Oh-My-Zsh配置1.1&#xff1a;主题配置1.2&#xff1a;插件配置&#xff08;语法高亮和自动提示&#xff09;1、zsh-autosuggestions&#xff08;需下载安装&#xff09;&#xff1a;高亮显示所有支持的命…

生信:TCGA学习(R、RStudio安装与下载、常用语法与常用快捷键)

前置环境 macOS系统&#xff0c;已安装homebrew且会相关命令。 近期在整理草稿区&#xff0c;所以放出该贴。 R语言、RStudio、R包安装 R语言安装 brew install rRStudio安装 官网地址&#xff1a;https://posit.co/download/rstudio-desktop/ R包下载 注意R语言环境自带…

elementUI input 禁止内容两端存在空格,或者是自动去除两端空格

需求 项目中有需求&#xff1a;输入框中禁止内容两端存在空格&#xff0c;或者是自动去除两端空格。 解决方法 vue的api文档中有过介绍&#xff0c;使用.trim可以去掉用户输入内容中两端的空格&#xff0c;如下图 代码 <el-input v-model.trim"name" cleara…

flink同步mysql数据表到pg库

1.关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld systemctl status firewalldvi /etc/selinux/config 修改为disabled2.安装java8 yum list java-1.8* yum install java-1.8.0-openjdk* -yjava -version3.下载和部署postgresql 下载地址&#…

HBase理论_HBase架构组件介绍

近来有些空闲时间&#xff0c;正好最近也在开发HBase相关内容&#xff0c;借此整理一下学习和对HBase组件的架构的记录和个人感受&#xff0c;付出了老夫不少心血啊&#xff0c;主要介绍的就是HBase的架构设计以及我的拓展内容。内容如有不当或有其他理解 matirx70163.com HB…

第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)

本芯片使用的是STM32F103C8T6型号 STM32F103C8T6是STM32F1系列中的一种较常用的低成本ARM Cortex-M3内核MCU&#xff0c;具有丰富的通信接口&#xff0c;包括USART、SPI、I2C等。下面是该芯片上通信接口的管脚分布、每个接口的工作模式、常用应用场景和注意事项。 1. USART (通…