Ubuntu(+ Cinnamon)マシンからadbを使用しようとしています。問題は、adb devicesから次のメッセージが表示されることです。
List of devices attached
TA8830OIVO no permissions
TA8830OIVOは、私のMotorola Gデバイスです。
/ etc/udev/rules.d/51-Android.rulesのAndroidルールを変更しました
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="Android_adb", OWNER="axel"
また、個人のラップトップにudevサービスとadbをインストールし、必要なすべての権限(plugdevグループなど)を持つ唯一のユーザーです。
Sudoを呼び出さずにadbを実行する方法はありますか?
電話機のUSBモードをファイル転送に変更します。それは私のために働いたものです。
Sudo udevadm trigger
を実行して、変更を適用することを忘れないでください(または、再起動しますが、そこが楽しいです)。SudoでADBサーバーを再起動すると、動作します。
Sudo adb kill-server
Sudo adb start-server
AndroidベースのOSであるAmazon Fire OS 8の場合、[設定]> [デバイスオプション]> [開発者オプション]に移動できます。 有効にする が必要になる場合があります。
「USBデバッグ」がオンになっていることを確認します(あなたの場合、オンになっています)。
次に、「ネットワーク> USB構成の選択」に進みます。 「MTP(Media Transfer Protocol)」を選択します。これにより、コンピューターはファイルをやり取りできます。
最善の解決策と私にとってうまくいったのは、Ubuntuパッケージからadb
をインストールすることです。これにより、すべてのAndroidデバイスに対して、コミュニティが維持するudev
ルールのデフォルトセットが提供されます。
例:
$ Sudo apt-get install adb
apt経由でインストールされたadbパッケージを削除します
$Sudo apt remove adb
から最新のadbをダウンロード
https://developer.Android.com/studio/releases/platform-tools
プラットフォームツールへのパスを設定します(これらの2行を〜/ .bashrcファイルに配置することをお勧めします)
export PATH= /<path-to-Android-sdk-folder>/Android-sdk/tools/bin<br>
export PATH= /<path-to-Android-sdk-folder>/Android-sdk/platform-tools
走る
$source ~/.bashrc
adbパスを確認してください
$which adb
sudoでadbを開始します(Sudoで実行する場合、adbへの絶対パスを指定する必要がありました)
$Sudo /<path-to-Android-sdk-folder>/Android-sdk/platform-tools/adb kill-server
$Sudo /<path-to-Android-sdk-folder>/Android-sdk/platform-tools/adb start-server
$adb Shell
できました。
Android電話のどのUSBモード(MIDI、ファイル転送、充電)に関係なく動作します。それはすべてで動作します。
カスタムgradle関数を定義します。
task _adb_restart {
def adb = Android.getAdbExe().toString()
group '__custom'
doLast {
exec {
commandLine 'bash', '-c', '/bin/echo **root_password** | Sudo -S ' + adb + ' kill-server'
}
exec {
commandLine 'bash', '-c', '/bin/echo **root_password** | Sudo -S ' + adb + ' devices'
}
}
}