Android có giữ một bản ghi khi nó bắt đầu không?


19

Tôi đang tạo một ứng dụng kiểm soát / trách nhiệm của phụ huynh cho Android. Nó bao gồm một dịch vụ giám sát chạy trong nền và bắt đầu khi điện thoại được khởi động.

Thật không may, tôi đã phát hiện ra rằng khi Android được khởi động ở "Chế độ an toàn", các dịch vụ không được khởi động tự động và vì điều này, ứng dụng của tôi có một lỗ hổng nghiêm trọng.

Trong khi ở chế độ an toàn, web và các ứng dụng khác có thể được khởi động mà không cần dịch vụ giám sát của tôi chạy.

Tôi nghĩ rằng nếu không thể theo dõi hoạt động của ứng dụng khi ở chế độ an toàn thì ít nhất tôi có thể phát hiện ứng dụng của mình nếu điện thoại trước đó ở chế độ an toàn. Sau đó, nó có thể có thể cảnh báo cho phụ huynh hoặc đối tác trách nhiệm?

Android có giữ bất kỳ nhật ký nào không? Hoặc bất kỳ nhật ký khởi động nói chung? Tôi rất cởi mở với các đề xuất và lựa chọn thay thế.


2
Tôi rất hy vọng rằng không có cách nào để làm điều này.
RR

4
Tôi nghĩ rằng điều này không nên được đóng lại. Các nhà phát triển không phải là những người duy nhất có thể quan tâm đến điều này.
RR

Tôi đồng ý với @Richard. Đây không phải là một câu hỏi mã hóa, mà là về cách thức hoạt động của Android.
ale

Câu trả lời:


13

Tôi nghĩ rằng bạn đã bắt được chính mình, trong ngắn hạn, bạn không thể làm gì!

Hãy xem nguồn này giải thích tại sao, cụ thể trong phần này:

Phân vùng hệ thống và chế độ an toàn

Phân vùng hệ thống chứa kernel của Android cũng như các thư viện hệ điều hành, thời gian chạy ứng dụng, khung ứng dụng và ứng dụng. Phân vùng này được đặt thành chỉ đọc. Khi người dùng khởi động thiết bị vào Chế độ an toàn, chỉ có các ứng dụng Android cốt lõi khả dụng. Điều này đảm bảo rằng người dùng có thể khởi động điện thoại của họ vào một môi trường không có phần mềm của bên thứ ba.

Từ khóa không có phần mềm của bên thứ ba

Chỉnh sửa:

Khi Android khởi động, nó sẽ giữ bộ đệm của logcatbộ đệm tạm thời được tìm thấy trong /dev/log. Bộ đệm đó được tái chế khi chạm ngưỡng, rõ ràng, ngưỡng càng lớn, Android càng chậm với việc spam liên tục vào bộ đệm logcat do đó được giữ ở mức tối thiểu - iirc, khoảng 64K:

#define DEFAULT_LOG_ROTATE_SIZE_KBYTES 16
#define DEFAULT_MAX_ROTATED_LOGS 4

Nguồn: system/core/logcat/logcat.cpp

Đừng hỏi có bao nhiêu dòng có thể, như mỗi và mỗi ứng dụng, nó khác nhau. Không chỉ có vậy, logcat biến mất khi khởi động lại!


2
Bạn đã không thực sự trả lời câu hỏi mà bạn vừa nói lại những gì anh ấy biết, rằng ứng dụng của anh ấy không thể theo dõi trong chế độ an toàn. Thêm một cái gì đó về nhật ký chế độ an toàn hoặc các lựa chọn thay thế và sau đó +1
Peanut

1
@Peanut, Android vẫn sẽ đăng nhập logcat, nhưng chỉ có các dịch vụ cốt lõi, không có gì khác! Không có sự thay thế cho điều đó! Và không có cách nào để các ứng dụng của bên thứ ba nhận ra rằng đã có chế độ an toàn được kích hoạt bởi vì, lần sau khi ra khỏi chế độ an toàn tức là khởi động lại bình thường, các ứng dụng của bên thứ ba "nghĩ" không có gì xảy ra như trong "không có gì để xem ở đây ... di chuyển dọc "
t0mm13b

1
Xin lỗi tôi đã chỉnh sửa nhận xét của mình trước khi xem bình luận của bạn, nhưng như tôi đã nói bạn không thực sự trả lời câu hỏi của anh ấy. Vì vậy, một giải pháp thay thế sẽ là kiểm tra xem logcat có chạy khi ứng dụng của anh ấy không? Rõ ràng điều này sẽ yêu cầu người khởi động nó không ở chế độ an toàn tại một số điểm nhưng ít nhất đó là một giải pháp thực tế.
Đậu phộng

Các nội dung logcat ... được tuôn ra để /dev/nullkhởi động lại giống như "kinh doanh như bình thường" ... chỉ cần nói .. :) Và cảm ơn vì đã downvote!
t0mm13b

À, tôi không biết điều đó ^^ Tôi sẽ bỏ phiếu vì bạn đưa ra câu trả lời cho câu hỏi của anh ấy ở đây :) Tôi nghĩ bạn nên thêm nội dung về nhật ký vào câu trả lời thực tế của mình. chỉnh sửa: Ồ, tôi thực sự không thể upvote cho đến khi bạn chỉnh sửa câu trả lời: p
Peanut

6

Không phải là câu trả lời tốt nhất nhưng có lẽ thông tin sẽ là một số những gì hữu ích.

Phương pháp duy nhất tôi biết là có chứa nhật ký do hệ thống tạo ra sau khi khởi động lại /proc/last_kmsg.

Liệu kernel có giữ tệp nhật ký này sau khi khởi động lại hay không, tùy thuộc vào các cài đặt được cung cấp trong quá trình biên dịch kernel.

Kinh nghiệm của tôi đã chỉ ra rằng một số thiết bị chứng khoán (HTC) đã kích hoạt tính năng ghi nhật ký này và một số khác thì không. Tôi chưa thấy một mô hình nhất quán.


Cảm ơn bạn! Bạn đã học về nhật ký này ở đâu? Bạn có gợi ý nào về cách tôi có thể tìm hiểu thêm về những bản ghi này không? Có một tài liệu tham khảo ở đâu đó?
jws121295

Trong trường hợp bất kỳ ai lang thang như tôi đã làm, nhật ký hiện đang ở / sys / fs / pstore / console_ramoops. Nó không phải là một bản ghi đầy đủ như dmesg, nhưng về cơ bản chỉ có thông tin về sự hoảng loạn hạt nhân cuối cùng và những gì dẫn đến nó.
Evan Langlois

adb shell cp /sys/fs/pstore/console-ramoops /data/media/0/console-ramoops.`date "+%Y_%m_%d_%H_%M_%S"`.loghoạt động với TWRP trên OP3 với LineageOS dựa trên Android 8
beppe9000
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.