2012-10-24 21 views
6

Tôi đã thêm "android.permission.WRITE_SECURE_SETTINGS" vào tệp kê khai. Nhưng tôi vẫn nhận được một thông báo lỗi nói - yêu cầu "WRITE_SECURE_SETTINGS".Lỗi quyền WRITE_SECURE_SETTINGS ngay cả khi được thêm vào trong Manifest

Tôi đã thấy rất nhiều cuộc đàm phán về việc này và cài đặt này được ngăn chặn cho phần mềm của bên thứ ba.

Có cách nào khác để tôi có thể thêm ứng dụng của mình có thể có được sự cho phép này không?

Tôi đã thấy lệnh adb này, nhưng tôi không quen sử dụng ứng dụng này để thêm ứng dụng vào thiết bị của mình, lệnh dưới đây yêu cầu root thiết bị của tôi trước khi có thể sử dụng được vì không thể sao chép chỉ đọc hệ thống tập tin?

adb remount 
adb push app.apk /system/app/ 

Trả lời

10

Thứ nhất, như bạn đã đọc trước đó, WRITE_SECURE_SETTINGS là KHÔNG sẵn cho các ứng dụng! Vì vậy, bạn không thể sử dụng quyền này bất kể bạn đang sử dụng các bản dựng gốc hay sản xuất.

Vì vậy, nếu bạn muốn bật cài đặt này, hãy tạo chương trình cơ sở của riêng bạn thực hiện những gì bạn cần và tải chương trình cơ sở đó lên bất kỳ thiết bị nào bạn muốn. Hoặc, đóng góp các thay đổi của bạn cho các mod chương trình cơ sở hiện tại (ví dụ: Cyanogen).

Một số ứng dụng khác sử dụng các kỹ thuật như Reflection sử dụng Java để truy cập vào các chức năng không được hiển thị qua API, bạn có thể thử như vậy.

Thứ hai, adb remount không hoạt động như với bản dựng sản xuất trừ khi điện thoại được khởi động hoặc chương trình cơ sở cho phép theo mặc định.

11

Gần đây tôi đã vật lộn với điều này. Khách hàng của tôi muốn một ứng dụng sẽ tắt NFC khi thiết bị đang sạc (bộ sạc không dây) và sau đó bật khi nó đã được tháo ra khỏi bộ sạc. Tôi đã chạy KitKat trên Nexus 7 của mình và mặc dù tôi có WRITE_SECURE_SETTINGS trong Tệp kê khai và ứng dụng trong /system/app/, nó sẽ không hoạt động.

Hóa ra, trong 4.4, họ đã thêm bảo mật bổ sung. Trong tuy nhiên 4.3, nó hoạt động nếu ba điều là đúng:

  1. Manifest có WRITE_SECURE_SETTINGS
  2. App là trong /system/app/
  3. Các gói phần mềm được ký bởi một phím (phím bất kỳ)

tôi bắt nguồn từ thiết bị sử dụng Bộ công cụ gốc Nexus tuyệt vời (NRT) từ http://www.wugfresh.com/nrt/ sau đó cài đặt ứng dụng BusyBox và ứng dụng hệ thống từ:

https://play.google.com/store/apps/details?id=stericson.busybox https://play.google.com/store/apps/details?id=de.j4velin.systemappmover

Tôi đã cài đặt APK đã ký tùy chỉnh của mình và di chuyển nó vào vị trí bằng cách sử dụng ứng dụng hệ thống, sau đó khởi động lại thiết bị. Nó hoạt động hoàn hảo. Hi vọng điêu nay co ich.

+0

Bạn có biết bảo mật bổ sung là 4.4? – brianestey

+0

Đã hơn 6 tháng, nhưng khi tôi gọi lại các ứng dụng chạy dưới dạng root trong/system/app trong 4.4, chúng phải được ký bởi cùng một khóa ký APK giống như mã đã ký hệ thống. –

+0

Tôi biết đã lâu rồi nhưng bạn có bất kỳ liên kết hoặc tham chiếu nào nêu rõ điều này không? Tôi đã không tìm thấy bất cứ điều gì trực tuyến nhưng tôi đã đọc về/hệ thống/priv-app như vị trí mới để đưa các ứng dụng hệ thống ... mặc dù điều đó dường như không làm việc cho tôi hoặc. – brianestey

3

Đối với api mà tôi sử dụng, mà đòi hỏi đặc quyền WRITE_SECURE_SETTINGS, tôi đã phải bao gồm này trong biểu hiện:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
... 
coreApp="true" 
android:sharedUserId="android.uid.system"> 

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/> 
... 

ref: https://github.com/android/platform_packages_apps_settings/blob/master/AndroidManifest.xml

Tôi cũng đã phải chạy các ứng dụng như một ứng dụng hệ thống (dưới:/system/app). Dưới đây là cách thực hiện: http://www.addictivetips.com/mobile/how-to-install-any-app-as-system-app-on-android/

0

Tôi có thể khắc phục sự cố này bằng cách bật quyền truy cập thông báo.

go to settings 
click on sound and notification 
scroll down 
click on notification access 
0

tôi gặp tình huống này quá, và sau đó tôi theo các quy tắc dưới đây: WRITE_SECURE_SETTINGS 1.add trong manifest 2.Make riêng firmware 3.add LOCAL_CERTIRICATE tôi: = nền tảng

Các vấn đề liên quan