2015年5月31日日曜日

Xposedモジュールを入れていると調子が悪くなる事例

Xposedの存在を知ってから、便利そうなモジュールを色々試してみました。
systemui.apkをいじるもので機能が当然重なるものは相性問題が生じるのは当然ですが、そんな中で2つほど本体機能やアプリを阻害するものがあったので備忘録として残します。

1)MTPによるPCとの接続とXposed Media Scanner Optimizer

Xposed Media Scanner Optimizerを有効化しているとPCとの間でMTP接続に失敗します(SO-02EとNexus4で経験)。おそらくMTPのプロセスがMedia Scannerを使用するためそれが原因かと思いますが。
ちなみにXposed Media Scanner OptimizerはAndroidのプロセスのうち最も暴走して電力を消費するMedia Scannerの動作を出来るだけ制限するものです。

2)Titanium Backup root Proキーの認証機能とMinMinGuard

常時使用する本体をSO-02EからD6653に切替直後はrootは取らず使用していました。root取得後にTitanium Backup rootをインストールしたのですが、Pro版のキーの確認作業に失敗する現象に悩まされました。
そんな中、娘の使っているNexus4でTinanium Backupが正常に動作している。そう言えばLollipop(Ver 5.1)でXposedのモジュールはGreenify以外は有効にしていない(v5.1向けのXposedはアルファでかなりのモジュールが対応していないため)、ということで一旦全てのモジュールを無効化後再起動したらちゃんと動作しました。
全モジュールの無効化方法は、「モジュール」の画面で全てのチェックボックスを外すか/data/data/de.roby.xposedにあるxmlファイルを削除すればよいです(新しいフロントエンドアプリで一括解除の機能が出来れば良いですね)
その後、色々なモジュールを切替してみたところ、MinMinGuardが悪さをしていることがわかりました。
MinMinGuardは広告の表示を制限するモジュールなのですが、ライセンスキーを確認する際に外部へのアクセスを制限されて悪さをするのかもしれません(ちなみにこの時MinMinGuardの設定ではTitanium Backupは有効化していませんでした)。

Xposedの仕組上、動作を制限したり競合する機能が生じるのは納得していますが、今まで普通に使えていた機能やアプリが使えなった際のトラブルシュートは以下の通りやり方を考えたほうがいいかもしれません。
・root化して何か新しいアプリや機能を追加した結果動作が安定しない場合は、まず全てのXposedモジュールを無効化して動作が正常に戻るか確認する。
・正常に動作することを確認出来たら、まずは自分のマストアプリから順に復活させて動作を確認していく。その後必要な順番で徐々に有効化する。
・もしXposedモジュール全無効化以後も動作がおかしい場合はXposedが悪さをしていない可能性があるので他のアプリも疑ってみる。

ま、最後のまとめとして、こういう不具合も含めてroot化した端末は自分の責任で動作を確認する必要があるということです(ま、普通のアプリでの不具合でもキャリアのショップに持って行ってもアテにはならないけどね)。

2015年5月9日土曜日

BLUL不可能なAndroid端末でモジュールを作成する方法(その2)

 今、Xperia Z3(D6653)を使用しています。
 入手後はKitkat(4.4.4)であったため、Androplusカーネルからcpufreqモジュールのソースをダウンロードして以前使用していたSO-02Eで作成したソースとのマージを行って使用していました(SmartassH3はZ3のカーネルではearlysuspend設定が無効化されているためそのままではコンパイル不可能)。
 先日Lollipop(5.0.2)が降ってきた際に再度カーネルモジュールを作成しようと思いましたが、以前記載した方法ではvermagic対応が出来ませんでした。(MakefileのEXTRAVERSIONに指定文字列を入力したが、その後ろに"-perf"と付けられてしまった)。
 また、新しいカーネルダウンロード方法(この方法なら場合によっては複数の機種で同一のソースツリーを管理可能)が分かったので、再度まとめてみることにします。

1.カーネルソースのダウンロード方法

以前のブログで紹介したdeveloper worldからダウンロードする方法以外に、最近Githubで直接ダウンロードする方法が追加されましたのでこちらを紹介します。
git clone https://github.com/sonyxperiadev/kernel-copyleft
cd kernel-copyleft
git branch -r
git checkout <branch-name>
まず現在のgithub.comに登録されているsonyのkernelリポジトリを自分のPCに複写します(1行目)。
 次に複写したリポジトリ内部に入り(2行目)、全ブランチ名を表示させます(3行目)。
 ちなみに現在有効+使用中のブランチを表示させるにはgit branchと入力します。このコマンドで行頭に*マークが付いているものが現在使用中のブランチです。
 最後に自分がカーネルメイクしたいブランチを4行目のコマンドで有効化します。この時<branch-name>で指定するブランチ名はgit branch -rで表示したブランチ名一覧から先頭の"origin/"を省いたものです。

2.vermagicの指定方法

  以前紹介した方法ではうまく動かないことがありました。ちょっとググってみましたが、以下の方法がうまく動作したのでこれを紹介します(http://forum.xda-developers.com/showthread.php?t=2495152)。
 上記のリンクの If you want use automaticaly this vermagic, you can modify into the custom kernel this file :に書かれている通り include/config/kernel.release を開き、実機のカーネルバージョンで調べた内容を記載して下さい。
 その後、カーネルのビルドを行い、ストックカーネルで生成されたモジュール(例えば drivers/misc/tspp.ko など)が希望のvermagicを所有していることを確認して下さい。
 もしkernel.releaseファイルが無ければ、touchコマンドやエディタで新規作成して保存するといいでしょう。この方法でもvermagicがうまく動作しない場合は以前に細工したMakefileが悪さしている可能性もあるかもしれませんので、EXTRAVERSIONの記述は消して再実行をお勧めします。
 結局、.configのCONFIG_LOCALVERSIONとMakefileのEXTRAVERSIONが重なる場合があるときちんとバージョン情報が入らないようです。
 実際にコンパイルされる際に付けられるカーネルのバージョンはinclude/config/kernel.releaseファイルに書き込まれるのですが、これはMakefileで生成されるファイルで、記載を見た限りでは $EXTRAVERSIONの後ろに CONFIG_LOCALVERSIONが書込される構造となっています。
 例えば$EXTRAVERSIONに-perf-hogehogeと書き、.configのCONFIG_LOCALVERSIONにストックカーネルのソースコードのように-perfと書き込まれていた場合はkernel.releaseファイルの内容は-perf-hogehoge-perfとなります。
 これを避けるためには.configの_LOCALVERSIONかMakefileのEXTRAVERSIONのどちらかにvermagic関連の記述を統一する必要があります。

2015年3月29日日曜日

Xperiaで機種変更の際のデータ・アプリの移行を行う

現状Androidが唯一iPhoneに最も劣っていると言わざるを得ない部分、それはデータの一元性ではないかと思います。
iPhoneの場合、よくも悪くもiTunesに全てのデータが一元管理されているため、これを使えば機種変更時も自動的に復元可能なようですね(使ったことが無いため詳細は不明です)。
Androidの場合、実は今回で移行2回目ですがちゃんとした方法がよく分かっていなかったので、自分なりにこれで復元できたというやり方を記載します。
今回はroot不要のパターンで記載します。

1.カメラ映像・音楽データなどを移行する

Sonyが提供するXperia Transferが使用できます。基本的にはこちらに記載の通りでOKですが、一応補足しておきます。
  • 移行元のスマホにGooglePlayでこのアプリをインストールし、抽出作業までを事前に行っておきます。
  • 移行元スマホでの抽出作業が終了したら、PCにインストール済みの「PC Companion」でXperia Transferを起動します。起動方法はPC Companionを起動した状態で移行先のXperiaを接続すると自動的に「Xperia Transfer」が表示されます。
  • 起動後、移行元のスマホの情報と移行したいデータの種別を聞かれるので、ダイアログに答えて移行元スマホを接続します。
  • 移行元スマホからデータを自動的に吸い込みが完了したら、スマホを交換するようメッセージが表示されますので、移行先のXperiaを差します。
  • エラーがでなかったらこれで移行が完了していると思います。
この方法でちょっとだけうーんと思うところとしては移行元のスマホにSDカードが刺されている場合は、その内部のデータも親切に移行はしてくれるのですが、自分のように大量に音楽データを入れている場合は移行先のXperiaにSDカードの挿入がない場合は容量が足りないとメッセージが出ました。
 この場合は音楽データのみ移行しなければいいんですが、ちょっとだけメンドクセって思いますよね。

2.アプリを移行する

アプリを移行する場合、root不要ならばheliumが便利だと思います。
 ただし、heliumはXperiaのようにPTPが標準でOFFにされているスマホの場合正常に接続されない場合があります。この際はPCにAndroidSDKをインストールしておき、スマホをadb shellで事前に接続しておけば回避できます(これはheliumの仕組みとして裏でadb  backup を使用しているため)。
  • 移行元の端末でheliumを立ち上げ、バックアップを行います。root取得済みの端末はPCとの接続は不要ですが、未取得端末はPCにheliumアプリのインストールが必要になります。私はChromeアプリが便利なのではないかと思います。
  • バックアップの際、「アプリデータのみ(最少のバックアップ)」に付いているチェックボックスを外すことをお勧めします。何故かと言うと、このオプションを有効化するとお分かりの通りアプリデータしかバックアップされません。今回はアプリごとの移行がしたいのだからチェックボックスは無効が正解です。
  • 出来れば全部のアプリをバックアップしたほうがいいでしょう。ただし、ユーザアプリでも移行後の端末で重複するものがありますので、そういうものはリストアの際にチェックボックスを外しましょう。
  • 選択後、バックアップボタンを押すとバックアップ先を選択できます。通常は内部フラッシュにバックアップし、バックアップ完了後にFileCommanderなどでSDカードに複写するといいでしょう(フラッシュ内部のcarbonディレクトリごと複写します)。
  • SDカードを新しい端末に付替し、新しい端末にheliumをインストール後にこれを起動します。
  • helium起動後、リストアを選択してリストアしたいアプリを選択します。SDカードのcarbonフォルダを消さない限り未リストアアプリをあとで復元することは可能なので、慎重に復元しましょう(新しい端末に同じアプリがあった場合不具合が出る可能性があるため)。
正直、ホームでフォルダを作成している場合、サードパーテイのホームアプリの方が復元できますよね。ここだけがXperiaホームを使用した場合の不満です。
**画像は後で貼ります。

2015年2月15日日曜日

自撮り棒からフォーンプラグのリモコン制御を調べてみる

 私の住んでいる北海道の地方都市には近年アジアからの観光客が多数来訪しています。特に南方の香港と台湾の方々は冬期になるとよく見かけます。
 そんな彼らは最近自撮り棒を持参していることがよくあります。要は黒板を示すときの延長可能なスティックの先端にスマホを取付可能な構造なのですが、Xperiaの場合は棒の手元のシャッターボタンが動作しないという話があるのでちょっと調べてみました。

1.自撮り棒(有線版)のシャッター制御

フォーンプラグ(イヤホンプラグ)にジャックを差し込んで有線制御するタイプの自撮り棒でXperiaでの動作不能の原因はカメラアプリが標準ではボリウム調整ボタンでズームアップ・ダウンに設定されているためです。
 これはカメラアプリの「音声キー設定」で「シャッター」に設定変更すれば動作します。ま、ズームアップはスワイプで制御しましょう。

2.フォーンプラグでのリモコン制御方法

4極フォーンプラグでマイクが付属されており、さらに3〜4個のボタンが付いているものがあります。最近の4極プラグはCTIAという規格(以前自分が使用していたXperia arcはOMTPという別規格だった)なのは知っていたのですが、このボタンがどのような回路で制御されているかちょっと調べたので記録に残します。
 Androidの場合はWired audio headset specificationで記載のとおりでした。要は再生ボタンはマイクとGNDをそのままショート、240Ωの抵抗値の場合はボリウム+、470Ωの抵抗値の場合はボリウム-制御になるということですね(おまけになりますがボイスコマンド制御は135Ω抵抗値とも書いてます)。

3.自撮り棒用撮影ボタンの作成・入手

 買ったほうが安いと思いますが、もし自分で作るならボタン押し下げでボリウム+と同じ抵抗値になる様に作れば良いと思います。自作するなら、リモコン制御用の中継線を作ると思いますが、どっかに売ってないかなぁってamazon辺り見ていたら有りますね。ただし音が悪くなるとかの書込を見る限りではあまりメリット無いかなぁ。

4.おまけ 4極プラグでの制御について
 2項でも記載しましたが、最近4極プラグに3ボタンのイヤホンが発売されています。店頭での視聴時にボタンアサインが正常に動かない事例があったので、これについておまけを記載したいと思います。
 上記の Wired audio headset specification で記載の内容を参考に治具を作成してみましたが、GNDはそのまま接続しさらにMicも1kΩ以上の抵抗で常時接続状態にしておかないとフォーンプラグは正常に動作しません。
 Micに対して並列の抵抗+スイッチが押された際にMic端子への合成抵抗が上記0・135・240・470(±1%)Ωの際にそれぞれのコマンドを認識するということのようです。今回視聴したイヤホン(ゼンハイザーのMomentum In-Earでした)では真ん中のボタン(Play/Pause/Hook?)がVol-Upとして認識されており、抵抗値があるのかもしれません。

2015年2月3日火曜日

MVNOでドコモから逃げる算段をする(GPS篇)

10年以上ドコモを使ってきたけど、スマートフォンからは迷走が続いてるような気がする。
それ以前は護送船団方式を取らないと自分たちの実現したいサービスを均一に保てないのは当然だったと思うけど、今のスマートフォン戦略は色んな意味で私の望む方向性とは違う。

  • 昔のメーカ製PCじゃないんだからプリインアプリをてんこ盛りにしないで欲しい(しかもバッテリドレインやメモリ大量消費・バグ満載のオマケ付き)。
    特にドコモ専用のホームアプリは不要だと思う。
  • キャリア販売店の保障は要らない。端末メーカからのハードウェア保障は欲しい。
    自分のように端末を弄りたい人間にとってはドコモの端末保障は不要。
    (わかってやっているのだから逃げ道まで塞がないで欲しい)
  • インフラ整備は確かに投資が厳しいのは非常によく分かるのだが、今の料金体系は正直高過ぎと感じる。
    家族3人分で新しいカケホーダイ+パケットシェアパックの見積もりを取ったが、現状より月9千円高くなった(そのうち2台分はパケットを使用していない契約からシェアパックに切替なので高くなるのはわかるとしても)。
というわけで、今まではお世話になったり我慢して使ってきたけど、MVNOという便利な仕組みが出来てキャリアの縛りは不要になってきたので、現状使用しているSO-02Eをそのまま移行する場合はどのようなデメリットが出るかをざっと考えてみた。
あ、あえて言うけど他のキャリア2社との契約はありえない。ドコモと同じく端末の縛りがあるのが一番の理由だけどそれ以外も以下の通り。
  • KDDI:CDMA-Oneの頃の交換網接続にかかる時間が遅過ぎのイメージがあったり、結局万年2位の染み付いたようなプロモのやり方(様子見後追いで同様のサービスを派手に盛り上げようとする態度)が嫌い
  • ソフトバンク:商売は上手だと思うけど、企業倫理的に気に食わない。ゴリ押しと必要性で900MHz帯域を整備出来たのはいいけど、その皺寄せを保守受託先や施工会社に押し付けたのは知ってるぞ。
それにドコモのスマホなのでMVNOで他社キャリアへ乗り換えても電波的にメリットはないから、自ずとドコモ系のMVNOとなる。という訳で以下でMVNO化してサービスが低下しそうな項目を挙げてみた。
  • 電子メール:キャリア独自のものは使えない。もともとそんなに使っていなかったので問題なし。
  • ネットワーク速度:現状はXiのパケホーダイダブルのため、普段はモバイルネットワーク常時無効であった。MVNO化してパケットが使えるのならば通信速度が落ちてもサービスは向上したので問題なし。
  • Felica:ひとつの問題点。ドコモのサービスに直結しているものはどうしようもないだろう(iDとかは使ってないので問題なし)。
    Suicaとかはドコモのサーバとは関係なく独立しているようなので動くようだ。
    正直交通系のうち、使いそうなのは航空会社のモノだけだし、普段は使わないので実害はなさそうだ。
  • GPS:今回の最大の問題点。とは言っても全く使えなくなるわけではない。ColdStartの時に非常に現在値表示までに時間を要するだけ。
という訳で今回はMVNOで問題となっているGPSの件、どうやったら解決できるか考察してみた。

1)問題となるGPSの接続について

 GPSを使用する場合、衛星からすぐに情報自体は受信しているのですが、それが位置情報となるには手順を踏む必要があるようです。
 初期化状態で受信する際はColdStartと言われる手順で衛星の位置情報を収集する必要があります。
 一度位置情報を確立したあとでは、WarmStartHotStartという手順で再測位を高速化可能なのですが、要はColdStart時に出来るだけ測位を早くする仕組みが(A-GPS)現在のスマホは内蔵されています。方法は以下の2種類あるようです。
  • SUPL 通信キャリアが提供するSUPLサーバより補正情報を受信する
  • GPSチップ独自規格 SUPLを使用出来ない環境でも同様のサービスを提供する
 ただし、ドコモのスマホ内部設定ではSUPLにドコモのサーバを指定しその接続にはSPモード(ドコモ内部の通信網)を使用するため、MVNOに移行した端末(普段モバイルネットワークを無効にした端末も)はColdStart時の接続確立に非常に時間がかかります。
 ちなみにSO-02EにはGPSチップ独自規格としてQualcommのgpsOneXTRAが使用できるようですが、これもGPSチップドライバのハードコードで機能自体を無効化されているようです。
 ちなみにMVNOによるGPSの動作に関する詳細はこちらを読むと非常にわかりやすい。MVNOの代表格とも言えるIIJの方が検証した内容なので非常によくまとまっているし、信頼度は高いです。

という訳で以下の通り修正が必要なようです。

2)アプリで何とかする方法

先に紹介したIIJの資料によるとGPS Status and Toolbox を使用すると、直接GPSデバイスドライバへAPIを叩いてA-GPSデータを取得するようです(多分この場合はSO-02Eの場合はgpsOneXTRAのサーバへ問い合わせするのでは?)。
 たしかにこの方法ならインターネット接続さえされていればA-GPS情報を取得可能でしょうし、測位終了後別なアプリを開けばスムーズに使えると思います。
 実際このアプリは常用させて頂いております。現在補足中の衛星を全部表示してくれるため非常に見やすいし、自分の場合はモバイルネットワークを常時切りのためSUPLは取得出来なかったので...。

3)gps.confの書換とルート証明書のインストール

 /system/etc/gps.conf がGPSの設定ファイルです。現状のドコモのスマホの場合は大概以下のとおり記載されているので、これを書換えます(要はSUPLはGoogleのサーバを使用し、gpsOneXTRAの設定を有効化、NTPサーバを日本に変更する)。
変更前(対象箇所のみ抜粋)
SUPL_HOST=dcm-supl.com
SUPL_PORT=7275
SUPL_VER=0x20000

#XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
#XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
#XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

NTP_SERVER=time.gpsonextra.net
変更後
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_SECURE_PORT=7278
SUPL_NO_SECURE_PORT=3425
SUPL_TLS_CERT=/etc/SuplRootCert

AGPS=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

NTP_SERVER=ntp.nict.jp
NTP_SERVER=jp.pool.ntp.org
NTP_SERVER=0.jp.pool.ntp.org
NTP_SERVER=1.jp.pool.ntp.org
NTP_SERVER=2.jp.pool.ntp.org
NTP_SERVER=3.jp.pool.ntp.org
次に以下のサイトを参考にHTTPSでSUPLを接続する際のSSLルート証明書SuplRootCertを作成します。これは自分のPCの内部でコマンドを実行し、作成します。
wget https://www.geotrust.com/resources/root_certificates/certificates/GeoTrust_Global_CA.pem
openssl x509 -inform PEM -in GeoTrust_Global_CA.pem -outform DER -out SuplRootCert
作成・修正したgps.confとSuplRootCertは実機の/system/etcに複写します。念のため、元のgps.confのバックアップは保存して下さい。

4)ドコモ版ではないGPSドライバをインストール

海外版のC6603のftfファイルをダウンロード後、system.sinを抜き出してその中から/system/lib/hw/gps.default.soを取り出します(ここで前日に書いたftfファイルへのアクセス方法が必要になる)。
 あとは自分の端末の/system/lib/hw/gps.default.soと抽出したものを取り替える。


Linux Mintでftfファイルの中身を見る方法(出来るだけシェルは使用しない)

変態と言われるかもしれないが、自分のメイン環境はLinux Mintです。
PC CompanionのようにどうしてもWindowsでなければ動かない環境時は常にこちらがメインになっております。
という訳で今回、ftfからファイルを取り出す方法をLinux Mintで出来るだけシェルを使わずに行ってみました。


1)ftfファイルから希望のsinファイルの抽出


 アーカイブマネージャを起動し、ftfファイルを読み込みます(ftfファイルの実体はzipファイルです)。
 希望のsinファイルを選択し、「展開」ボタンを押し保存します。

アーカイブマネージャによるftfファイルの展開


2)sinファイルからext4ファイルを抽出


 flashtoolを起動し、「Tools->Sin Editor」でSin Editorのダイアログを表示させます。
 ダイアログの"..."で操作対象のsinファイルを指定し、"Extract data"を押してしばし待つとext4を拡張子にしたext4形式のイメージファイルが生成されます。
flashtoolの初画面
Sin Editorのダイアログ




3)ext4イメージファイルをマウント


 Linux Mint(Ubuntu Linux)の場合、"gnome-disk-image-mounter"というものがインストールされています。これだけは標準ではシェルスクリプトでコマンドを入れないとでませんが、起動後にイメージファイルを選択するとCinammonのウィンドウ左側に指定したイメージがマウントされているのがわかるかと思います。

 なお、"/usr/share/applications/gnome-disk-image-mounter.desktop" ファイルを編集し、"NoDisplay=true"をコメントアウトすると、Cinammonのメインメニュー最上部にあるテキストボックスに"disk"と入力するとディスクイメージマウンターが表示されます。

2015年1月31日土曜日

(Xperia)ブートループ化した際の復活の呪文

 散々カーネルモジュールとかいじっているのに、実はinit.dが正常に動いていませんでした(原因はGoogle PlayでダウンロードしたBusyboxがrun-parts実行中にセグメンテーションフォルトで停止していた)。
 原因が判明したのはいいんですが、その際にどこかのファイルを壊したのか再起動後にSONYのロゴ表示を繰り返す...
 という訳で備忘録を兼ねて、ブートループになった際の復活方法について記載します。

1.PC Companionをインストールする

以前は端末のアップデートのみ可能なUpdateServiceというアプリが提供されていましたが、投稿時はPC Companionがその役割(というか、その中のSupport Zone)を行います。
PC Companionはそれ以外にもそれなりに使えるアプリが詰まっていますので予めPCに入れておくことをお薦めします。

2.SupportZoneを起動する

PC Companionを起動し、ダイアログの一番左にあるSupport Zoneのボタンを押して起動します。この時点でSupport ZoneをPC内部にインストールしていない場合は自動的にインストール後に起動します。
ここから先は具体的に記載しようと思いましたが、こちらのガイドがわかりやすいのでソフトウェアアップデートに失敗した場合はどうすれば良いでしょうか?をそのまま載せちゃいます。
【5】のラジオボタンはまずは「現在の携帯電話/タブレットのソフトウェアを再インストールする」を使ってみましょう。これで修復出来ない場合は諦めて「現在の携帯電話/タブレットのソフトウェアを修復する」を試してみればよいでしょう。

後程、flashtoolでルート取り直しを行った際に思い出したのですが、SupportZoneで行っているこの修復方法って、flashtoolでの端末flashと全く同じですね。慣れればflashtoolの方が便利かもしれないですね。

あともう一つSupport Zoneを入れておくと便利なこと、自分のPCの中でflashtool向けのftfファイルを生成できます。世の中便利なものでftfファイルをインターネットダウンロード出来るサイトはありますが、アップデート公開直後にまだftfファイルが公開されていない場合は自分で作る必要があります。この時にftfファイルを作るための素がSupport Zoneのフォルダにキャッシュのように残っています。

つか、今回はrootとっている人なら誰でもわかるような知識だけど、Sony mobileやキャリアに迷惑かけないために是非知っておくべき知識でした。