Apakah ada cara untuk menentukan aplikasi mana yang menggambar di atas aplikasi lain?
Misalnya, aplikasi Facebook Messenger dapat menggambar gelembung obrolan di atas segalanya, tetapi bagaimana saya tahu aplikasi mana yang melakukan ini?
Masalahku:
Saya memiliki aplikasi yang menggambar iklan di atas segalanya dan saya ingin tahu aplikasi mana yang melakukan ini. Tidak hanya menghapus instalannya, tetapi untuk memperingatkan semua orang yang menggunakan aplikasi ini. (Saya tidak menginstal aplikasi apa pun baru-baru ini dan saya sudah memverifikasi pembaruan terbaru.)
Saya mencoba menggunakan Hirarki Dump View untuk UI Automator dari Android Studio, tetapi tampaknya aplikasi yang menggambar di atas tidak dapat dipilih dengan cara ini.
(Klik gambar untuk memperbesar)
sumber
Jawaban:
catatan:
Sunting: potong pengejaran dalam solusi sebelumnya dan ikuti bagian yang diedit ini saja.
Setup adb dan jalankan perintah ini:
Anda akan mendapatkan output dari semua overlay aktif di layar. Contoh output dengan DU Screen Recorder, Tasker dan AZ Screen Recorder menampilkan overlay aktif di layar:
Teks yang disorot di sebelah package = dan sebelum appop adalah nama paket aplikasi yang saat ini menggambar overlay di layar. Dalam kasus Anda, output termasuk nama paket akan berbeda.
Catat nama paket (selanjutnya disebut PKG) dan jalankan perintah ini:
Ganti PKG dengan nama paket yang Anda catat. Jika Anda memiliki beberapa nama paket, ulangi perintah dengan satu nama paket sekaligus.
Perintah akan secara paksa menghentikan aplikasi dan dengan demikian membuang overlay. Ini seharusnya bekerja. Sebagai alternatif, Anda dapat menghapus izin "Draw over other apps" (hamparan layar singkatnya) dari aplikasi menggunakan perintah ini:
Sekali lagi, ganti PKG dengan nama paket seperlunya. Selanjutnya, Anda mungkin harus mengulangi perintah penghentian paksa untuk PKG. Jika Anda memutuskan untuk mengembalikan perubahan, ganti abaikan dengan izinkan dalam perintah di atas.
Anda dapat menggunakan App Ops untuk mengelola izin dari GUI.
Untuk mengetahui nama paket yang sesuai dengan aplikasi mana Anda bisa mencoba aplikasi sumber terbuka seperti Info Aplikasi . Cari berdasarkan nama paket dan Anda akan mendapatkan nama Aplikasi.
Edit selesai
Anda benar - benar tidak perlu membaca lagi sekarang . Saya meninggalkan solusi sebelumnya (yaitu bagian berikut) dengan utuh karena 21 orang yang memilihnya merasa terbantu dan saya tidak ingin mengacaukannya lagi.
Cara sederhana adalah mengetahui semua aplikasi yang memiliki izin "menarik aplikasi lain" dan kemudian memilihnya dari yang saat ini aktif di layar. Setelah itu, lakukan penghentian paksa aplikasi-aplikasi umum tersebut sampai Anda menunjukkan dengan tepat aplikasi yang bertanggung jawab atas overlay aktif.
Menghitung aplikasi yang memiliki izin untuk overlay
Izin yang diperlukan oleh aplikasi untuk membuat overlay adalah
android.permission.SYSTEM_ALERT_WINDOW
(menarik aplikasi lain).Kita perlu mengetahui semua aplikasi yang terinstal memiliki izin tersebut. Terserah Anda untuk mengetahui metode untuk ini. Jawaban saya di sini dapat membantu Anda.
Perhatikan bahwa kita membutuhkan nama paket aplikasi dan bukan labelnya.
Pilih dari jendela aktif
Jalankan perintah
Ini akan memberi Anda detail tentang apa pun yang menyebabkan sesuatu ditampilkan di layar, termasuk nama komponen aplikasi yang menyebabkannya.
Bagaimana Anda mengekstrak nama itu terserah Anda. Anda dapat mencoba perintah ini
Jika Anda menerima kesalahan: 'grep' tidak dikenali sebagai perintah internal atau eksternal , pada Windows coba perintah alternatif ini:
Output demo
Dalam output di atas, apa pun yang berhasil
u0
dan sebelumnya/
adalah nama paket aplikasi. Aplikasi dapat memiliki beberapa komponen yang menampilkan sesuatu di layar.Anda harus membuat daftar nama paket tersebut. Jika Anda telah menginstal BusyBox , Anda dapat melakukannya
Bagaimanapun, sekarang Anda akan memiliki dua daftar:
android.permission.SYSTEM_ALERT_WINDOW
.Bandingkan kedua daftar ini dan pilih satu aplikasi yang umum di kedua daftar. Daftar ketiga ini merupakan aplikasi yang memiliki izin untuk menggambar overlay dan saat ini menggambar overlay aktif di layar.
Waktunya membunuh
Bunuh masing-masing aplikasi dari daftar ketiga satu per satu dan perhatikan status overlay. Anda dapat menggunakan
am force-stop PACKAGE_NAME --user 0
atau metode lain yang cocok untuk Anda.PACKAGE_NAME
adalah nama paket aplikasi.EDIT : Tidak perlu mematikan aplikasi. Anda dapat mempertimbangkan untuk menolak aplikasi untuk mengambil alih aplikasi lain. Gunakan perintah ini:
Untuk mengembalikan perubahan, ganti tolak dengan izinkan dalam perintah tersebut dan jalankan.
Jika Anda menjalankan Android Marshmallow, jawaban ini oleh Andrew T. dapat digunakan.
Catatan: Perintah di atas berhasil diuji pada Android 5.1.1 dan 6.0.1 (build CM). Mungkin juga perintah itu bekerja di Android 5.0.x tapi saya tidak bisa menjamin . Eksekusi perintah itu pada versi Android yang dirilis sebelum Lollipop akan menyebabkan kegagalan.
Karena sering overlay dapat dilihat, maka akan langsung menghilang begitu aplikasi menyebabkannya terbunuh, karenanya, Anda akan tahu aplikasi mana yang menyebabkan overlay itu.
Aplikasi untuk aplikasi
Awalnya disarankan oleh Izzy, Anda dapat menggunakan aplikasi yang memiliki fungsionalitas izin daftar yang diberikan untuk aplikasi yang diinstal, untuk memilih aplikasi yang memiliki izin "menarik dari aplikasi lain". Anda dapat mencari aplikasi seperti itu sendiri atau menggunakan daftar Pemeriksa izin yang dikelola oleh Izzy di situs webnya.
Anda juga membutuhkan manajer proses / aplikasi untuk menghentikan / membunuh beberapa proses secara paksa. Saya merekomendasikan OS Monitor tetapi Anda bebas untuk menggunakan aplikasi apa pun yang kompeten. Lihat aplikasi terkait di bawah Info Sistem .
Untuk tujuan demonstrasi saja
Saya mencoba Advanced Permission Manager untuk mendaftar aplikasi dengan izin untuk "menarik aplikasi lain". Setelah itu, saya beralih ke OS Monitor untuk melihat aplikasi yang berjalan di latar depan dan belakang. Saya mencocokkan output dari kedua aplikasi dan secara individual menghentikan aplikasi yang umum di keduanya. Anda dapat mematikan proses dari dalam Monitor OS, jadi tidak perlu beralih ke pengaturan Aplikasi.
(Klik gambar untuk memperbesar)
sumber
Jika Anda menggunakan Android 6.0 Marshmallow, Anda dapat menggunakan pengelola izin asalnya.
Dari sebuah artikel di BGR ,
Untuk membuat daftar aplikasi yang dapat menggambar di atas aplikasi lain, buka Pengaturan - Aplikasi - Lanjutan (menu dengan ikon roda gigi) - Geser ke aplikasi lain .
Anda juga dapat mengaktifkan / menonaktifkan fitur sementara dengan mengetuk aplikasi, dan mengaktifkan "Izin menggambar di atas aplikasi lain".
Gambar milik Sebastiano Gottardo di Medium
sumber
Terima kasih banyak @Firelord! Saya akhirnya menemukan aplikasi yang mencegah saya menginstal apk dan melakukan backup adb.
Bagi saya, saya menemukan itu adalah aplikasi bernama
Battery Mix
Baca terus untuk melihat apa yang saya lakukan dan bagaimana saya melakukannya.https://play.google.com/store/apps/details?id=jp.smapho.battery_mix
Banyak orang memiliki masalah dengan Menginstal apk dan tidak dapat menekan 'Instal'. Semua jawaban yang saya dapat temukan terutama untuk menampilkan aplikasi peredupan, pewarnaan, dan penghemat daya. Karena saya tidak menggunakan atau menghapus semua aplikasi yang sama, saya telah berjuang untuk menemukan apa yang sedang terjadi dan aplikasi mana yang menjadi penyebabnya. Dan akhirnya! Setelah satu perintah sederhana dan pencarian cepat, telah diselesaikan: D
Aplikasi menyinggung
Battery Mix
adalah aplikasi pemantauan baterai sederhana yang memiliki fungsi yang saya gunakan untuk menampilkan garis tipis di bagian atas layar untuk menunjukkan keadaan tingkat baterai (aplikasi kecil yang hebat).Jadi untuk mendiagnosis, saya menggunakan perintah dari
Firelord
(di atas) untuk membuang file teks dan kemudian untuk mencari aplikasi yang menyebabkan sistem android mencegah saya dari mengklik tombol Install.Jalankan perintah dari PC
adb shell dumpsys window windows > dumpsys-windows.txt
Pencarian untuk
SYSTEM_ALERT_WINDOW
Untuk menemukan aplikasi yang menyinggung saya mencari string di atas
Yang memberi saya garis:
mOwnerUid=10129 mShowToOwnerOnly=true package=jp.smapho.battery_mix appop=SYSTEM_ALERT_WINDOW
(Lihat unggahan gambar untuk bagian file teks)
segera saya bisa mengenali aplikasi mana yang dimaksud: jp.smapho. battery_mix
Jadi sekarang saya tahu untuk mematikan aplikasi itu setiap kali saya berencana untuk melakukan sideload atau sebelum backup adb.
sumber
Untuk Android Marshmallow, dan Oxygen 3.0.2, Menonaktifkan popup Tata Letak Layar
Buka Aplikasi dan konfigurasikan Aplikasi dan Pilih Draw di atas aplikasi lain.
Pergi dan pilih aplikasi untuk menonaktifkannya sehingga aplikasi tidak terblokir dari pengajuan tata letak layar. dan aplikasi dapat langsung mendapatkan izin
Buka aplikasi dan Izin masing-masing dan aktifkan izin yang Anda inginkan.
Nikmati
Raj
sumber