rv1126-rv1109-openssh

这是一个工具,可以通过ssh远程登录来操作,非常逆天!

于是rv1109代码自身自带有openssh

所以只需要打开config即可

diff --git a/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig b/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
index f843b07cc..feabc8465 100755
--- a/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
+++ b/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
@@ -68,3 +68,9 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y# BR2_TARGET_ROOTFS_UBIFS_LEBSIZE is reset to default# BR2_TARGET_ROOTFS_UBIFS_OPTS is reset to defaultBR2_TARGET_ROOTFS_UBI_SQUASHFS=y
+BR2_PACKAGE_OPENSSH=y
+BR2_PACKAGE_OPENSSH_CLIENT=y
+BR2_PACKAGE_OPENSSH_SERVER=y
+BR2_PACKAGE_OPENSSH_ENABLE_ROOT_LOGIN=y
+BR2_PACKAGE_OPENSSH_KEY_UTILS=y
+BR2_PACKAGE_OPENSSH_LONBON=y

然后就可以看到out目录下面生成了scp、ssh、ssh-add、ssh-keygen、ssh-keyscan等

然后要把密钥这些文件放进去

 

diff --git a/buildroot/fs/common.mk b/buildroot/fs/common.mk
index 25ce3cbed..4f00960a1 100755
--- a/buildroot/fs/common.mk
+++ b/buildroot/fs/common.mk
@@ -35,7 +35,7 @@ ROOTFS_USERS_TABLES = $(call qstrip,$(BR2_ROOTFS_USERS_TABLES))ROOTFS_FULL_DEVICES_TABLE = $(FS_DIR)/full_devices_table.txtROOTFS_FULL_USERS_TABLE = $(FS_DIR)/full_users_table.txt
-
+OPENSSH_DIR_FILES = $(TARGET_DIR)/../../../package/openssh2ROOTFS_COMMON_NAME = rootfs-commonROOTFS_COMMON_TYPE = rootfsROOTFS_COMMON_DEPENDENCIES = \
@@ -172,6 +172,11 @@ $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): $$(ROOTFS_$(2)_DEPENDENCIES)mkdir -p $(TARGET_DIR)/mnt/romkdir -p $(TARGET_DIR)/mnt/rwmkdir -p $(TARGET_DIR)/mnt/rwfs
+ifeq ($(BR2_PACKAGE_OPENSSH_LONBON),y)
+       mkdir -p $(TARGET_DIR)/libexe
+       cp -a $(OPENSSH_DIR_FILES)/libexe/* $(TARGET_DIR)/libexe
+       cp -a $(OPENSSH_DIR_FILES)/etc/ssh/* $(TARGET_DIR)/etc/ssh
+endif

运行后会打包进跟文件系统

就可以看到我打包的路径

然后就完成了,openssh就这么简单,里面是密钥这些文件

==============================测试openssh==================================

//-i 指定密钥文件ssh -i ./etc/ssh/ssh_host_rsa_key sdk@192.168.1.149
//登录我的ubuntu(远程登录设备终端)
// ssh -i [密钥] [用户名]@[IP]
exit //注销scp -i ./etc/ssh/ssh_host_rsa_key  bin/mv  sdk@192.168.1.149:work/rk
//cp文件到远程(拷贝本地文件到远程设备)
// scp -i [密钥] [文件] [用户名]@[IP]scp -i ./etc/ssh/ssh_host_rsa_key   sdk@192.168.1.149:work/rk/mv ./mnt/rw
//cp文件到本地(拷贝远程设备中的文件到本地)
// scp -i [密钥] [用户名]@[IP][文件]  [本地目录]

 远程登录设备终端:

 拷贝本地文件到远程设备:

 拷贝远程设备中的文件到本地:

 

===============================生成密钥=====================================

要在本地 Windows 系统上生成 OpenSSH 格式的私钥,可以使用 ssh-keygen 命令。请按照以下步骤进行操作:打开命令提示符或 PowerShell。你可以在 Windows 上使用内置的命令提示符或 Windows PowerShell。使用 ssh-keygen 命令生成密钥。以下是一些常用选项:-t 选项:指定密钥类型,通常选择 rsa 或 ed25519。
-b 选项:指定密钥的位数。一般来说,2048 位或更多是安全的。例如,-b 2048。
-f 选项:指定生成的密钥文件的名称和路径。如果未指定路径,则会在当前用户的主目录中创建默认路径。
例如,生成一个 2048 位的 RSA 密钥并将其保存到用户主目录下的 .ssh 文件夹中,可以运行以下命令:shellssh-keygen -t rsa -b 2048在生成密钥时,你将被要求指定文件保存位置和设置一个密码。你可以选择将密钥保存在默认位置(通常是 C:\Users\<YourUsername>\.ssh)或者选择其他位置。如果你选择将密码留空,则私钥将不会被加密。完成后,将在指定的文件夹中生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。私钥文件包含 .pem 扩展名。如果你想要在 Linux 服务器上使用此密钥对进行身份验证,你需要将生成的公钥(.pub 文件)复制到服务器的 ~/.ssh/authorized_keys 文件中。你可以使用 SSH 客户端连接到服务器,并将公钥上传到服务器,或者将公钥的内容手动复制到服务器上的 authorized_keys 文件中。现在,你可以在 Linux 服务器上使用生成的私钥文件进行 SSH 连接,例如:shellssh -i /path/to/private/keyfile username@hostname其中 /path/to/private/keyfile 是生成的私钥文件的路径,username 是你在服务器上的用户名,hostname 是服务器的主机名或 IP 地址。请注意,生成的私钥文件包含私钥信息,因此应谨慎保存,并不要将其与他人分享。公钥文件(.pub)可以安全地与其他人分享,并添加到远程服务器的 authorized_keys 文件中,以实现 SSH 密钥身份验证。

==================================最后全部补丁===============================

diff --git a/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig b/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
index f843b07cc..feabc8465 100755
--- a/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
+++ b/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig
@@ -68,3 +68,9 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y# BR2_TARGET_ROOTFS_UBIFS_LEBSIZE is reset to default# BR2_TARGET_ROOTFS_UBIFS_OPTS is reset to defaultBR2_TARGET_ROOTFS_UBI_SQUASHFS=y
+BR2_PACKAGE_OPENSSH=y
+BR2_PACKAGE_OPENSSH_CLIENT=y
+BR2_PACKAGE_OPENSSH_SERVER=y
+BR2_PACKAGE_OPENSSH_ENABLE_ROOT_LOGIN=y
+BR2_PACKAGE_OPENSSH_KEY_UTILS=y
+BR2_PACKAGE_OPENSSH_LONBON=y
\ No newline at end of file
diff --git a/buildroot/package/openssh/Config.in b/buildroot/package/openssh/Config.in
old mode 100644
new mode 100755
index 7c69c0acb..f6d08ba2c
--- a/buildroot/package/openssh/Config.in
+++ b/buildroot/package/openssh/Config.in
@@ -41,4 +41,12 @@ config BR2_PACKAGE_OPENSSH_KEY_UTILShelpKey utilities: ssh-keygen, ssh-keyscan.+config BR2_PACKAGE_OPENSSH_LONBON
+       bool "openssh2"
+       default y
+       help
+         A free version of the SSH protocol suite of network
+         connectivity tools. The standard 'ssh', 'sshd', 'scp', and
+         friends.version4.6p1.
+endif
diff --git a/buildroot/package/openssh/openssh.mk b/buildroot/package/openssh/openssh.mk
old mode 100644
new mode 100755
index e2599e853..5aef23a58
--- a/buildroot/package/openssh/openssh.mk
+++ b/buildroot/package/openssh/openssh.mk
@@ -13,6 +13,9 @@ OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portableOPENSSH_LICENSE = BSD-3-Clause, BSD-2-Clause, Public DomainOPENSSH_LICENSE_FILES = LICENCE+OPENSSH_DIR = $(TARGET_DIR)/../../../package/openssh
+OPENSSH_DKDIR = mkdir
+OPENSSH_CP = mkdir# patch touching m4/openssh.m4OPENSSH_AUTORECONF = YES@@ -142,4 +145,10 @@ endefOPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_ENABLE_ROOT_LOGINendif+_all:
+ifeq ($(BR2_PACKAGE_OPENSSH_LONBON),y)
+       $(OPENSSH_DKDIR) -p $(TARGET_DIR)/libexe
+       $(OPENSSH_CP) -a $(OPENSSH_DIR)/libexe/* $(TARGET_DIR)/libexe
+       $(OPENSSH_cp) -a $(OPENSSH_DIR)/etc/ssh/* $(TARGET_DIR)/etc/ssh
+endif$(eval $(autotools-package))

================================frpc 穿透===================================

1.重启android设备进入先创建出几个key
mkdir  -p /data/ssh
chmod  700 /data/ssh
cd /data/ssh/
ssh-keygen  -t rsa  -f  id_rsa -N  “自定义秘钥”
//这里生成id_rsa和id_rsa.pub文件2.将我们电脑上的公钥push进去
//注意,authorized_keys是pc客户端的公钥文件
adb  push  id_rsa.pub /data/ssh/authorized_keys3.更改sshd服务配置文件/system/etc/ssh/sshd_config
#Port  22改为Port 22
#PermitRootLogin yes改为PermitRootLogin  without-password
#RSAAuthentication yes改为RSAAuthentication  yes
#PubkeyAuthentication yes改为PubkeyAuthentication  yes
PasswordAuthentication no改为#PasswordAuthentication  no
#PermitEmptyPasswords no改为PermitEmptyPasswords  yes
#ChallengeResponseAuthentication yes改为ChallengeResponseAuthentication  yes
#UsePrivilegeSeparation  yes改为UsePrivilegeSeparation  no4.启动ssh服务
#android系统内启动服务
start-ssh
//不中断的在后台运行:nohup start-ssh &5.selinux的安全策略配置#5.1、修改device/rockchip/common/sepolicy/file_contexts 添加
/system/bin/start-ssh                  u:object_r:start-ssh_exec:s0#5.2、修改device/rockchip/common/sepolicy/start-ssh.te添加
type start-ssh, domain;
type start-ssh_exec, exec_type, file_type;init_daemon_domain(start-ssh)
allow start-ssh start-ssh:tcp_socket { read write getopt getattr setopt accept create bind listen name_bind node_bind };
allow start-ssh fwmarkd_socket:sock_file { write };
allow start-ssh netd:unix_stream_socket { connectto };
allow start-ssh start-ssh:fd { use };
allow start-ssh port:tcp_socket { name_bind };
allow start-ssh node:tcp_socket { node_bind };
allow start-ssh system_file:file { execute_no_trans };
allow start-ssh start-ssh:capability { setgid net_raw setuid dac_override net_bind_service };
allow start-ssh start-ssh:udp_socket { create };
allow start-ssh system_data_file:file { read open getattr create write };
allow start-ssh system_data_file:dir { read write open getattr add_name };
allow start-ssh rootfs:lnk_file { getattr };
allow start-ssh shell_exec:file { getattr execute read open execute_no_trans };
allow start-ssh devpts:chr_file { open ioctl getattr read write setattr getattr };#5.3、修改system/sepolicy/domain.te
neverallow {-system_server-system_app-init
+  -start-ssh-installd # for relabelfrom and unlink, check for this in explicit neverallow} system_data_file:file no_w_file_perms;# do not grant anything greater than r_file_perms and relabelfrom unlink6.编译运行烧录设备
7.SSH连接(可以使用xshell进行连接默认端口22)
运行起来后,用电脑连接,连接进去后直接就是root用户
ssh root@192.168.0.1
运行ok时的/data/ssh目录
rk3399_box:/data/ssh # ls -l
total 56
-rw------- 1 root root  412 2021-04-13 06:51 authorized_keys
-rw------- 1 root root  668 2021-04-13 06:51 ssh_host_dsa_key
-rw------- 1 root root  604 2021-04-13 06:51 ssh_host_dsa_key.pub
-rw------- 1 root root 1675 2021-04-13 06:51 ssh_host_rsa_key
-rw------- 1 root root  396 2021-04-13 06:51 ssh_host_rsa_key.pub
-rw------- 1 root root 3342 2021-04-13 06:51 sshd_config8.收尾工作a、把启动服务做进固件里面去
b、然后将/data/ssh/里面的文件全部拷贝出来,编译的时候拷贝到system/etc/ssh/目录,开机再拷贝到data/ssh目录,并设置好相关的权限
修改:rk3399_android7.1/device/rockchip/rk3399/init.rk3399.rc# For ssh 开机拷贝配置文件mkdir /data/sshchmod 777 /data/sshcopy /system/etc/ssh/authorized_keys /data/ssh/authorized_keyscopy /system/etc/ssh/ssh_host_dsa_key /data/ssh/ssh_host_dsa_keycopy /system/etc/ssh/ssh_host_dsa_key.pub /data/ssh/ssh_host_dsa_key.pubcopy /system/etc/ssh/ssh_host_ecdsa_key /data/ssh/ssh_host_ecdsa_keycopy /system/etc/ssh/ssh_host_ecdsa_key.pub /data/ssh/ssh_host_ecdsa_key.pubcopy /system/etc/ssh/ssh_host_rsa_key /data/ssh/ssh_host_rsa_keycopy /system/etc/ssh/ssh_host_rsa_key.pub /data/ssh/ssh_host_rsa_key.pubcopy /system/etc/ssh/sshd_config /data/ssh/sshd_configmkdir /data/ssh/emptychmod 600 /data/ssh/emptychmod 600 /data/ssh/authorized_keyschmod 600 /data/ssh/ssh_host_dsa_keychmod 600 /data/ssh/ssh_host_dsa_key.pubchmod 600 /data/ssh/ssh_host_ecdsa_keychmod 600 /data/ssh/ssh_host_ecdsa_key.pubchmod 600 /data/ssh/ssh_host_rsa_keychmod 600 /data/ssh/ssh_host_rsa_key.pubchmod 600 /data/ssh/sshd_config#open ssh 开机启动ssh服务
service daemonssh /system/bin/start-sshclass mainuser  rootgroup root修改:device/rockchip/rk3399/rk3399_box.mk 添加
PRODUCT_COPY_FILES += \$(call find-copy-subdir-files,*,$(LOCAL_PATH)/ssh,system/etc/ssh)第一阶段完工,现在已经完全能在局域网内远程ssh安卓设备
二、内网穿透
这里需要到自己购买服务器,或者使用花生壳之类的,不建议使用免费,存在安全问题,最好自己搭建;
代码:FRP开源项目
服务器:阿里云
文档:https://gofrp.org/docs/setup/
1、下载源码
https://github.com/fatedier/frp/releases
根据云服务器、安卓的cpu架构选择对应的包下载;
(客户端)RK3399 Cpu架构选:frp_0.36.2_linux_arm64.tar.gz
(服务端)阿里云服务器CPU架构选:frp_0.36.2_linux_amd64.tar.gz
2、安装
服务端:
#home目录下创建frp目录并拷贝源码到此目录,一定要修改执行权限
[root@ frp]# ll
total 22628
-rwxrwxrwx 1 root root  9953280 Mar 18 11:24 frpc
-rwxrwxrwx 1 root root     9433 Mar 18 11:26 frpc_full.ini
-rwxrwxrwx 1 root root      126 Mar 18 11:26 frpc.ini
-rwxrwxrwx 1 root root 13172736 Mar 18 11:24 frps
-rwxrwxrwx 1 root root     5051 Mar 18 11:26 frps_full.ini
-rwxrwxrwx 1 root root       26 Mar 18 11:26 frps.ini
-rw-rw-r-- 1 root root    11358 Mar 18 11:26 LICENSE
drwxrwxr-x 2 root root     4096 Apr 13 14:19 systemd修改配置,在具有公网 IP 的机器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000启动服务
./frps -c ./frps.ini客户端(RK3399):
在system目录下创建frpc并复制代码到该目录下,一定要修改执行权限
rk3399_box:/system/frpc # ls -l
total 42200
__bionic_open_tzdata_path: ANDROID_DATA not set!
__bionic_open_tzdata_path: ANDROID_ROOT not set!
-rw-r--r-- 1 root root    11358 2021-03-19 06:05 LICENSE
-rwxrwxrwx 1 root root  9240576 2021-03-19 06:04 frpc
-rwxrwxrwx 1 root root      130 2021-04-13 06:34 frpc.ini
-rwxrwxrwx 1 root root     9433 2021-03-19 06:05 frpc_full.ini
-rw-r--r-- 1 root root 12320768 2021-03-19 06:04 frps
-rw-r--r-- 1 root root       26 2021-03-19 06:05 frps.ini
-rw-r--r-- 1 root root     5051 2021-03-19 06:05 frps_full.ini
drwxrwxrwx 2 root root     4096 2021-04-13 06:41 systemd修改配置:在需要被访问的内网机器上(SSH 服务通常监听在 22 端口)部署 frpc,修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:
[common]
server_addr = x.x.x.x 你的阿里云ip地址
server_port = 7000
tls_enable = true  //解决内网防火墙问题导致无法连接服务器[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000[adb]
type = tcp
local_ip = 127.0.0.1
local_port = 5555   
remote_port = 8555local_ip 和 local_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
启动客户端:
./frpc -c ./frpc.ini

最后:通过xshell连接服务器ip,协议为SSH,端口号为6000,5555为安卓adb调试网络端口完美连上Rk3399(你的手机)

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

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

相关文章

Android codec2 视频框架之输出端的内存管理

文章目录 前言setSurfacestart从哪个pool中申请buffer解码后框架的处理流程renderOutbuffer 输出显示 前言 输出buffer整体的管理流程主要可以分为三个部分&#xff1a; MediaCodc 和 应用之间的交互 包括设置Surface、解码输出回调到MediaCodec。将输出buffer render或者rele…

手机照片一键去水印轻松摆脱不需要的旁观者

是什么让照片中的意外客人成为挑战&#xff1f;我们都经历过这种情况——在热门地标或繁忙的城市街道拍照&#xff0c;不可避免地会在画面中捕捉到陌生人。有时他们会无意中抢尽风头&#xff0c;转移观众的注意力。 这些水印不仅影响了照片的美观度&#xff0c;还给我们的观赏体…

京东数据分析软件(京东平台数据分析):2023年Q3扫地机器人行业消费报告

随着90后、00后逐渐成为消费主力军&#xff0c;他们对生活品质更加关注、健康意识进一步增强&#xff0c;再加上“懒人经济”的盛行&#xff0c;人们对扫地机器人的使用率和关注热情也不断增长。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份-9月份&#xf…

AI大爆发的时代,未来的年轻人怎样获得机会和竞争力?

文章目录 引言AI与教育工作者教育资源不平衡 这次&#xff0c;狼真的来了。 引言 AI正迅猛地改变着我们的生活。 根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一的工作可以用AI完成。另…

第四代智能井盖传感器,更迭智能井盖监测办法

人工检查井盖是一项耗时且效率低下的工作&#xff0c;需要工作人员逐个进行检查。由于这种方式无法实时监测井盖的状态&#xff0c;当井盖出现故障时无法及时将信息反馈给相关人员&#xff0c;从而影响了井盖的维修效率。此外人工检查还受到天气、光线等环境因素的影响较大&…

卷积神经网络(ResNet-50)鸟类识别

文章目录 卷积神经网络&#xff08;CNN&#xff09;mnist手写数字分类识别的实现卷积神经网络&#xff08;CNN&#xff09;多种图片分类的实现卷积神经网络&#xff08;CNN&#xff09;衣服图像分类的实现卷积神经网络&#xff08;CNN&#xff09;鲜花的识别卷积神经网络&#…

基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码

基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于社交网络算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于社交网络优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

一、MySQL-Replication(主从复制)

1.1、MySQL Replication 主从复制&#xff08;也称 AB 复制&#xff09;允许将来自一个MySQL数据库服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从服务器&#xff09;。 根据配置&#xff0c;您可以复制数据库中的所有数据库&a…

Flowable工作流基础篇

文章目录 一、Flowable介绍二、Flowable基础1.创建ProcessEngine2.部署流程定义3.启动流程实例4.查看任务5.完成任务6.流程的删除7.查看历史信息 三、Flowable流程设计器1.Eclipse Designer1.1 下载安装Eclipse1.2 安装Flowable插件1.3 创建项目1.4 创建流程图1.5 部署流程 2.F…

Maven工程继承关系,多个模块要使用同一个框架,它们应该是同一个版本,项目中使用的框架版本需要统一管理。

1、父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

KMP——字符串匹配

朴素匹配的逻辑&#xff1a; 将原串的指针移动至本次发起点的下一个位置&#xff08;b字符处&#xff09;&#xff1b;匹配串的指针移动至起始位置。尝试匹配&#xff0c;发现对不上&#xff0c;原串的指针会一直往后移动&#xff0c;直到能够与匹配串对上位置。 如图&#x…

(02)vite环境变量配置

文章目录 将开发环境和生产环境区分开环境变量vite处理环境变量loadEnv 业务代码需要使用环境变量.env.env.development.env.test修改VITE_前缀 将开发环境和生产环境区分开 分别创建三个vite 的配置文件&#xff0c;并将它们引入vite.config.js vite.base.config.js import…

深入探讨软件测试技术:方法、工具与最佳实践

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 引言 软件测试是软件开发生命周期中至关重要的…

SO3 与so3 SE3与se3 SIM3

文章目录 1 旋转*叉乘1.1 旋转矩阵的导数1.2 物理意义1.3 实例1.4 角轴与反对称矩阵 2 SO3 与so32.1 so3 2 SO32.2 SO3 2 so3 3 SE3 与se33.1 se3 2 SE3:3.2 SE3 2 se3 4 SIM3 与sim35 Adjoint Map 1 旋转*叉乘 1.1 旋转矩阵的导数 根据旋转矩阵的性质&#xff1a; R R T I …

2023年以就业为目的学习Java还有必要吗?

文章目录 1活力四射的 Java2从零开始学会 Java3talk is cheap, show me the code4结语写作末尾 现在学 Java 找工作还有优势吗&#xff1f; 在某乎上可以看到大家对此问题的热议&#xff1a;“2023年以就业为目的学习Java还有必要吗&#xff1f;” 。有人说市场饱和&#xff0c…

基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码

基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于白冠鸡优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…

django ModelSerializer自定义显示字段

文章目录 前言一、问题二、解决 前言 最近在复习django的时候&#xff0c;发现了一个有趣的问题&#xff0c;解决了之后特意记录下来&#xff0c;以供以后参考。 一、问题 相信大家使用django的时候&#xff0c;被其DRF的强大功能所折服&#xff0c;因为它能通过简单的代码就…

威班11月份PMP模拟考试实录

11月份模拟考试于2023年11月18日在深圳市福田区鹏基商务时空大厦成功举办&#xff01; 本次线下模拟考试依旧是通过线上线下同步的方式进行&#xff0c;在深圳周边的学员直接到达现场参与模拟考试&#xff0c;全国各地不能到达现场的其他学员已提前收到考试所需资料&#xff0…

C++ LibCurl实现Web指纹识别

Web指纹识别是一种通过分析Web应用程序的特征和元数据&#xff0c;以确定应用程序所使用的技术栈和配置的技术。这项技术旨在识别Web服务器、Web应用框架、后端数据库、JavaScript库等组件的版本和配置信息。通过分析HTTP响应头、HTML源代码、JavaScript代码、CSS文件等&#x…

【ARM Trace32(劳特巴赫) 使用介绍 2.3 -- TRACE32 进阶命令之 参数传递介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 参数传递命令 ENTRY 参数传递命令 ENTRY ENTRY <parlist>The ENTRY command can be used to Pass parameters to a PRACTICE script or to a subroutineTo return a value from a subroutine 使用示例&am…