@tojestproste/caplab-dev-mode
v1.0.1
Published
Capacitor plugin - odczyt trybu deweloperskiego na Androidzie (developer options, USB debugging, build info) bez uprawnień.
Maintainers
Readme
@tojestproste/caplab-dev-mode
Capacitor plugin (Android) zwracający stan "trybu dobrego do testowania": czy opcje deweloperskie i USB debugging są włączone, plus informacje o buildzie apki (debug/release, wersje, kto zainstalował) i systemie.
Część zestawu CapLab — narzędzi diagnostycznych dla Androida.
Instalacja
npm install @tojestproste/caplab-dev-mode
npx cap syncUprawnienia
Brak. Wszystkie dane są odczytywane przez Settings.Global/Settings.Secure oraz PackageManager — ustawienia systemowe publicznie czytelne przez każdą aplikację, bez deklaracji w AndroidManifest.xml.
Uwaga o instalacji z nieznanych źródeł: od Androida 8 (API 26) to permission per-aplikacja (REQUEST_INSTALL_PACKAGES), nie ma już jednego globalnego, odczytywalnego programowo przełącznika. Pole installUnknownSourcesNote w response wyjaśnia to wprost.
Uwaga o mock location: Android 12+ usunął globalny przełącznik — teraz to wybór per-aplikacja w opcjach deweloperskich, nieodczytywalny bez dodatkowych uprawnień. Starsze Androidy zwracają wartość w mockLocation.allowMockLocationLegacy.
Użycie
import { DevMode } from '@tojestproste/caplab-dev-mode';
const data = await DevMode.get();
console.log(data.developer.developerOptionsEnabled); // true
console.log(data.adb.usbDebuggingEnabled); // true
console.log(data.appBuildInfo.isDebugBuild); // true
console.log(data.appBuildInfo.installerPackageName); // "adb / sideload (brak installera)"API
get()
get() => Promise<DevModeResult>Zwraca stan trybu deweloperskiego i informacje o buildzie.
Returns: Promise<DevModeResult>
Interfaces
DevModeResult
| Prop | Type |
| ------------------------------ | -------------------------------------------------------------------------- |
| timestamp | number |
| developer | DevModeDeveloper |
| adb | DevModeAdb |
| mockLocation | DevModeMockLocation |
| stayAwakeWhileCharging | DevModeStayAwake |
| installUnknownSourcesNote | string |
| appBuildInfo | DevModeAppBuildInfo |
| systemBuild | DevModeSystemBuild |
Przykładowy response
Realny output (Poco X7 Pro, build debug, zainstalowany przez ADB):
{
"developer": { "developerOptionsEnabled": true },
"adb": { "usbDebuggingEnabled": true },
"appBuildInfo": {
"isDebugBuild": true,
"packageName": "com.tojestproste.caplab",
"versionName": "1.0",
"versionCode": 1,
"targetSdkVersion": 34,
"installerPackageName": "adb / sideload (brak installera)"
},
"systemBuild": {
"androidVersion": "16",
"sdkInt": 36,
"manufacturer": "Xiaomi",
"model": "2412DPC0AG",
"device": "rodin",
"isEmulator": false
}
}Licencja
MIT
