android dropbear 密码,Android移植之dropbear

本文详细介绍了如何在Android系统上移植并配置Dropbear SSH Server,包括移植步骤、SCP和SSH的生成,以及开机启动服务的设置。移植过程中涉及到修改Android.mk、config.h等文件,以及静态链接libz库。完成后,可通过SSH和SCP在开发板上进行远程操作。
摘要由CSDN通过智能技术生成

Android移植之dropbear

1.需求

Android虽然提供了ADB,但还是没有ssh,scp等用起来顺手,所以想移植一个ssh的Server到开发板上去,因为android默认的代码有external/dropbear,所以决定移植dropbear而不是openssh;

2.思路

要实现ssh,scp必须要满足以下的条件:

A)必须要有网路,这个可以由wifi来保证;

B)必须要有一个Server来打开22号端口,这个是由dropbear来完成的;

C)必须要有一个scp在开发板上,这样才能实现scp的功能;

3.适用范围

以下的步骤只适用于平台开发者,在最终产品里面必须要拿掉这个功能;

测试环境:

硬件:pxa310;

Android:2.1

理论上在其它硬件和android版本也应该可以工作,也许需要做微调;

4.移植步骤

4.1dropbear,dropbearkey的生成

a)把android_root/external/dropbear这个目录copy一份,假设为dropbear.bak;

b)进入到dropbear.bak,做一定的修改,修改的diff如下:

diff --git

a/Android.mk b/Android.mk

deleted file

mode 100644

index

b95d5dd..0000000

--- a/Android.mk

+++ /dev/null

@@ -1,56 +0,0 @@

-ifneq

($(TARGET_SIMULATOR),true)

-

-LOCAL_PATH:=

$(call my-dir)

-include

$(CLEAR_VARS)

-

-LOCAL_SRC_FILES:=\

-dbutil.c buffer.c \

-dss.c bignum.c \

-signkey.c rsa.c random.c \

-queue.c \

-atomicio.c compat.cfake-rfc2553.c

-LOCAL_SRC_FILES+=\

-common-session.c packet.c common-algo.c

common-kex.c \

-common-channel.c common-chansession.c

termcodes.c \

-tcp-accept.c listener.c process-packet.c

\

-common-runopts.c circbuffer.c

-# loginrec.c

-LOCAL_SRC_FILES+=\

-cli-algo.c cli-main.c cli-auth.c

cli-authpasswd.c cli-kex.c \

-cli-session.c cli-service.c

cli-runopts.c cli-chansession.c \

-cli-authpubkey.c cli-tcpfwd.c

cli-channel.c cli-authinteract.c

-LOCAL_SRC_FILES+=netbsd_getpass.c

-

-LOCAL_STATIC_LIBRARIES

:= libtommath libtomcrypt

-

-LOCAL_MODULE_PATH

:= $(TARGET_OUT_OPTIONAL_EXECUTABLES)

-LOCAL_MODULE_TAGS

:= eng

-LOCAL_MODULE :=

ssh

-LOCAL_C_INCLUDES

+= $(LOCAL_PATH)/libtommath

-LOCAL_C_INCLUDES

+= $(LOCAL_PATH)/libtomcrypt/src/headers

-LOCAL_CFLAGS +=

-DDROPBEAR_CLIENT

-

-include

$(BUILD_EXECUTABLE)

-

-include

$(CLEAR_VARS)

-

-LOCAL_SRC_FILES:=\

-scp.c progressmeter.c atomicio.c

scpmisc.c

-

-LOCAL_STATIC_LIBRARIES

:= libtommath libtomcrypt

-

-LOCAL_MODULE_PATH

:= $(TARGET_OUT_OPTIONAL_EXECUTABLES)

-

-LOCAL_MODULE_TAGS

:= debug

-

-LOCAL_MODULE :=

scp

-LOCAL_C_INCLUDES

+= $(LOCAL_PATH)/libtommath

-LOCAL_C_INCLUDES

+= $(LOCAL_PATH)/libtomcrypt/src/headers

-LOCAL_CFLAGS +=

-DDROPBEAR_CLIENT -DPROGRESS_METER

-

-include

$(BUILD_EXECUTABLE)

-

-endif# TARGET_SIMULATOR != true

-

-

-include $(call

all-makefiles-under,$(LOCAL_PATH))

diff --git

a/config.h b/config.h

index 5c67988..ff482ce 100644

--- a/config.h

+++ b/config.h

@@ -50,7 +50,7

@@

#define DISABLE_WTMPX 1

/* Use zlib */

-#define

DISABLE_ZLIB 1

+/* #undef

DISABLE_ZLIB */

/* Define to 1 if you have the `basename'

function. */

#define HAVE_BASENAME 1

@@ -62,7 +62,7

@@

#define HAVE_CONST_GAI_STRERROR_PROTO 1

/* Define to 1 if you have the header file. */

-/* #define

HAVE_CRYPT_H */

+#define

HAVE_CRYPT_H 1

/* Define to 1 if you have the `daemon'

function. */

#define HAVE_DAEMON 1

@@ -128,7 +128,7

@@

#define HAVE_LASTLOG_H 1

/* Define to 1 if you have the

header file. */

-/* #define

HAVE_LIBGEN_H */

+#define

HAVE_LIB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值