tetsu31415.logスマートフォン用の表示で見るtetsu31415.logandroidなどのことを書き綴っていこうと思います。この広告は、90日以上更新していないブログに表示しています。2014-04-29自分自身をadb接続してlogcatを見てみるAndroid突然ですがlogcatではシステムやアプリから吐かれたlogを見ることができます。通常はUSBデバッグをONし、USB接続をしてPC上で見るのですが今回は端末上で見る方法について書いてみたいと思います。ICS(Android4.0)までの端末ではAndroidManifestに権限を記載するだけでlogcatを見ることができます。代表的なlogcatを見るアプリとしてaLogcatを紹介します。GooglePlayhttps://play.google.com/store/apps/details?id=org.jtb.alogcatこれはAndroid4.0.3のF-12Dで起動した場合のスクリーンショットです。このようにlogcatを表示することができます。このアプリにはandroid.permission.READ_LOGSという権限がついていてこれをAndroidManifestに記載することでlogcatの読み取りが許可されます。この権限を使うと他のアプリが吐くLogの取得も可能になります。logcatには重要な情報が含まれる場合があるので危険な場合があります。JB(Android4.1)以降ではこの権限のprotectionLevelが"dangerous"から"signature|system|development"に格上げされたので通常アプリでこの権限を使うことはできなくなりました。よってアプリから取得できるLogは自分のアプリのLogのみとなりました。JB(4.1)以降の端末でもなんとかlogcatを見たい!色々調べていたところこのような記事を見つけました。コンピュータを楽しもう!この記事でやっていることはadbをTCPモードに切り替えて自分の端末から自分の端末にadb接続する方法です。本来TCPモードはWi-Fi経由でPCからadb接続をするためのものですが自分自身をadb接続することもできます。これを使うとshell権限を取得することができるのでlogcatを見ることができることがわかりました。TCPモードに切り替えるとその端末が接続しているWi-Fiネットワークの端末からパスワードなしにadb接続できるようになるので危険です。公衆の無線LANなどで利用するすることは危険です。Android4.2以上では許可されていないデバイスからのadb接続はできなくなっています。自己責任でお願いします。それでは方法の説明をします。あとに書かれたコマンドは端末上のターミナルで入力という区別をつけています。Emulatorを使用しています。Note3を使用します。Android4.1までの端末ではUSBデバッグをONにするとすべてのPCでadbを使用することができましたが、Android4.2以降は新しいPCと接続した時にPCを許可するかどうかの確認ダイアログが出るようになりました。4.2以降でこの方法を使って自身をadb接続する場合にも自身からのアクセスを許可する必要があります。端末をUSB接続して以下のコマンドを入力します。5555このコマンドにより5555ポートが開放され、TCPモードになります。ここでPCからUSB経由でのadb接続はできなくなります。PCによる作業は以上ですがPCと接続したままにします。ここからは端末上のターミナルでの作業をします。serverを再起動します。ここで4.2以上の端末ではこのようにUSBデバッグの許可をしますかというダイアログが出てくると思うので許可します。常に許可するにチェックを入れると次回以降ダイアログで許可する必要がなくなります。127.0.0.1:5555adbのデフォルトポートは5555なので最後の:5555の部分は省略しても大丈夫です。先ほどのPC上でのコマンドで5555以外のポートに設定した場合はそのポートを入力してください。device127.0.0.1:5555がdeviceになっていればOKです。出ればshell権限を取得できています。これでshell権限を取得出来ました。ここでlogcatとコマンドを打つとこのようにlogcatが流れます。TCPモードは再起動するまで有効です。再起動後はUSBモードになるので再度TCPモードに切り替える必要があります。意図的にUSBモードに切り替えるには以下のコマンドを使います。usbこのようにしてAndroid4.1以降でもアプリからlogcatを強引に取得することができました。shell権限を使うとlogcatをみることやタッチイベントの取得/送信などさまざまなことができるので危険を伴いますので自己責任でお願いします。この方法を使用するにはUSBデバッグを有効にする。→adbをTCPモードに切り替える→デバイスの許可をする(Android4.2以上)という手順を踏む必要があるのでアプリから意図せずshell権限を奪取されるということは通常使っている分には心配する必要はありません。最後まで読んでいただきありがとうがございました。何かございましたら@tetsu31415までお願いします。»プロフィールid:tetsu31415Androidのことや日常のことを書き綴っていこうと思います。ManagerについてTwemojiをAndroidで使えるようにしてみたauLTEのCellIDを収集してバンドとの関係性を調べてみた月別アーカイブはてなブログをはじめよう!tetsu31415さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。