Merge: Tool to enable/disable ADB

This commit is contained in:
Mauro Vietri 2023-05-31 00:27:15 -03:00
parent 0f34d709e4
commit 3a2da4c1ab
9 changed files with 118 additions and 15 deletions

View file

@ -45,6 +45,7 @@ all-cores:
tools:
cd ./src/clock && make
cd ./src/clear_recent && make
cd ./src/toggle_adb && make
cd ./other/DinguxCommander && make -j
bundle:
@ -73,6 +74,7 @@ bundle:
cp ./src/minui/minui.elf ./build/SYSTEM/rg35xx/paks/MinUI.pak
cp ./src/clock/clock.elf ./build/EXTRAS/Tools/rg35xx/Clock.pak
cp ./src/clear_recent/clear_recent.elf "./build/EXTRAS/Tools/rg35xx/Clear Recently Played.pak"
cp ./src/toggle_adb/toggle_adb.elf "./build/EXTRAS/Tools/rg35xx/Toggle ADB.pak"
# stock cores
cp ./cores/output/fceumm_libretro.so ./build/SYSTEM/rg35xx/cores
@ -131,4 +133,5 @@ clean:
cd ./cores && make clean
cd ./src/clock && make clean
cd ./src/clear_recent && make clean
cd ./src/toggle_adb && make clean
cd ./other/DinguxCommander && make clean

View file

View file

@ -0,0 +1,5 @@
#!/bin/sh
PATH=$(dirname "$0")
cd "$PATH"
./toggle_adb.elf

View file

@ -1,10 +1,5 @@
#!/system/bin/sh
# Enable Android Debug Bridge
if [ -f /misc/enableADB ]; then
/usbdbg.sh device
fi
echo 0xF > /sys/devices/system/cpu/autoplug/plug_mask
TF1_PATH=/mnt/mmc # ROMS partition
@ -31,6 +26,11 @@ if [ $? -ne 0 ]; then
fi
fi
# Enable Android Debug Bridge
if [ -f /mnt/mmc/enableADB ]; then
/usbdbg.sh device
fi
if [ -d ${TF1_PATH}${SYSTEM_FRAG} ] || [ -f ${TF1_PATH}${UPDATE_FRAG} ]; then
if [ ! -L $TF2_PATH ]; then
# .system found on TF1 but TF2 is present

View file

@ -1560,9 +1560,7 @@ void POW_update(int* _dirty, int* _show_setting, POW_callback_t before_sleep, PO
void POW_disablePowerOff(void) {
pow.can_poweroff = 0;
}
void POW_powerOff(void) {
if (pow.can_poweroff) {
char* msg = exists(AUTO_RESUME_PATH) ? "Quicksave created,\npowering off" : "Powering off";
void POW_sync(char* msg) {
GFX_clear(gfx.screen);
GFX_blitMessage(font.large, msg, gfx.screen, NULL);
GFX_flip(gfx.screen);
@ -1573,11 +1571,23 @@ void POW_powerOff(void) {
system("sync");
sleep(2);
}
void POW_powerOff(void) {
if (pow.can_poweroff) {
char* msg = exists(AUTO_RESUME_PATH) ? "Quicksave created,\npowering off" : "Powering off";
POW_sync(msg);
// actual shutdown
system("echo o > /proc/sysrq-trigger");
}
}
void POW_reboot(void) {
char* msg = "Rebooting";
POW_sync(msg);
// trigger reboot
system("echo b > /proc/sysrq-trigger");
}
#define BACKLIGHT_PATH "/sys/class/backlight/backlight.2/bl_power"

View file

@ -220,8 +220,10 @@ void POW_warn(int enable);
void POW_update(int* dirty, int* show_setting, POW_callback_t before_sleep, POW_callback_t after_sleep);
void POW_sync(char* msg);
void POW_disablePowerOff(void);
void POW_powerOff(void);
void POW_reboot(void);
void POW_fauxSleep(void);
void POW_disableAutosleep(void);

View file

@ -61,6 +61,7 @@
#define COLLECTIONS_PATH SDCARD_PATH "/Collections"
#define BATTERY_PATH SDCARD_PATH "/battery.txt"
#define SCREENSHOTS_PATH SDCARD_PATH "/Screenshots"
#define ADB_FLAG_PATH SDCARD_PATH "/enableADB"
#define LAST_PATH "/tmp/last.txt" // transient
#define CHANGE_DISC_PATH "/tmp/change_disc.txt"

15
src/toggle_adb/makefile Normal file
View file

@ -0,0 +1,15 @@
ifeq (,$(CROSS_COMPILE))
$(error missing CROSS_COMPILE for this toolchain)
endif
TARGET = toggle_adb
CC = $(CROSS_COMPILE)gcc
CFLAGS = -Os -marm -mtune=cortex-a9 -mfpu=neon-fp16 -mfloat-abi=hard -march=armv7-a -fomit-frame-pointer
CFLAGS += -I. -I../common -DPLATFORM=\"$(UNION_PLATFORM)\"
LDFLAGS = -ldl -lSDL -lSDL_image -lSDL_ttf -lmsettings -lpthread
all:
$(CC) $(TARGET).c ../common/utils.c ../common/api.c -o $(TARGET).elf $(CFLAGS) $(LDFLAGS)
clean:
rm -f $(TARGET).elf

View file

@ -0,0 +1,67 @@
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <msettings.h>
#include "defines.h"
#include "utils.h"
#include "api.h"
int main(int argc, char* argv[]) {
POW_setCPUSpeed(CPU_SPEED_MENU);
SDL_Surface* screen = GFX_init(MODE_MAIN);
POW_init();
InitSettings();
SDL_Event event;
int quit = 0;
int save_changes = 0;
int adb_enabled = 0;
// Show confirmation message
// GFX_blitHardwareGroup(screen, show_setting);
FILE *file = fopen(ADB_FLAG_PATH, "r");
if (file) {
adb_enabled = 1;
GFX_blitMessage(font.large, "ADB is currently enabled\nDisable and reboot?", screen, NULL);
GFX_blitButtonGroup((char*[]){ "B","CANCEL", "A","DISABLE", NULL }, screen, 1);
} else {
GFX_blitMessage(font.large, "ADB is not enabled\nEnable and reboot?", screen, NULL);
GFX_blitButtonGroup((char*[]){ "B","CANCEL", "A","ENABLE", NULL }, screen, 1);
}
GFX_flip(screen);
// Wait for user's input
while (!quit) {
PAD_poll();
if (PAD_justPressed(BTN_A)) {
save_changes = 1;
quit = 1;
} else if (PAD_justPressed(BTN_B)) {
quit = 1;
} else {
GFX_sync();
}
}
// Execute main program based on user's input
if (save_changes) {
if (!adb_enabled){
fclose(fopen(ADB_FLAG_PATH, "w"));
} else {
remove(ADB_FLAG_PATH);
}
LOG_info("Rebooting to save changes\n");
POW_reboot();
}
QuitSettings();
POW_quit();
GFX_quit();
return EXIT_SUCCESS;
}