Androidの古いバージョンでスクリーンショットをキャプチャするために根付いた電話が必要なのはなぜですか? -- screenshots フィールド android 関連 問題

Why do we need a rooted phone to capture screenshots on older versions of Android?


21
vote

問題

日本語

私は私の電話のスクリーンショットをキャプチャするために、すべてのスクリーンショットアプリケーションが必要な電話をかけているすべてのスクリーンショットアプリケーションを必要とします。なぜこれはそうですか? Windows用のシンプルなスクリーンショットアプリケーションを使用できないのはなぜですか?

英語

I realize in order to capture screenshots of my phone, all screenshot applications require I have a rooted phone. Why is this so? Why can't we have a simple screenshot application for Android, just like we have for Windows?

  
   
   

回答リスト

17
 
vote
vote
ベストアンサー
 

答えはかなり単純です、それは許可問題です。

Androidは、a href="http://en.wikipedia.org/wiki/framebuffer">フレームバッファのvideoディスプレイのものを使用します。フレームバッファは/ dev / graphics / fb0にあります。この「ファイル」は、基本的に、ユーザインタフェースの変更が発生したときに書き込むストリームで、~2フレームの画面表示を含みます。

フレームバッファファイルの権限は<コード> 99887766665444331 です。最後の「グループ」には3 " - "があります。それは基本的にあなたが<コード> 99887766654332 (rootである)ではない場合は、そのファイルから読む権限がありません。

スクリーンショットを取ることができるシステムがインストールされたアプリケーションがあった場合、フレームバッファから読み取る権限があるでしょう。どちらを信じています、Motorola Xoomがスクリーンショットを取ることができる方法です。システムアプリとして、デバイスにアプリケーションがインストールされています。

開発者のためのフレームバッファの読み取りは実際には簡単です。

 

The answer is rather simple, it's a permissions issue.

Android uses what is called a framebuffer for the video display. The framebuffer is located at /dev/graphics/fb0. this "file", which is basically a stream that the device writes to when changes in the user interface occur, contains ~2 frames of the screen display.

The permissions on the framebuffer file is rw- rw- ---. Note that the last "group" has 3 "-"'s. That basically means that if you are not the owner (which is root) you do not have permission to even read from that file.

If there was a system installed application, that could take screenshots, it would have permission to read from the framebuffer. Which, I believe, is how the Motorola Xoom is able to take screenshots. It has an application installed on the device, as a system app.

Reading the framebuffer, for a developer, is actually simple, if they have access to read it.

 
 
       
       
7
 
vote

Androidのセキュリティのために、各アプリからのすべてのアプリを区切ることに焦点を当てているため、悪意のあるアプリが信頼できるアプリでデータを盗むのを防ぐために、アプリが他のアプリのスクリーンショットを取ることを可能にすることはできません。

写真をテキストに翻訳するためにOCRのようなものをすることができることを考えてください、私はこれを行うことができる私の電話で少なくとも4つのアプリを考えることができます、プライムの例はGoogle Goggles Ocring Bookのタイトルです。オカリングしてから、テキストのブロックを外部言語で翻訳します。今すぐあなたのアプリのいくつのアプリが表示されていないというスクリーンにテキストを表示するかどうかを考えて、私の携帯電話に私の携帯電話にパスワードのデータベースアプリがあります。さまざまなシステムのパスワードの暗号化データベースがあります。悪意のあるスクリーンセーバーアプリそのパスワードアプリが実行されるまで、画面の写真を表示してから、その後OCRを実行して送信します。連絡先データベースまたはブラウザの履歴、またはチャットログなどのアプリの権限を与えていなくても、連絡先リストのすべてのものについても同じことができます。これはあなたのスクリーンへのアクセスを悪用することができる1つの方法です。

スクリーンショットを普遍的にするためには、OS(すべてのデータとすでに信頼する)が必要です。これが、スクリーンショット機能を内蔵している電話機では、別のアプリとしてではなく、システムの一部として追加されています。

あなたがあなたの携帯電話を根ざしてスクリーンショットを取ることを許可した場合、あなたはあなたがそのアプリができることを暗黙的に信頼することが、他のアプリとそのデータとのアクセスや干渉を含む、システムができることをすべて実行できるようにすることを効果的に言っています。そして、あなたはそのアクセスを悪用しないことを完全に信頼します。これは、Androidがシステム/ OSを実行する以外の何を許可してもらうことではありません。

 

Due to Android's security focus on separating all apps from each others' data, to prevent malicious apps from stealing or altering data in apps that you trust, they can't allow an app to take screenshots of other apps.

Think about how many of your apps are able to do things like OCR to translate pictures into text, I can think of at least four apps on my phone that can do this, prime example is Google Goggles OCRing book titles, and also OCRing and then translating blocks of text in foreign languages. Now think about how many of your apps put text on screen that you wouldn't want an untrustworthy app to see, I have a password database app on my phone with an encrypted database of my passwords for various systems, a malicious screensaver app could wait until that password app's running, take a picture of the screen with the login details on it, then OCR them and send them off. It could also do the same for everything in your Contacts list, even if you don't give the app permission to your Contacts database, or your browser history, or chat logs and so on. This is only one way that it could abuse access to your screen.

This is why for screenshotting to be universal it needs to be in the OS (which you already trust with all your data). This is why on phones that do have the screen shot function built-in it's been added as part of the system, not as a separate app.

If you root your phone and allow an app to take screenshots, then you are effectively saying that you implicitly trust that app to be able to do everything that the system can do, including accessing and interfering with other apps and their data, and that you totally trust it not to abuse that access. That's not something that Android's ever going to allow anything except the System/OS to do.

 
 
6
 
vote

短回答:1)コンピュータが複雑で、2)スクリーンショット機能は実際にはあまり簡単ではありません(プログラマの場合は、ユーザーには使用できません)。

すなわち、スクリーンショットを撮るには、スクリーンショットプロセスがOSの内部にかなり深くフックし、それを少しずつ混乱させ、再び不安定にします。 Androidは(Windowsに見られた「ボルトめまい」の「ボルトめっきり」とは対照的に、いくつかのセキュリティ障壁でスクリーンショットの旅行を取っています。これらは迂回することができますが、現在実用的な方法(穴の創造の短い方法 - およびカーネル内の潜在的な脆弱性の短い)は、制限の対象とはならないすべての強力なルートアカウントを使用することです。

 

Short answer: Because 1) computers are Complicated and 2) the screenshot functionality is actually not very simple (for the programmer, not for the user).

In other words, taking a screenshot requires the screenshotting process to hook pretty deep into the OS internals, mess with them for a bit, and unhook again. Since Android tries to have a built-in security model (as opposed to the "bolted-on afterthought" seen in Windows), taking a screenshot trips on several security barriers. Those can be bypassed, but the only currently practical way (short of creating holes - and potential vulnerabilities - in the kernel) is to use the all-powerful root account, which is not subject to the limitations.

 
 
   
   

関連する質問

0  スクリーンショットが壊れていることがよくあります  ( Screenshots often come out corrupted ) 
私はAndroid 5.0を搭載した最初の世代のMoto G(XT1033)を持っています。 スクリーンショットを取っているときは、スクリーンショットが保存されているメッセージで立ち往生しています。それから私はそれを去る必要があるならば、私はシステムUI プ...

3  ギャラクシーエースで印刷画面を実行するにはどうすればよいですか。  ( How do i perform a print screen on a galaxy ace ) 
私は私のギャラリーを一度に見て、私は誤って画像を印刷することを見ました。私はあなたが私がそれをしたのか知っているかどうか疑問に思いましたか?私の電話はギャラクシーなエースであり、そのためのアプリはありません。それはただ起こった。 ...

154  Androidデバイスでスクリーンショットを撮る方法は?  ( How to take a screenshot with an android device ) 
Androidデバイスのスクリーンショットを取得して画像ファイルとして保存する方法はありますか? ...

9  銀河Sは誤ってスクリーンショットを服用し続けています  ( Galaxy s keeps accidentally taking screenshot ) 
2.2のGalaxy S Backボタンを押しながらスクリーンショットを撮り、ホームボタンを同時にタップします。ただし、バックまたはホームボタンのみをタップするだけで(たくさんしています)。 これは不便ですが、私はスクリーンショットを撮ることがあまり気にし...

0  LAN以外のユーザーとAndroid画面を共有する方法?  ( How to share android screen with users outside lan ) 
私は家から開発者として働いています、そして私は私の上司にAndroidアプリをデモしたいと思います。彼はAndroid携帯電話を持っていないので、私の携帯電話から私のAndroid携帯電話から彼のためのすべてのシナリオをデモからデモする必要があります。 問題は...

4  スクリーンショットのデフォルトの格納場所を変更します  ( Change default storage location of screenshots ) 
カメラの記憶域オプションを変更することができました(例えば、内部ストレージから外部SDまで)。ただし、その設定を変更する方法、またはスクリーンショットが保存されているフォーマットの制御方法はありません。 「スクリーンショット」フォルダを外部ストレージに移動する...

1  Nexus 4でAndroid 4.4.2のスクリーンショットを撮る方法は?  ( How to take a screenshot on android 4 4 2 on a nexus 4 ) 
音量ダウンボタンと電源ボタンを同時に押す必要があることを読み、スクリーンショットを取る。私はこれを何度も試してみました、そして私はそれを働くことができないだけです。ボリュームが低下するほとんどの場合、画面がロックされることがあります。 アップデート:スクリー...

15  私の画面が壊れた、コンピュータ上で私のデバイスの中で何をしているのかを見る方法は?  ( My screen got broken how to see on the computer what im doing in my device ) 
私のAndroidデバイスの画面が壊れていて、私がしていることがわかりません。それが私のデバイスで唯一の間違ったことである、残りは明らかにうまく機能していません。 私のコンピュータに自分のデバイススクリーンを送信する方法はありますか? 私はもう盲目的に働きた...

21  Androidの古いバージョンでスクリーンショットをキャプチャするために根付いた電話が必要なのはなぜですか?  ( Why do we need a rooted phone to capture screenshots on older versions of androi ) 
私は私の電話のスクリーンショットをキャプチャするために、すべてのスクリーンショットアプリケーションが必要な電話をかけているすべてのスクリーンショットアプリケーションを必要とします。なぜこれはそうですか? Windows用のシンプルなスクリーンショットアプリケー...

6  アイスクリームサンドイッチは、ネイティブスクリーンキャプチャをサポートしますか?  ( Does ice cream sandwich support native screen capture ) 
特定のデバイスによって提供されない限り、早期のバージョンのAndroidはネイティブスクリーンキャプチャ機能をサポートしていないか、または根ざしたデバイスを持っているか、またはUSBを介してAndroid SDKとリンクを持っていることを理解しています。しかし...

4  Galaxy S 2.2でスクリーンショットを撮るより良い方法?  ( A better way to take screenshot in galaxy s 2 2 ) 
Froyoが設置されている銀河Sでは、戻るボタンを押しながらホームボタンをタップして、電話機のスクリーンショットを取ることができます。ただし、バックキーを押すと、バックキーを押すと、Backキーを押しながら閉じます。 これを回避する方法はありますか?それは素...

4  私のテキストメッセージのスクリーンショットを撮る方法は?  ( How to take a screen shot of my text messges ) 
私のドロイド料金にスクリーンショットを取る方法を知っていますが、私が常にテキストメッセージの写真を撮るたびに、常にページに進み、写真を撮ります。とてもイライラする。あなたが助ける方法を知っていれば返信してください。 ...

1  通知バーのドロップダウンのスクリーンショットをどのように撮ることができますか?  ( How can i take a screenshot of the notification bar dropdown ) 
通知バーで通知を受けることがあり、私はそれを引き下げてから、スクリーンショットを撮りたいです。私はPowerボタンを押してスクリーンショットを作成し、メニューがシャットダウン、再起動、またはスクリーンショットを作成するように見えます。このポップアップメニューが...

5  DDMS.batの起動エラー: "ADBバージョンの取得に失敗しました:プログラム" adb ":createprocess error = 2、システムは指定されたファイルを見つけることができません"  ( Error launching ddms bat failed to get the adb version cannot run program ad ) 
続こしていますこれらの非常に詳細な手順Motorola Flipside にスクリーンショットを撮る。 99887665544330 を起動するステップ#10に到達すると、このエラーが表示されず、私の電話機は表示されません: C: Program Fil...

3  Androidタブレットの空白のスクリーンショット  ( Blank screenshots on android tablet ) 
<コード> ddms を使用して、携帯電話のスクリーンショットを撮ってうまく機能しますが、タブレットで同じようにしようとすると黒い画像が表示されます。電話はAndroid 2.2を実行しているサムスンインターセプトです。タブレットはCyanogenModを搭...

4  Kindle Fire HDでスクリーンショットを取ることができますか?  ( How can i take a screenshot on a kindle fire hd ) 
Kindle Fire HDの基本的なOSバージョンであるICは、Power Button +ボリュームダウンキーを押してスクリーンショットを取得する標準的な方法をサポートしていると考えました。これは私のためには機能しません。誰かがこれが確かにケースであるか...

1  Samsung S7 Oreeoのアップグレードはスクリーンショット品質を減らしました  ( Samsung s7 oreo upgrade decreased screenshots quality ) 
今週は私のSamsung S7デバイスでOreoアップグレードを行いました。私が今スクリーンショットを取っているとき、ファイルはPNGの代わりにJPGにあり、品質はただひどいです。 私は本当に高品質のスクリーンショットに戻る必要があります、私は自分のウェブサイ...

13  それを応援しなくても私のHTCの伝説をスクリーンショットできますか?  ( Can i screenshot my htc legend without rooting it ) 
私は応援がすべてのものであると言われていますが、現時点では、私はそれを応援せずに私のデバイスをどのくらい拡張できるかを見たいです。 良いことになるものはスクリーンショット機能ですが、 **根本の根拠のみなしでこれを行う市場でのアプリケーションを見つけることはで...

10  AndroidブラウザでWebページ全体のスクリーンショットをキャプチャする方法は?  ( How to capture screenshot of entire webpage in android browser ) 
Webページ全体のスクリーンショットをAndroidブラウザでキャプチャする方法Firefox Addonのヘルプが「FireShot」と呼ばれるFireShot Addonのヘルプを使用してください。 ...

0  隠された写真を削除します  ( Deleting hidden pictures ) 
私のサムスンギャラクシーS3から私のデスクトップに私の写真をダウンロードしたとき、何百ものスクリーンショットの写真のダウンロード。これらはあなたが購入するアプリを選択するようにあなたにあなたにあなたに選択しようとした迷惑なポップアップです。私の携帯電話のピクチ...

3  画面上のアプリケーションを現在のアプリケーションに提示するためのAndroidソフトウェアまたはデバイス  ( Android software or device to present application on screen ) 
まあこれは私の心にやってくるものです、誰もがデータを描くことができる機器やケーブルがあるかどうかを知っているので、Androidアプリケーションのライブとフルスクリーンを提示することが可能です。イベント? 少なくとも存在しない場合は、もちろんプレゼンテーション...

6  スクリーンショットを取ってMMS経由で送信する方法  ( How to take a screen shot and send it via mms ) 
どういうわけか 998877666544337 でGoogleマップのスクリーンショットを取ってからMMSを介して送信しますか? 2.1(根付きではない) ...

1  スクリーンショットを撮るときは、「SDカードにファイルを書くことができません」  ( Cannot write file in sd card when taking a screenshot ) 
私はオプティマスブラックを持っています。 スクリーンショットを撮りようとすると、ノイズが発生します。それから、 cannot write file in SD card と言います。 どのようにしていますか? ...

3  rootなしでflag_secureを無効にする方法は?  ( How to disable flag secure without root ) 
私は特定のアプリでスクリーンショットセキュリティをバイパスする唯一の方法を実現しました。 しかし私は私の携帯電話を根ざしたくありません。 998877666544331 を無効にする方法は、root なしでスクリーンショットセキュリティをバイパスします。 ...

4  Android携帯電話で画面を印刷する方法[重複]  ( How to print screen my application in android phone ) 
この質問はすでにここで回答を持っています 閉じる 8年前> 可能な重複: Android携帯電話でスクリーンショットを取る方法は? Android携帯電話で画面を印刷する方法? ...

関連する質問

0  スクリーンショットが壊れていることがよくあります 
3  ギャラクシーエースで印刷画面を実行するにはどうすればよいですか。 
154  Androidデバイスでスクリーンショットを撮る方法は? 
9  銀河Sは誤ってスクリーンショットを服用し続けています 
0  LAN以外のユーザーとAndroid画面を共有する方法? 
4  スクリーンショットのデフォルトの格納場所を変更します 
1  Nexus 4でAndroid 4.4.2のスクリーンショットを撮る方法は? 
15  私の画面が壊れた、コンピュータ上で私のデバイスの中で何をしているのかを見る方法は? 
21  Androidの古いバージョンでスクリーンショットをキャプチャするために根付いた電話が必要なのはなぜですか? 
6  アイスクリームサンドイッチは、ネイティブスクリーンキャプチャをサポートしますか? 
4  Galaxy S 2.2でスクリーンショットを撮るより良い方法? 
4  私のテキストメッセージのスクリーンショットを撮る方法は? 
1  通知バーのドロップダウンのスクリーンショットをどのように撮ることができますか? 
5  DDMS.batの起動エラー: "ADBバージョンの取得に失敗しました:プログラム" adb ":createprocess error = 2、システムは指定されたファイルを見つけることができません" 
3  Androidタブレットの空白のスクリーンショット 
4  Kindle Fire HDでスクリーンショットを取ることができますか? 
1  Samsung S7 Oreeoのアップグレードはスクリーンショット品質を減らしました 
13  それを応援しなくても私のHTCの伝説をスクリーンショットできますか? 
10  AndroidブラウザでWebページ全体のスクリーンショットをキャプチャする方法は? 
0  隠された写真を削除します 
3  画面上のアプリケーションを現在のアプリケーションに提示するためのAndroidソフトウェアまたはデバイス 
6  スクリーンショットを取ってMMS経由で送信する方法 
1  スクリーンショットを撮るときは、「SDカードにファイルを書くことができません」 
3  rootなしでflag_secureを無効にする方法は? 
4  Android携帯電話で画面を印刷する方法[重複]