diff --git a/docs/plugins/i-root/README.md b/docs/plugins/i-root/README.md new file mode 100644 index 0000000000..403364d547 --- /dev/null +++ b/docs/plugins/i-root/README.md @@ -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 + + LSApplicationQueriesSchemes + + cydia + + +``` \ No newline at end of file diff --git a/src/@awesome-cordova-plugins/plugins/i-root/index.ts b/src/@awesome-cordova-plugins/plugins/i-root/index.ts new file mode 100644 index 0000000000..cba5a93cd9 --- /dev/null +++ b/src/@awesome-cordova-plugins/plugins/i-root/index.ts @@ -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} Resolves to true if the device is Jailbroken/rooted, otherwise false. + */ + @Cordova() + isRooted(): Promise { + return; + } + + /** + * Android only! Checks if the device was rooted via busybox. + * @return {Promise} Resolves to true if the device is Jailbroken/rooted, otherwise false. + */ + @Cordova({ + platforms: ['android'], + }) + isRootedWithBusyBox(): Promise { + return; + } +}