Skip to content

Commit

Permalink
feat(cordova-plugin-iroot): add plugin (#4857)
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiomartino authored Nov 11, 2024
1 parent ac767ab commit 658a55b
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
36 changes: 36 additions & 0 deletions docs/plugins/i-root/README.md
Original file line number Diff line number Diff line change
@@ -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"
don’t 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>
```
54 changes: 54 additions & 0 deletions src/@awesome-cordova-plugins/plugins/i-root/index.ts
Original file line number Diff line number Diff line change
@@ -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;
}
}

0 comments on commit 658a55b

Please sign in to comment.