質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

3回答

2615閲覧

bt_stack.confの編集方法

izuki_y

総合スコア65

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2020/05/28 12:40

いつもお世話になっています。

表題の件でご相談させてください。
HCIの通信情報が欲しいためにbtsnoop.logを取りたいです。
Android端末のHCIスヌープログの取得を有効にしてペアリングを行った後に
以下のコマンドを叩いてバグレポートを取得。

$ adb bugreport MyBugReports

Android端末によっては出力したバグレポートにbtsnoop.logがありません。
HUAWEI nova lite使っています。

$adb shell cat /etc/bluetooth/bt_stack.conf
でを見ると以下のパラメータがfalseになっています。
BtSnoopLogOutput=false
BtSnoopSaveLog=false

多分これが原因なのだと思うのですが、
bt_stack.confを編集することが出来ません。

$adb pull /etc/bluetooth/bt_stack.conf

でPCに落とした後に

$adb push bt_stack.conf /etc/bluetooth/bt_stack.conf

を打ちましたがRead-onlyと言われて拒否されました。

Android Studioとかで内部のクラス使ってとかでも構いません。
編集方法をご存じの方が居ましたらご教授くださいませ。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izuki_y

2020/05/28 23:57

お返事ありがとうございます。 最終的にやりたいのはそのとおりです。 ただそのやり方だと出来る端末と出来ない端末があります。違いは何か?と比較したら件のパラメータではないか?と思いfalseをtrueに変えてみたいのですがやり方がわかりません。 教えて下さい。と言う内容になります。 よろしくお願いいたします
guest

回答3

0

Root化した、Android8.1の場合、この説明にある、adb bugreport anewbugreportfolder で取れました。
https://stackoverflow.com/questions/28445552/bluetooth-hci-snoop-log-not-generated

投稿2020/06/03 19:40

Himadeus

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izuki_y

2020/06/04 15:01

ご回答ありがとうございます。 凄く参考になりました。 1. 開発者向けオプションからHCIスヌープログの有効にすることで、BtSnoopLogOutput = true になります。 2. 一部の電話では、このファイルが更新されないため、Bluetoothやスマホの電源を入れなおしてください。→立ち上げしたがファイルの中身は変わらない 3. 電話がルート化されている場合は、手動でBtSnoopLogOutput = trueを設定します。 → root化できなかったので解決できず root化して対応する必要がありそうですね。 ご丁寧に何度も返信いただきありがとうございました。 ------------ 翻訳の結果 BtSnoopLogOutput = false 開発者向けオプションの[Bluetooth HCIスヌープログを有効にする]オプションを切り替えると、次のように変更されます。 #EnableBtSnoopロギング機能 #有効な値:true/false BtSnoopLogOutput = true 一部の電話では、このファイルが更新されないため、「推奨」と言います。あなたがすべき: bt_stack.confファイルを読み取ります。 HCIログの場所を確認し、bt snoopロギングが実際に有効になっているかどうかを確認します。 開発者オプションでbtsnoop_hciロギングがオンであると示されているが、bt_stack.confファイルでオフであると示されている場合は、Bluetoothや携帯電話の電源を入れ直してみてください。 電話がルート化されている場合は、手動でBtSnoopLogOutput = trueを設定します 3つのオプションのいずれも機能しない場合は、運が悪いです。 BTスヌープhciロギングは、さまざまな電話間で少し矛盾しています。 機能させることができなかった電話をいくつか見ましたが、ほとんどの場合、問題なく機能するはずです。 根ざした電話は必須ではありません。
guest

0

Android のバージョン、ファイルシステムのmountの形式などによりますね。
Android8からは、snoop log を取る方法が根本的に変更になりましたし。

投稿2020/06/01 17:33

Himadeus

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izuki_y

2020/06/03 08:47

ご回答ありがとうございます。 その辺弄れるSDKとかないものでしょうかね。
guest

0

ベストアンサー

adb remount のコマンドで、bt_stack.confはwritableになるはずです。

投稿2020/05/29 17:40

Himadeus

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izuki_y

2020/06/01 13:09

ご回答ありがとうございます。 ご連絡が遅れてすみませんでした。 結論から言わせて頂きますとうまくいきませんでした. 端末に焼かれているファームのせいかと思います(端末:HUwei, nova lite/EMUI 8.0.0) > C:\Users\usr>adb remount > Not running as root. Try "adb root" first. rootでないよ。最初にadb rootしてね。 > C:\Users\usr>adb root > adbd cannot run as root in production builds この製品ビルドだとrootは走らないよ 最終的にどんなファームからでもbtsnoop.logが取れる様にする事が目的だったのですが、 やはり出来る機種と出来ない機種があって、出来ない機種はどう頑張っても無理っぽそうですね(少なくともproduction buildsを焼き変えたりしないと難しそう) ご回答頂いたにも関わらず自分の力不足で解決に至りませんでした。 また何かありましたら是非ご協力をお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問