Android code search (framework, system api, hidden api) - DanielWorld/SoftwareTech GitHub Wiki
- ์ฐธ๊ณ ์ฉ: https://www.programmersought.com/ <-- ์จ๊ฐ ํ๋ก๊ทธ๋จ ๊ด๋ จ ์ธ๋ถ์ ์ธ low ์ง์๋ค์ด ํฌํจ๋ ๋ธ๋ก๊ทธ
์์ )
- ๋๋ฐ์ด์ค ๋ด๋ถ path : /system/framework-res.apk ๋ฅผ ๋ถ์ํด๋ณด๋ฉด AndroidManifest.xml ์์ com.android.internal.app.ShutdownActivity ๋ฅผ ์ฌ์ฉํจ์ ์ ์ ์๋ค.
- ํด๋น Activity, Service, API ๋ฑ์ https://cs.android.com/ ์ฐพ์์ ํ์ธํ ๋ค, App ๋จ์์ reflection ์ผ๋ก ๊ตฌํํ๋ค.
//android.os.ServiceManager is hide class, we can not invoke them from SDK. So we have to use reflect to invoke these classes.
val getService = Class.forName("android.os.ServiceManager").getMethod("getService", String::class.java)
val binder = getService.invoke(Object(), Context.POWER_SERVICE) as IBinder
val mService = IPowerManager.Stub.asInterface(binder)
// reboot ์๋ (PowerManager.reboot ์ ๋์ผ)
// mService.reboot(false, null, false)
// PowerManager.SHUTDOWN_USER_REQUESTED = "userrequested"
mService.shutdown(false, "userrequested", false)
-
ref. Settings app : https://android.googlesource.com/platform/packages/apps/Settings.git
-
ref. Wifi framework : https://android.googlesource.com/platform/packages/modules/Wifi
-
ref. ShutdownActivity : https://android.googlesource.com/platform/frameworks/base/+/HEAD/core/java/com/android/internal/app/ShutdownActivity.java
-
ref. ServiceManager : https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/ServiceManager.java
-
ref. PowerManager : https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/os/PowerManager.java
-
ref. PowerManagerService : https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/power/PowerManagerService.java
-
ref. IPowerManager : https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/IPowerManager.aidl