[core] Support debugger
This commit is contained in:
parent
338c73bf10
commit
409a197431
|
|
@ -69,6 +69,7 @@ extract "$ZIPFILE" 'post-fs-data.sh' "$MODPATH"
|
|||
extract "$ZIPFILE" 'service.sh' "$MODPATH"
|
||||
extract "$ZIPFILE" 'uninstall.sh' "$MODPATH"
|
||||
extract "$ZIPFILE" 'framework/lspd.dex' "$MODPATH"
|
||||
extract "$ZIPFILE" 'lspd' "$MODPATH"
|
||||
extract "$ZIPFILE" 'manager.apk' '/data/adb/lspd'
|
||||
|
||||
mkdir "$MODPATH/riru"
|
||||
|
|
@ -99,11 +100,12 @@ if [ "$RIRU_MODULE_DEBUG" = true ]; then
|
|||
mv "$MODPATH/riru" "$MODPATH/system"
|
||||
mv "$MODPATH/system/lib/liblspd.so" "$MODPATH/system/lib/libriru_lspd.so"
|
||||
mv "$MODPATH/system/lib64/liblspd.so" "$MODPATH/system/lib64/libriru_lspd.so"
|
||||
cp -r "$MODPATH/framework" "$MODPATH/system/framework"
|
||||
mv "$MODPATH/framework" "$MODPATH/system/framework"
|
||||
mkdir -p "/data/adb/riru/modules/lspd"
|
||||
fi
|
||||
|
||||
set_perm_recursive "$MODPATH" 0 0 0755 0644
|
||||
chmod 0744 "$MODPATH/lspd"
|
||||
|
||||
# Lsposed config
|
||||
ui_print "- Creating configuration directories"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
#!/system/bin/sh
|
||||
|
||||
dir=${0%/*}
|
||||
if [ -d "$dir/system" ]; then
|
||||
java_options="-Djava.class.path=$dir/system/framework/lspd.dex"
|
||||
os_version=$(getprop ro.build.version.sdk)
|
||||
if [ "$os_version" -eq "27" ]; then
|
||||
java_options="$java_options -Xrunjdwp:transport=dt_android_adb,suspend=n,server=y -Xcompiler-option --debuggable"
|
||||
elif [ "$os_version" -eq "28" ]; then
|
||||
java_options="$java_options -XjdwpProvider:adbconnection -XjdwpOptions:suspend=n,server=y -Xcompiler-option --debuggable"
|
||||
else
|
||||
java_options="$java_options -XjdwpProvider:adbconnection -XjdwpOptions:suspend=n,server=y"
|
||||
fi
|
||||
else
|
||||
java_options="-Djava.class.path=$dir/framework/lspd.dex"
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
exec /system/bin/app_process $java_options /system/bin --nice-name=lspd org.lsposed.lspd.core.Main "$@" >/dev/null 2>&1
|
||||
|
|
@ -135,4 +135,4 @@ if [ ! -z "${MISC_PATH}" ]; then
|
|||
start_log_catcher all "LSPosed:V XSharedPreferences:V LSPosed-Bridge:V LSPosedManager:V LSPosedService:V *:F" true ${LOG_VERBOSE}
|
||||
fi
|
||||
|
||||
/system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main >/dev/null 2>&1
|
||||
"$MODDIR/lspd"
|
||||
|
|
|
|||
|
|
@ -19,5 +19,6 @@
|
|||
# Copyright (C) 2021 LSPosed Contributors
|
||||
#
|
||||
|
||||
MODDIR=${0%/*}
|
||||
# post-fs-data.sh may be blocked by other modules. retry to start this
|
||||
/system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main --from-service >/dev/null 2>&1
|
||||
"$MODDIR/lspd" --from-service
|
||||
|
|
|
|||
|
|
@ -16,9 +16,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Copyright (C) 2020 EdXposed Contributors
|
||||
# Copyright (C) 2021 LSPosed Contributors
|
||||
#
|
||||
|
||||
MODDIR=${0%/*}
|
||||
rm -rf /data/adb/lspd
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
check_magisk_version() {
|
||||
ui_print "- Magisk version: $MAGISK_VER_CODE"
|
||||
if [ "$MAGISK_VER_CODE" -lt 22105 ]; then
|
||||
if [ "$MAGISK_VER_CODE" -lt 23000 ]; then
|
||||
ui_print "*********************************************************"
|
||||
ui_print "! Please install Magisk v23+"
|
||||
abort "*********************************************************"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
package org.lsposed.lspd.service;
|
||||
|
||||
import android.app.ActivityThread;
|
||||
import android.content.Context;
|
||||
import android.ddm.DdmHandleAppName;
|
||||
import android.os.IBinder;
|
||||
|
|
@ -38,6 +39,7 @@ public class ServiceManager {
|
|||
private static LSPApplicationService applicationService = null;
|
||||
private static LSPManagerService managerService = null;
|
||||
private static LSPSystemServerService systemServerService = null;
|
||||
private static Context systemContext = null;
|
||||
public static final String TAG = "LSPosedService";
|
||||
|
||||
private static void waitSystemService(String name) {
|
||||
|
|
@ -60,9 +62,6 @@ public class ServiceManager {
|
|||
if (!ConfigManager.getInstance().tryLock()) System.exit(0);
|
||||
|
||||
for (String arg : args) {
|
||||
if (arg.equals("--debug")) {
|
||||
DdmHandleAppName.setAppName("lspd", 0);
|
||||
}
|
||||
if (arg.equals("--from-service")) {
|
||||
Log.w(TAG, "LSPosed daemon is not started properly. Try for a late start...");
|
||||
}
|
||||
|
|
@ -86,6 +85,8 @@ public class ServiceManager {
|
|||
|
||||
android.os.Process.killProcess(android.system.Os.getppid());
|
||||
|
||||
createSystemContext();
|
||||
|
||||
waitSystemService("package");
|
||||
waitSystemService("activity");
|
||||
waitSystemService(Context.USER_SERVICE);
|
||||
|
|
@ -151,4 +152,15 @@ public class ServiceManager {
|
|||
public static boolean systemServerRequested() {
|
||||
return systemServerService.systemServerRequested();
|
||||
}
|
||||
|
||||
private static void createSystemContext() {
|
||||
ActivityThread activityThread = ActivityThread.systemMain();
|
||||
systemContext = activityThread.getSystemContext();
|
||||
systemContext.setTheme(android.R.style.Theme_DeviceDefault_Light_DarkActionBar);
|
||||
DdmHandleAppName.setAppName("lspd", 0);
|
||||
}
|
||||
|
||||
public static Context getSystemContext() {
|
||||
return systemContext;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@ public final class ActivityThread {
|
|||
throw new UnsupportedOperationException("STUB");
|
||||
}
|
||||
|
||||
public static ActivityThread systemMain() {
|
||||
throw new UnsupportedOperationException("STUB");
|
||||
}
|
||||
|
||||
private class ApplicationThread extends IApplicationThread.Stub{
|
||||
@Override
|
||||
public IBinder asBinder() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue