[core] Add secret code receiver (#1240)
* [core] Add secret code receiver *#*#5776733#*#*
This commit is contained in:
parent
ec56d45492
commit
614607a878
|
|
@ -171,7 +171,7 @@ public class LSPManagerService extends ILSPManagerService.Stub {
|
||||||
return getIcon(org.lsposed.manager.R.drawable.ic_extension);
|
return getIcon(org.lsposed.manager.R.drawable.ic_extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Intent getManagerIntent() {
|
static Intent getManagerIntent() {
|
||||||
try {
|
try {
|
||||||
if (managerIntent == null) {
|
if (managerIntent == null) {
|
||||||
var intent = PackageService.getLaunchIntentForPackage(BuildConfig.MANAGER_INJECTED_PKG_NAME);
|
var intent = PackageService.getLaunchIntentForPackage(BuildConfig.MANAGER_INJECTED_PKG_NAME);
|
||||||
|
|
|
||||||
|
|
@ -186,6 +186,21 @@ public class LSPosedService extends ILSPosedService.Stub {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
synchronized public void dispatchSecretCodeReceive() {
|
||||||
|
Intent intent = LSPManagerService.getManagerIntent();
|
||||||
|
try {
|
||||||
|
var userInfo = ActivityManagerService.getCurrentUser();
|
||||||
|
if (userInfo != null) {
|
||||||
|
var userId = userInfo.id;
|
||||||
|
if (userId == 0)
|
||||||
|
ActivityManagerService.startActivityAsUserWithFeature("android", null,
|
||||||
|
intent, intent.getType(), null, null, 0, 0, null, null, userId);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.e(TAG, "dispatch secret code received", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void registerPackageReceiver() {
|
private void registerPackageReceiver() {
|
||||||
try {
|
try {
|
||||||
IntentFilter packageFilter = new IntentFilter();
|
IntentFilter packageFilter = new IntentFilter();
|
||||||
|
|
@ -261,6 +276,30 @@ public class LSPosedService extends ILSPosedService.Stub {
|
||||||
Log.d(TAG, "registered configuration receiver");
|
Log.d(TAG, "registered configuration receiver");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerSecretCodeReceiver() {
|
||||||
|
try {
|
||||||
|
IntentFilter intentFilter = new IntentFilter();
|
||||||
|
intentFilter.addAction("android.provider.Telephony.SECRET_CODE");
|
||||||
|
intentFilter.addDataAuthority("5776733", null);
|
||||||
|
intentFilter.addDataScheme("android_secret_code");
|
||||||
|
|
||||||
|
ActivityManagerService.registerReceiver("android", null, new IIntentReceiver.Stub() {
|
||||||
|
@Override
|
||||||
|
public void performReceive(Intent intent, int resultCode, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser) {
|
||||||
|
new Thread(() -> dispatchSecretCodeReceive()).start();
|
||||||
|
try {
|
||||||
|
ActivityManagerService.finishReceiver(this, resultCode, data, extras, false, intent.getFlags());
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.e(TAG, "finish receiver", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, intentFilter, null, 0, 0);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.e(TAG, "register secret code receiver", e);
|
||||||
|
}
|
||||||
|
Log.d(TAG, "registered secret code receiver");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchSystemServerContext(IBinder activityThread, IBinder activityToken) {
|
public void dispatchSystemServerContext(IBinder activityThread, IBinder activityToken) {
|
||||||
Log.d(TAG, "received system context");
|
Log.d(TAG, "received system context");
|
||||||
|
|
@ -268,6 +307,7 @@ public class LSPosedService extends ILSPosedService.Stub {
|
||||||
registerPackageReceiver();
|
registerPackageReceiver();
|
||||||
registerUnlockReceiver();
|
registerUnlockReceiver();
|
||||||
registerConfigurationReceiver();
|
registerConfigurationReceiver();
|
||||||
|
registerSecretCodeReceiver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue