장치가 USB 키보드 인 것처럼 가장 할 수 있습니까?


16

내가 찾는 것 :

USB 포트에 꽂고 클립 보드의 내용을 "입력"할 때 장치가 키보드 / HID라고 주장하는 방법이 있습니까? 좀 더 정확하게; 그렇게하려면 무엇이 필요할까요?

사용 사례 동기 부여 :

전화에 암호 키퍼 프로그램이 있지만 장치에서 암호를 읽고 다른 컴퓨터에 입력해야하는 것은 성가신 일입니다.

배경:

MTP가 파일 전송을 지원하기 전에 빌드 된 Android 장치가 있지만 최근 업그레이드로 지원합니다. 이를 기반으로 주장하는 USB 클래스는 하드웨어로 정의 할 수 없으며 소프트웨어로 정의해야합니다.

IIRC는, 이 프로젝트가 결정적으로 내장되지 않은 일부 USB 클래스로 이야기 (내가 생각하는 주식 커널이와 함께) 안드로이드 장치가 있습니다. 이것은 당신이 나에게 나타낼 는 커널 작업을하지만 난없이 지원 무엇을 USB 클래스를 제어 할 수 확실하지 않습니다.

호스트 측면 (예 : PC)에 관해서는 PC, Mac 또는 Linux 상자에 키보드 용 특수 드라이브가 필요하다는 것을 본 적이 없습니다. 키보드 (바코드 스캐너, 신용 카드 및 스마트라고 주장하는 일부 밀착 장치) 일반적인 드라이버는 내가 원하는 것에 충분해야합니다.

내가 찾고 있는 것은 하드웨어 관점에서 수행 할 수 있다고 주장 하지만 소프트웨어 지원이 무엇인지, 앱이 있는지에 대해서는 거의 말하지 않습니다.


2
휴대 전화와 컴퓨터 모두에서 KeePass (Android의 KeePassDroid, Linux의 keepassx 등)를 사용하여 데이터베이스 파일을 동기화하거나 USB를 통해 컴퓨터의 데이터베이스 파일에 액세스하면됩니다. 다른 암호 관리자에도 "실제 컴퓨터"가있을 수 있습니다.
TREE

@TREE : 경우에 따라 작동 할 수 있지만 특정 대상 사용법 중 하나는 PC에 무언가를 설치할 수없는 곳입니다 (시스템 로그인 암호와 같은 치킨 / 계란 문제 없음) .
BCS

USB 스틱에서 실행할 수있는 휴대용 버전의 KeePass도 있습니다. 이것은 탑재 된 안드로이드 USB 저장 장치에서 작동 할 수 있지만 모든 가능한 사용 사례를 다루지는 않습니다.
TREE

답변:


15

예. 이것은 PC에서 수정이나 드라이버를 요구하지 않고 확실히 가능합니다. OP가 언급했듯이 전화 쪽의 USB 식별은 궁극적으로 소프트웨어 (이 파일 https://github.com/android/kernel_msm/blob/android-msm-2.6.35/drivers/usb/gadget/composite) 에서 수행됩니다. c ), 표준 USB 키보드로 식별되도록 수정할 수 있습니다.

이 변경에는 몇 가지 사항이 필요합니다.

  1. 패치 된 USB 드라이버가있는 수정 된 커널
  2. 수정 된 USB 드라이버에 의해 노출 된 일부 인터페이스와 통신 할 수있는 Android 앱입니다.

몇 년 전에 출판 된 논문 이있었습니다 ( 재미와 이익을 위해 스마트 폰 USB 연결 사용 이라는 제목 무차별 데스크탑 로그인 화면에 전화를 사용하여 설명). 그들이 사용한 방법은 전화를 USB 키보드로 보이게하는 것입니다.



github.com/pelya/android-keyboard-gadget 그것은 여기에서 구현되었습니다 .. 필요한 안드로이드 응용 프로그램도 사용할 수 있습니다
Abhigyan

2

이것은 귀하의 질문에 정확하게 대답하지는 않지만 사용 사례에 도움이 될 수 있습니다.

InputStick을 살펴보고 싶을 수도 있습니다. 입니다. 블루투스를 통해 Android에 페어링하는 USB 썸 드라이브입니다. 컴퓨터에 연결하면 일반 USB HID를 에뮬레이트하여 키보드 입력을 보냅니다. 고급 Java API를 사용하면 비표준 기능을 에뮬레이션하기 위해 장치 설명자를 지정할 수도 있습니다. 하드웨어가 아닌 소프트웨어로 정의 된 좋은 예를 제공 할 수 있습니다.

참고로 개발자는 Demo Password Manager와 같은 예제 프로그램도 개발 중입니다.


0

최소한 전화기와 PC의 소프트웨어가 모두 필요합니다. 두 가지 소프트웨어가 서로 통신해야합니다. 내가 현재 알고있는 것과 같은 것은 존재하지 않습니다.

그리고 PC가 장치가 진정한 키보드라고 생각하려면 PC에 장치가 키보드임을 알리는 새로운 드라이버와 "키보드로 사용하는 방법"이 필요합니다.

나는 그것이 불가능하다는 것을 말하고있는 것이 아닙니다. 내가 말하고있는 것은 현재 이와 같은 것은 존재하지 않는다는 것입니다.

USB는 하드웨어 및 소프트웨어이며 소프트웨어 만있는 경우 Windows의 모든 Android 장치에서 동일한 USB 드라이버가 작동하지만, 그렇지 않습니다. USB 대용량 저장 장치 및 MTP는 장치가 아닌 PC의 드라이버에 의해 처리됩니다. MTP와 USB 대용량 저장 장치를 동시에 지원하는 장치는 무엇입니까? 장치가 UMS 및 MTP를 지원할 수 있지만 외부 sdcard가있는 경우에만 UMS를 지원한다는 내용의 기사를 찾았습니다. MTP 및 UMS를 사용하여 외부 sdcard를 마운트 할 수 없습니다. MTP는 내부 저장 소용입니다. 그리고 나는 당신이 동시에 둘 다 사용할 수 있음을 확인하거나 거부 할 수있는 것을 읽지 않았습니다.

Windows에 이미 드라이버가 있기 때문에 키보드가 "기본"사양을 따르는 경우 키보드 용 드라이버를 설치할 필요가 없습니다. 자체 드라이버와 함께 제공되는 키보드가 있습니다. 내가 말했듯이 가능할 것입니다. 어떻게되는지 잘 모르겠습니다. 거의 확실하게 키보드와 같은 역할을하기 위해서는 최소한 커스터마이징 커널이 필요하며 PC 측에 추가 드라이버가 필요하지 않습니다.

또한 @davidbb에 동의하며 가능하다고 이미 말했습니다. 뭔가 가능한지 묻는 질문으로 문제가 해결되지는 않습니다. "Windows에서 iOS 애플리케이션을 기본적으로 실행할 수 있습니까?"라고 말하는 것과 같습니다. 이것은 이론적으로는 가능하지만 지금은이 작업을 수행 할 수 없으며 "일반 사용자"(또는 고급 사용자)가이를 수행 할 수있는 작업이 없습니다. 이 사이트는 사용자를위한 것이므로 수정 된 커널 만 작성하면된다는 대답은 누구에게도 도움이되지 않습니다. 따라서 수정 된 커널이 없기 때문에 질문에 대한 실제 답변은 아니오입니다.


USB 연결의 안드로이드 쪽인 IIRC는 소프트웨어로 이루어집니다 (같은 하드웨어가 USB 대용량 저장 장치와 MTP 둘 다로 작동하려면 어느 정도는되어야합니다). 이를 바탕으로 장치 측 전용 드라이버가 장치가 일반 HID로서 자신을 알리지 못하게하는 방법은 무엇입니까? 그렇게 할 수 있으면 다른 키보드를 처리하는 동일한 PC 쪽 드라이버가 키보드를 처리합니다 (바코드 스캐너 및 신용 카드 판독기와 같은 작업을 수행하는 것처럼).
BCS

귀하의 의견을 해결하기 위해 답변에 추가했습니다.
Ryan Conrad

MTP를 사용하기 전에 구축 된 Android 장치 (하드웨어)는 이제 MTP USB 클래스로 작동하므로 장치가 작동한다고 주장하는 클래스는 소프트웨어에서 정의해야합니다. 내가 만약 내가 기억할 수없는 어느 A에 대한 드라이버를 설치 키보드 (또는이 안드로이드 장치를 연결하기위한 비 일반 드라이버 문제에 대한) 따라서 아무것도 PC 측면을 설치할 필요가 없습니다. 사람들을 결합하고 난 거의 확실 하드웨어가 그것을 할 수있다. 남은 유일한 질문은 재고 안드로이드가 필요한 노브에 대한 액세스를 제공합니까, 아니면 사용자 정의 커널을 작성해야합니까?
BCS

다시 : 두 번째 편집. 나는 그것이 무엇을 해야할지 확실히 알고있는 사람을 찾고 있다고 생각합니다. (마지막 단락을 맨 위로 옮길 수 있습니까?)
BCS

이 답변은 잘못되었으므로 PC 측에 소프트웨어가 필요하지 않습니다. 제조업체가 모두 동일한 공급 업체 ID 번호를 사용하지 않기 때문에 전화기마다 다른 드라이버가 필요합니다. 그러나 키보드는 유형에 따라 호스트가 인식하는 다른 범주의 장치에 속하므로 공급 업체 ID는 중요하지 않습니다. VID / PID, 장치 유형, 프로토콜 등은 모두 안드로이드 측의 소프트웨어로 구현되며 커널 소스를 가진 사람과 컴파일 된 결과를 설치하는 방법으로 누구나 변경할 수 있습니다.
Chris Stratton

0

당신이 시도 원격 통합 . 이것은 전화를 키보드와 마우스로 사용하는 훌륭한 도구입니다. USB를 사용하지 않고 대신 wifi를 사용합니다. 휴대 전화와 컴퓨터에 함께 작동하는 앱이 있습니다. 나를 위해 잘 작동합니다. 또한 정식 버전을 얻는 경우 많은 일반적인 응용 프로그램과 통합됩니다.


BIOS 부팅 프롬프트에 암호를 입력하는 것과 같은 경우에 대한 솔루션을 찾고 있으므로 어떤 종류의 클라이언트도 실제로 설치할 수 없습니다.
BCS



-1

InputStick은 Android 장치 용으로 설계된 무선 USB 수신기입니다. Android 애플리케이션은 USB 키보드, USB 마우스, USB 게임 패드 등과 같은 다양한 장치를 에뮬레이션 할 수 있습니다. InputStick을 사용하면 Android 앱이 실제 장치로 할 수있는 모든 작업을 수행 할 수 있습니다. 입력, 마우스 포인터 이동, 멀티미디어 및 게임 제어.

정보는 http://inputstick.com/ 에서 찾을 수 있습니다


1
이것은 광고처럼 읽습니다. 이 제품과의 관계는 무엇입니까?
Dan Hulme
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.