題:
訪問logcat是否需要root用戶?
Wulfbane
2010-09-14 01:38:19 UTC
view on stackexchange narkive permalink

我的設備已經植根,這就是為什麼我要問這個問題。

您是否需要root才能監視電話上的logcat流?如果我在電話的終端中運行logcat命令,那行得通嗎?

七 答案:
#1
+16
GAThrawn
2011-03-22 19:46:54 UTC
view on stackexchange narkive permalink

這些在Market中的免費應用程序聲稱能夠顯示您的logcat,並且沒有提及root。應該只花幾分鐘時間嘗試一下:

編輯:感謝@mente提醒我,這些應用程序將只允許您在舊版Android中查看完整的日誌文件。 Android 4.1圍繞日誌文件引入了新的安全模型,這意味著應用程序只能讀取自己的日誌文件和日誌文件條目,而無法讀取由系統或其他應用程序編寫的日誌文件條目。

但是仍然存在應用程序用戶生成應用程序最近的日誌條目的日誌文件以發送給開發人員的方式,以及電話所有者授予權限以允許應用程序在沒有完整root用戶的情況下讀取日誌文件,這是一種方式使用ADB命令,不幸的是,它使大多數普通電話用戶無法使用它。

如果您希望用戶為您提供調試信息,則可以讓他們生成錯誤報告時要用力+調低音量+調高音量,其中包括日誌和許多其他數據,並自動調出其電子郵件應用程序以將其全部發送出去(加上屏幕截圖)。我們只是在討論我們也應該有一種更簡單的方式來生成這些內容,我將考慮在設置應用程序中添加一些內容。

我也已經開始引入的概念”開發”權限,即讀取日誌的類別。這允許該應用請求權限,但不能在安裝時獲取它。但是,安裝後,您可以使用adb shell命令授予它。稍後,我希望在系統中有一個UI可以執行此操作,但是我們將暫緩執行該操作,以防止出現這種情況。

摘錄摘自Android框架工程師Dianne Hackborn在 Google網上論壇上的帖子。我的重點。

提到的授予應用程序讀取日誌權限的ADB命令是:

  adb shell pm grant <pkg> android.permission.READ_LOGS  

這設置應該可以在應用程序的重啟和升級後倖免(但不能卸載/重新安裝)。

從Android 4.1開始,您需要具有root訪問權限才能讀取其他應用程序日誌。 CatLog開發人員發布了[說明](http://nolanlawson.com/2012/09/02/catlog-jives-with-jelly-bean-goes-open-source/)。假設這些應用程序適用於<4.1版本
此快捷方式在我的Android 4.1.2上不起作用
我創建了一個實用程序來從PC收集日誌:https://gist.github.com/hrj/5983971
#2
+4
Amanda
2011-03-22 01:25:45 UTC
view on stackexchange narkive permalink

使用Android SDK運行 adb logcat 時無需紮根手機,但我只是在 Terminal Emulator中對其進行了測試,我確實必須成為root用戶(使用 su 命令-我的手機已被植根)以在手機的終端上運行logcat。

是的:如果您的手機具有root用戶,則可以從手機的終端運行logcat。

#3
+1
Eric Mill
2010-09-14 04:32:44 UTC
view on stackexchange narkive permalink

否,您不需要root即可獲取logcat信息。

為此,您可能要下載Android SDK並使用隨帶的adb工具運行“ adb logcat” SDK。另外,您可以安裝ADT Eclipse插件並使用其方便的流式Logcat查看器。

我想通過電話而不是使用SDK的遠程計算機執行此操作
#4
+1
Iravanchi
2011-12-31 03:28:46 UTC
view on stackexchange narkive permalink

否,您不需要root即可訪問logcat。我的設備(三星Galaxy Note,帶有備用ROM的Gingerbread 2.3.6)尚未植根(尚未!),並且我已經使用以下方法訪問設備上的日誌:

  • CatLog應用
  • aLogcat應用
  • 已激活SSHDroid應用,並使用SSH客戶端連接到設備終端
  • 使用Android SDK並運行 adb logcat

但是,終端應用程序不允許您運行logcat,並給您“權限被拒絕”。我不確定為什麼。

是的,在Gingerbread上...但是今天的Android **確實需要root用戶。
#5
+1
atomontage
2013-04-29 20:35:22 UTC
view on stackexchange narkive permalink

似乎如果沒有root用戶,您將無法從Terminal Emulator運行logcat。在這種情況下,您必須先su。 AFAIK,它來自Android權限:終端仿真器根本沒有足夠的權限來查看設備的日誌。因此,系統會顯示“權限被拒絕”。

另一方面,正如其他人所說,有很多應用可以讓您查看設備日誌,因為它們只是請求權限。

#6
  0
Bill Best
2010-09-14 01:43:30 UTC
view on stackexchange narkive permalink

應用程序 Android系統信息能夠將日誌信息輸出到屏幕,據我所知,該信息與logcat吐出的日誌信息相同。

您是否有該應用程序的鏈接,我在市場中找不到?
@GAThrawn如果您仍然感興趣,請訪問:[首頁](http://doandroidsdreamofelectricsheep.wordpress.com/2010/03/11/android-system-info/)和[Google Play商店](https://play.google .com / store / apps / details?id = com.electricsheep.asi&hl = zh-CN鏈接。
#7
  0
t0mm13b
2012-07-30 00:17:32 UTC
view on stackexchange narkive permalink

Logcat不需要root。簡單(Simples)–它是針對不同Android版本的事實上的標準,無論您是否紮根,它都是Android的一部分,並且是診斷問題的標準方法,例如-安裝應用程序,應用程序強制關閉,您向該應用程序的開發人員抱怨,無論您是否紮根,開發人員都會要求“通過logcat發送”的機會很大!

aLogCat是一種收集信息的方式,請記住,如果您計劃將其以一定的頻率登錄,則可以選擇登錄到網頁佈局或純文本。每隔15分鐘,SD卡就會很快填滿。

另一方面,logcat的使用將取決於內核的存儲量-在ROM使用的任何內核中,可以使用適當的定義在 drivers / staging / android / logger.c 中找到來自內核級別的日誌記錄源,該日誌源為logcat服務保留內存。

>

DEFINE_LOGGER_DEVICE(log_main,LOGGER_LOG_MAIN,64 * 1024)DEFINE_LOGGER_DEVICE(log_events,LOGGER_LOG_EVENTS,256 * 1024)DEFINE_LOGGER_DEVICE(log_radio,LOGGER_LOG_LOG_DEV_LOG,_LOG_DEV_SYS,64 * 1024)DEFINE_LOGGER_DEVICE(64 * 1024) >

同樣,里程會有所不同,此類ROM的某些開發人員將選擇最小化消耗以減少內存開銷。 ..



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...