feat(cordova-plugin-iroot): add plugin (#4857)

This commit is contained in:
Fabio Martino 2024-11-11 09:09:00 +00:00 committed by GitHub
parent ac767ab219
commit 658a55bc97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,36 @@
# IRoot
```text
$ ionic cordova plugin add cordova-plugin-iroot
$ npm install @awesome-cordova-plugins/i-root
```
## [Usage Documentation](https://danielsogl.gitbook.io/awesome-cordova-plugins/plugins/iroot/)
Plugin Repo: [https://github.com/WuglyakBolgoink/cordova-plugin-iroot](https://github.com/WuglyakBolgoink/cordova-plugin-iroot)
Use this plugin to add an extra layer of security for your app by detecting if the device was rooted (on android) or jailbreaked (on iOS).
## Supported platforms
* Android
* iOS
## Original Plugin Notes
### iOS - Postinstall
To avoid errors like
> -canOpenURL: failed for URL: "cydia://package/com.example.package" - error: "This app is not allowed to query for scheme cydia"
dont forget to add `"cydia"` in `LSApplicationQueriesSchemes` key of `info.plist`. Otherwise `canOpenURL` will always return `false`.
```xml
<xxx>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>cydia</string>
</array>
</xxx>
```

View File

@ -0,0 +1,54 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, AwesomeCordovaNativePlugin } from '@awesome-cordova-plugins/core';
/**
* @name IRoot
* @description
* Use this plugin to add an extra layer of security for your app by detecting if the device was rooted (on android) or jailbreaked (on iOS).
*
* @usage
* ```typescript
* import { IRoot } from '@awesome-cordova-plugins/i-root';
*
* constructor(private iRoot: IRoot) { }
*
* ...
*
* this.iRoot.isRooted()
* .then((res: boolean) => console.log('is rooted?', res))
* .catch((error: string) => console.error(error));
*
* this.iRoot.isRootedWithBusyBox()
* .then((res: boolean) => console.log('is rooted?', res))
* .catch((error: string) => console.error(error));
* ```
*/
@Plugin({
pluginName: 'IRoot',
plugin: 'cordova-plugin-IRoot',
pluginRef: 'IRoot',
repo: 'https://github.com/WuglyakBolgoink/cordova-plugin-IRoot',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class IRoot extends AwesomeCordovaNativePlugin {
/**
* Checks if the device is rooted/jailbroken.
* @return {Promise<boolean>} Resolves to true if the device is Jailbroken/rooted, otherwise false.
*/
@Cordova()
isRooted(): Promise<boolean> {
return;
}
/**
* Android only! Checks if the device was rooted via busybox.
* @return {Promise<boolean>} Resolves to true if the device is Jailbroken/rooted, otherwise false.
*/
@Cordova({
platforms: ['android'],
})
isRootedWithBusyBox(): Promise<boolean> {
return;
}
}