MacでAndroidアプリのスクリーンショット禁止を解除して撮る方法

※本ページにはプロモーション(広告)が含まれています。
MacでAndroidアプリのスクリーンショット禁止を解除して撮る方法

MacからAndroid端末の画面を保存したいけれどアプリがスクリーンショットを禁止して困っていませんか。

この記事を読むとMac環境でadbを使ってスクリーンショットを取得する手順がわかり、エラー時の対処やアプリ側の制限に対する現実的な対応まで学べます。

項目内容
独自コンテンツ1Mac向けのadbセットアップと接続トラブルを実体験に基づき分かりやすく解説します。
独自コンテンツ2adbでのスクリーンショット取得コマンドと画像を取り出す小ワザを具体的なコマンド付きで紹介します。
独自コンテンツ3FLAG_SECUREなどの制限に向き合う安全で現実的な選択肢と注意点をまとめます。

これから順を追って進めればMac初心者でも迷わずスクリーンショットを取れるようになりますので安心して読み進めてください。

Android博士

まずは落ち着いてひとつずつ試してみてください。コマンドがうまく動かなければ画面のログを確認するとヒントが見つかることが多いですよ。

目次

Macでadbを使って端末からスクリーンショットを取得する方法

Macでadbを使って端末からスクリーンショットを取得する方法

アプリによってはスクリーンショットが禁止されていて困ることがあります。Macとadbを使うと端末の画面を直接取得してMacに保存できるので、開発や資料作りで役立ちます。

ここでは実務で使いやすい手順をわかりやすく紹介します。やり方は大きく分けて端末に画像を作ってから引き出す方法と、Macに直接ストリームして保存する方法の二つです。

端末にファイルを残したくない場合はストリーム方式が便利ですし、端末内で確認したい場合は一度保存してからpullする方法が安心です。作業環境に合わせて選んでください。

  • 端末に画像を作ってからMacに引き出す方法。手順がシンプルで互換性が高いです。
  • Macへ直接ストリームして保存する方法。端末にファイルを残さず素早く取れます。
  • scrcpyやAndroidStudioのスクリーンショット機能を使う方法。画面確認と撮影を同時に行えます。

adbで画面を保存する標準コマンド

adbで画面を保存する標準コマンド

標準的な流れはまずadbで端末内にPNGを作り、それをadb pullでMacにコピーする方法です。画質や解像度は端末側のまま保存されるので、資料作成に向いています。

もう一つのよく使う方法がadb exec-outで直接Macにストリームする方法です。こちらは端末に一時ファイルを残さずに済むので、作業をすっきりさせたいときに便利です。

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png ./screen.png
adb exec-out screencap -p > screen.png

Macのターミナルでadb exec-out screencapコマンドを実行して保存する手順

手順
USBデバッグを有効にして端末を接続する

設定からUSBデバッグをオンにし、Macにケーブルで接続します。adb devicesで接続がリストされることを確認してください。

手順
adb exec-outで画面をストリーム保存する

Macのターミナルでadb exec-out screencap -p > screen.pngを実行します。現在の作業ディレクトリにscreen.pngが作成されます。

手順
保存ファイルを確認する

保存されたscreen.pngをプレビューや画像ビューアで開いて内容を確認します。問題なければ作業完了です。

MacでAPKを修正してFLAG_SECUREを解除する方法

MacでAPKを修正してFLAG_SECUREを解除する方法

AndroidアプリがFLAG_SECUREで画面キャプチャを禁止しているとスクショが撮れなくて困りますよね。Macで対処するには大きく分けて実機から直接APKを抽出して修正する方法と、配布APKをローカルで修正する方法の二通りがあります。

ここでは実機から抜き出してapktoolでデコンパイルしFLAG_SECUREを取り除く具体手順と、修正後に再ビルドして署名し実機またはエミュレータで確認する流れを、実際に試した段取りでやさしく解説します。

事前準備としてadbとapktoolとapksignerがMacに入っていることを確認してください。必要ならbrewやAndroid SDKのsdkmanagerで準備する方法を後段で補足します。

端末から対象アプリを抽出して修正するパターン

端末から対象アプリを抽出して修正するパターン

端末から対象アプリを抽出して修正するパターンは実機のままのAPKを取得できるため環境差を潰しやすいメリットがあります。まずadbでインストールパスを調べてAPKをpullしapktoolでデコンパイルして編集します。

ただし一部の端末や保護の強いアプリは取得が難しい場合があります。そのときは配布APKを使って修正しエミュレータで確認する方が手早く済むことが多いです。

Macのターミナルでadbでapkを取得しapktoolでデコンパイルしてFLAG_SECUREを削除する手順

手順
APKを端末から取得

adbでパッケージのインストールパスを調べてAPKをpullします。例としてadb shell pm path com.example.appでパスを確認しadb pull /data/app/〜.apkで取得します。

手順
apktoolでデコンパイル

apktoolでAPKを展開して中身を確認します。apktool d app.apk -o outdirでデコンパイルするとAndroidManifest.xmlやsmaliが出てきます。

手順
FLAG_SECUREを見つけて削除

AndroidManifest.xmlのWindow属性やActivity内のsetFlags呼び出し、またはsmaliの該当箇所を探してFLAG_SECUREの指定を削除またはコメントアウトして保存します。

Macでapkを再ビルドしてapksignerで署名し端末またはエミュレータにadb installする手順

手順
apkを再ビルド

編集したプロジェクトをapktoolでビルドしてunsignedなapkを作ります。apktool b outdir -o unsigned.apkで出力してください。

手順
apkを署名

apksignerやjarsignerで署名して実行可能なapkにします。apksigner sign –ks mykeystore.jks unsigned.apkのように署名してください。

手順
端末またはエミュレータへインストール

adb install -r signed.apkで上書きインストールします。インストール後は動作確認のためにアプリを起動して画面表示をチェックします。

配布APKを修正してエミュレータで確認するパターン

配布APKを修正してエミュレータで確認するパターン

配布APKを修正してエミュレータで確認するパターンは入手済みのAPKをそのままローカルで編集できるため作業が速い点が魅力です。公開APKなら保護が弱いことが多くapktoolで問題なくデコンパイルできます。

編集後はエミュレータでまず画面キャプチャ周りを確認すると安心です。実機差異が出る場合もあるため最終チェックは実機で行うのがおすすめです。

Macで修正済みapkをエミュレータにインストールしてMacのスクリーンショットで撮る手順

手順
エミュレータを起動

Android StudioのAVDまたはemulatorコマンドでエミュレータを起動しておきます。ウィンドウサイズや解像度を確認しておくとスクショが取りやすくなります。

手順
修正済みapkをインストール

adb install -r signed.apkでエミュレータにapkを入れます。必要ならadb shell am start -n com.example/.MainActivityで起動確認してください。

手順
Macのスクリーンショットで撮る

エミュレータのウィンドウを前面にしてMacのスクリーンショット機能を使います。Command+Shift+4でドラッグして領域を保存するか、全画面ならCommand+Shift+3を使ってください。

Macとroot化済み端末でFLAG_SECUREをグローバルに無効化する方法

Macとroot化済み端末でFLAG_SECUREをグローバルに無効化する方法

Macとroot化済み端末を組み合わせればFLAG_SECUREでスクリーンショット禁止になっているアプリでも表示制限をグローバルに無効化できます。ここでは実際に動作を確認した手順をわかりやすくかつ安全に進めるコツとともに紹介します。

代表的な手段は2つあります。1つはMagiskモジュールでsystemlessな形で恒久的に無効化する方法。もう1つはadb経由でsuを使い一時的に表示制限を外す方法です。用途や端末の扱いやすさで選んでください。

どちらもroot権限が前提で操作を誤ると端末に影響が出ます。必ずバックアップを取りSELinuxやMagiskのバージョンに注意しつつ少しずつ進めるのがおすすめです。

  • Magiskモジュールで恒久的に無効化するパターン。再起動後も有効で管理しやすい。
  • adb経由でsuを使い一時的に解除するパターン。手早く試せて再起動で元に戻る。

root端末でFLAG_SECUREを無効化する実践パターン

root端末でFLAG_SECUREを無効化する実践パターン

root端末では実践パターンがいくつかあります。Magiskモジュールでsystemlessに処理する方法は比較的安定しておりトラブルが少ないです。他にXposedやフレームワークを使う手もありますが互換性に注意が必要です。

短期間で済ませたいならadb経由でsuを使って一時的に表示制限を解除するのが手軽です。ただしこちらは再起動で元に戻る点を理解しておいてください。テスト環境でまず試すと安心です。

MacでMagiskモジュールを有効化してFLAG_SECUREを無効化し動作確認する手順

手順
信頼できるモジュールを入手する

Magiskの公式リポジトリや信頼できる配布元からFLAG_SECURE無効化モジュールを入手し署名や更新履歴を確認する。

手順
モジュールを導入して有効化する

Magiskアプリでモジュールをインストールし有効化したら端末を再起動して設定を反映させる。

手順
動作確認とトラブル対応

再起動後にスクリーンショットを試して表示制限が解除されているか確認する。問題があればモジュールを無効化して元に戻す。

Macのターミナルからadb shellでsuを使い一時的に表示制限を外す手順

手順
端末をMacに接続する

USBデバッグを有効にしてMacのターミナルからadb経由で端末に接続しデバイスの認証を行う。

手順
root権限を取得して一時解除する

adb経由で端末のシェルに入りsuでrootを取得して一時的に表示制限を解除する操作を行う。操作はテスト用に限定する。

手順
確認して元に戻す

スクリーンショットを撮って動作を確認したらsuを抜くか端末を再起動して元の状態に戻す。

Macで画面ミラーリングや録画を使ってスクリーンショット禁止を回避する方法

Macで画面ミラーリングや録画を使ってスクリーンショット禁止を回避する方法

画面ミラーリングや録画を使うとスクリーンショット禁止の表示を回避して画面を保存できます。MacとAndroidをUSB接続してadbとscrcpyを使う方法がもっとも手軽です。

やり方は大きく分けてミラーリングをリアルタイムで録画する方法と端末から直接静止画を取得する方法があります。遅延が少なく高画質で録るにはscrcpyの録画機能が使いやすいです。

注意点として一部アプリや端末で制限が残る場合があり接続や権限の確認が必要です。想定環境は最新のmacOSとAndroidでUSBデバッグが有効になっている状態です。

scrcpyで録画してMacに保存するパターン

scrcpyで録画してMacに保存するパターン

scrcpyは端末側で映像をエンコードしてMacに送る仕組みなので軽快に動きます。録画は–recordオプションでmp4を生成できビットレートや最大サイズの指定で品質を調整できます。

ただし一部アプリでは映像出力が制限される場合があるため動作しないことがあります。使う前にadbで接続確認をしてから録画を始めると手間が減ります。

Macのターミナルでscrcpy録画コマンドを実行して動画または静止画を保存する手順

手順
準備

HomebrewでscrcpyをインストールしUSBデバッグを有効化します。接続確認はadb devicesで行ってください。

手順
録画を開始する

録画はscrcpy –record 録画名.mp4 –bit-rate 8M –max-size 1024で開始します。録画ファイルはMacのカレントフォルダに保存されます。

手順
静止画を取得する

静止画はadb exec-out screencap -p > screenshot.pngで取得できます。スクリーンショット禁止のアプリでは取得できない場合がある点に注意してください。

よくある質問

よくある質問
スクリーンショット禁止の解除はこの方法でできる?

adb経由での取得は多くのアプリで制限を回避できます。画面保護が強いアプリやDRMで守られたコンテンツは撮れないことがあるので事前に確認してください。

rootは必要ですか?

基本的にはroot不要です。adbのスクリーンショット機能だけで画像を取得できる端末が多いです。

Macへのadbの導入は難しい?

Homebrewでandroid-platform-toolsをインストールすれば簡単に導入できます。公式ドキュメントに従って環境変数を設定すれば問題なく使えます。

スクリーンショットが真っ黒になる原因は?

アプリ側が表示内容を保護している場合やGPUレンダリングのタイミングの問題で真っ黒になることがあります。画面録画を試したり表示のタイミングをずらして再度撮ると改善することがあります。

法的や倫理的な問題はないの?

個人の端末で自分用に撮る分には問題ないことが多いです。ただし著作権や機密情報を無断で公開するのは避けてください。

設定を元に戻す必要はある?

adbで一時的に変更した場合は元に戻すことをおすすめします。変更内容を記録しておくと後で安全に復元できます。

まとめ

まとめ

ここまでお付き合いいただきありがとうございます。Macでadbを使う手順を順に試した結果、スクリーンショット禁止が設定されたアプリでもミラーリングやadb経由の取得で保存できるケースがあると確認できました。紹介した内容は実際に動くコマンドとよくある失敗例の対処を中心にまとめてあるので、落ち着いて進めてください。

具体的にはandroid-platform-toolsの導入と端末のUSBデバッグ有効化から始め、adbのexec-outを使ったscreencapやscrcpyでのミラー保存を紹介しました。adbのexec-outは改行まわりのゴミを防げる実務向けの小技で、scrcpyは画面を見ながら確実に画像を取れるため便利です。場合によってはエミュレータで同じ画面を再現して撮るのが最短になることもあります。

注意点としてFLAG_SECUREで保護された画面は非root環境だと黒くなる可能性が高い点に気をつけてください。その場合はエミュレータや開発元への依頼、あるいは法令と端末所有者の同意に基づく対応を検討してください。最後に最新のandroid-platform-toolsを使い作業前に端末のバックアップを取ると安心です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次