Flutter guide + SDK. Check Community repository for common information.

Overview

freeRASP for Flutter

freeRASP for Flutter is a part of security SDK for the app shielding and security monitoring. Learn more about provided features on the freeRASP's main repository first. You can find freeRASP Flutter plugin on pub.dev.

⚠️ Attention ⚠️ Update to the latest (1.1.0) version. Previous versions contain a bug that impacts logged data.

Usage

We will guide you step-by-step, but you can always check the expected result This is how final implementation should look like:

Step 1: Prepare Talsec library

Add dependency to your pubspec.yaml file

dependencies:
  freerasp: 1.1.0

and then run: pub get

iOS setup

After depending on plugin follow with these steps:

  1. Open terminal
  2. Navigate to your Flutter project
  3. Switch to ios folder
$ cd ios
  1. Run: pod install
$ pod install

Note: .symlinks folder should be now visible under your ios folder.

  1. Open .xcworkspace/.xcodeproject folder of Flutter project in xcode
  2. Go to Product > Scheme > Edit Scheme... > Build (dropdown arrow) > Pre-actions
  3. Hit + and then New Run Script Action
  4. Set Provide build setting from to Runner
  5. Use the following code to automatically use an appropriate Talsec version for a release or debug (dev) build (see an explanation here):
cd "${SRCROOT}/.symlinks/plugins/freerasp/ios"
if [ "${CONFIGURATION}" = "Release" ]; then
    rm -rf ./TalsecRuntime.xcframework
    ln -s ./Release/TalsecRuntime.xcframework/ TalsecRuntime.xcframework
else
    rm -rf ./TalsecRuntime.xcframework
    ln -s ./Debug/TalsecRuntime.xcframework/ TalsecRuntime.xcframework
fi
  1. Close the terminal window and then resolve warnings in the xcode project:

    1. Go to Show the Issue navigator
    2. Click twice on Update to recommended settings under Runner project issue > Perform changes
    3. Click twice on Update to recommended settings under Pods project issue > Perform changes

    Issues should be clear now.

Android setup

  • From root of your project, go to android > app > build.gradle
  • In defaultConfig update minSdkVersion to at least 21 (Android 5.0) or higher
android {
...
defaultConfig {
    ...
    minSdkVersion 21
    ...
    }
...
}

Dev vs. Release version

Dev version is used during the development of application. It separates development and production data and disables some checks which won't be triggered during development process:

  • Emulator-usage (onEmulatorDetected)
  • Debugging (onDebuggerDetected)
  • Signing (onTamperDetected)

Which version of freeRASP is used is tied to development stage of application - more precisely, how application is compiled.

  • debug (assembleDebug) = dev version
  • release (assembleRelease) = release version

Step 2: Setup the Configuration for your App

Make (convert or create a new one) your root widget (typically one in runApp(MyWidget())) and override its initState in State

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    
    //TODO: freeRASP implementation
  }
}

and then create a Talsec config and insert androidConfig and/or IOSConfig with highlighted identifiers: expectedPackageName and expectedSigningCertificateHash are needed for Android version.
expectedPackageName - package name of your app you chose when you created it
expectedSigningCertificateHash - hash of the certificate of the key which was used to sign the application. Hash which is passed here must be encoded in Base64 form Similarly, appBundleId and appTeamId are needed for iOS version of app. If you publish on the Google Play Store and/or Huawei AppGallery, you don't have to assign anything to supportedAlternativeStores as those are supported out of the box.

Lastly, pass a mail address to watcherMail to be able to get reports. Mail has a strict form [email protected] which is passed as String.

@override
 void initState() {
    super.initState();

    TalsecConfig config = TalsecConfig(

      // For Android
      androidConfig: AndroidConfig(
        expectedPackageName: 'YOUR_PACKAGE_NAME',
        expectedSigningCertificateHash: 'HASH_OF_YOUR_APP',
        supportedAlternativeStores: ["com.sec.android.app.samsungapps"],
      ),
   
      // For iOS
      IOSConfig: IOSconfig(
        appBundleId: 'YOUR_APP_BUNDLE_ID',
        appTeamId: 'YOUR_APP_TEAM_ID',
      ),
  
      // Common email for Alerts and Reports
      watcherMail: '[email protected]',
  );
}

Step 3: Handle detected threats

Create AndroidCallback and/or IOSCallback objects and provide VoidCallback function pointers to handle detected threats:

@override
void initState(){
    // Talsec config
    // ...
    
    // Callback setup
    TalsecCallback callback = TalsecCallback(

      // For Android
      androidCallback: AndroidCallback(
          onRootDetected: () => print('Root detected'),
          onEmulatorDetected: () => print('Emulator detected'),
          onHookDetected: () => print('Hook detected'),
          onTamperDetected: () => print('Tamper detected'),
          onDeviceBinding: () => print('Device binding detected'),
          onUntrustedInstallationDetected: () => print('Untrusted installation detected'),
      ),

      // For iOS
      IOSCallback: IOScallback(
        onSignatureDetected: () => print('Signature detected'),
        onRuntimeManipulationDetected: () => print('Runtime manipulation detected'),
        onJailbreakDetected: () => print('Jailbreak detected'),
        onPasscodeChangeDetected: () => print('Passcode change detected'),
        onPasscodeDetected: () => print('Passcode detected'),
        onSimulatorDetected: () => print('Simulator detected'),
        onMissingSecureEnclaveDetected: () => print('Missing secure enclave detected'),
        onDeviceChangeDetected: () => print('Device change detected'),
        onDeviceIdDetected: () => print('Device ID detected'),
      ),

      // Common for both platforms
      onDebuggerDetected: () => print("Debugger detected"),
    );
}

Step 4: Start the Talsec

Start Talsec to detect threats just by adding these two lines below the created config and the callback handler:

void initState(){
  // Talsec config
  // ...
  // Talsec callback handler
  // ...
  
  TalsecApp app = TalsecApp(
        config: config,
        callback: callback,
  );
  app.start();
}

And you're done 🎉 !

Troubleshooting

[Android] Cloud not find ... dependency issue

Solution: Add dependency manually (see issue)
In android -> app -> build.gradle add these dependencies

dependencies {

 ... some other dependecies ...

   // Talsec Release
   debugImplementation 'com.aheaditec.talsec.security:TalsecSecurity-Community:3.1.0-dev'

   // Talsec Debug
   releaseImplementation 'com.aheaditec.talsec.security:TalsecSecurity-Community:3.1.0-release'
}

[iOS] Unable to build release for simulator in Xcode (errors)

Solution: Simulator does not support release build of Flutter - more about it here. Use real device in order to build app in release mode.

Comments
  • Error while lauching my app

    Error while lauching my app

    I've trying to run my app using freerasp and when it's launched I get this error at runtime:

    ======== Exception caught by services library ======================================================
    The following MissingPluginException was thrown while activating platform stream on channel plugins.aheaditec.com/events:
    MissingPluginException(No implementation found for method listen on channel plugins.aheaditec.com/events)
    
    When the exception was thrown, this was the stack: 
    #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:165:7)
    <asynchronous suspension>
    #1      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:506:9)
    <asynchronous suspension>
    

    When I remove this line TalsecApp(callback: callback, config: talsecConfig).start();

    It's not throwing it anymore.

    I have a dependency on freerasp: ^1.1.0

    Have you experienced something alike in the past?

    opened by Pacane 13
  • Deprecated DexFile APIs

    Deprecated DexFile APIs

    I have walked through the guide for adding the package to my project, and I doesn't seem to be working in my project.

    I've been missing with the expected values to test if any callback would be invoked, but nothing gets invoked. Instead, I am getting these warnings over and over every 10 seconds

    I/System  (24218): Opening DexFile: /data/app/com.test.project.dev-LGO3HZxe32u2d8rLunK-_A==/base.apk
    W/est.project.de(24218): Opening an oat file without a class loader. Are you using the deprecated DexFile APIs?
    W/System  (24218): A resource failed to call close.
    

    I hope it would help.

    opened by ShadyZekry 10
  • Not receiving Watcher Alert emails

    Not receiving Watcher Alert emails

    I am using FreeRasp v3.0.2 on my Flutter app. Flutter version is 3.3.2 (as of today). I am not receiving any Watcher email alerts after updating the FreeRasp to version 3.0.0 and above on my Production as well as UAT builds. I was successfully receiving the alerts previously but after updating to 3.0.0, I stopped receiving the mails. I have correctly configured the watcher email field to my gmail as well, I have also written separate config for android and iOS as well. Still not receiving any mail, kindly help in solving the issue as I don't know what configuration error I have made (I have not changed the same from the beginning). Is there a way to test the mail sending functionality?

    bug 
    opened by rakesh0689 8
  • Error on android

    Error on android

    Hi,

    I follow the example and got the following error in android.

    MissingPluginException(No implementation found for method setConfig on channel plugins.aheaditec.com/config) I/flutter ( 8987): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)

    Could you please help take a look? thanks

    opened by neroaCu 6
  • Package not working for me

    Package not working for me

    I am interested in this package

    I used it as follows in documntion but it detected nothing ..

    I used SHA1 that I got from gradlew signingReport command so I am not sure if it's the right way it was under the following lines

     Task :app:signingReport
    Variant: debug
    Config: debug
    Store: C:\Users\myuserhere\.android\debug.keystore
    Alias: AndroidDebugKey
    MD5: here is md5
    SHA1: here is the one I used ..
    

    image

    image ` image image image

      • Result on Emulator for app-relase Memu Emulator *

    image

    I did something wrong or there is a problem that emualtor not getting detected ? I know there is a different between debug and relase but not understanding if I did mistake relayed to that ... not professional to know that details

    opened by AhmedHammad0900 5
  • Build module Fail in IOS

    Build module Fail in IOS

    Hi, I install this plugin but it failed to compile.

    here is the error message

    Failed to build module 'TalsecRuntime' from its module interface; the compiler that produced it, 'Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6)', may have used features that aren't supported by this compiler, 'Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)'

    Flutter (Channel stable, 2.5.0, on macOS 11.2.3 20D91 darwin-x64, locale en-GB) • Flutter version 2.5.0 • Upstream repository https://github.com/flutter/flutter.git • Framework revision 4cc385b4b8 (6 months ago), 2021-09-07 23:01:49 -0700 • Engine revision f0826da7ef • Dart version 2.14.0

    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3) • Platform android-31, build-tools 30.0.3 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) • All Android licenses accepted.

    [✓] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode12.5.app/Contents/Developer • Xcode 12.5.1, Build version 12E507 • CocoaPods version 1.10.1

    [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

    [✓] Android Studio (version 4.2) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

    [✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1) • IntelliJ at /Applications/IntelliJ IDEA.app • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart

    [✓] IntelliJ IDEA Community Edition (version 2021.1.3) • IntelliJ at /Applications/IntelliJ IDEA CE.app • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart

    Could you please help? thanks

    opened by neroaCu 5
  • expectedSigningCertificateHash

    expectedSigningCertificateHash

    Hey guys.

    I'm using such function to get the expectedSigningCertificateHash: String encodedCert = base64.encode(utf8.encode('MY_SHA-256'));

    expectedPackageName - the same value as in AndroidManifest.xml supportedAlternativeStores - just an empty array ([])

    But after I'm running the app in a release mode on the device I'm getting the next: MissingPluginException(No implementation found for method listen on channel plugins.aheaditec.com/events) MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:165) EventChannel.receiveBroadcastStream. (package:flutter/src/services/platform_channel.dart:506)

    For iOS, this lib works fine.

    What can I do to make it work on Android too?

    opened by Igormot 5
  • iOS build error, TalsecRuntime module not found

    iOS build error, TalsecRuntime module not found

    On android works great, but on ios I can't build the app since won't find the TalsecRuntime module here is the error:

        /Users/macbookpro/Documents/flutterSDK/.pub-cache/hosted/pub.dartlang.org/freerasp-1.0.0/ios/Classes/SwiftFreeraspPlugin.swift:3:8: error: no such module
        'TalsecRuntime'
        import TalsecRuntime
                    ^
        /Users/macbookpro/Documents/flutterSDK/.pub-cache/hosted/pub.dartlang.org/freerasp-1.0.0/ios/Classes/SwiftFreeraspPlugin.swift:3:8: error: no such module
        'TalsecRuntime'
        import TalsecRuntime
                    ^
    
    opened by leopi99 5
  • Not working

    Not working

    I'm testing on Emulator, there is no error. There is no notification that it works. I put print everywhere, nothing happens. What is the problem. Android 12.

    opened by bugrevealingbme 4
  • Swift Compiler Error (Xcode): No such module 'TalsecRuntime'

    Swift Compiler Error (Xcode): No such module 'TalsecRuntime'

    We have used Free-RASP-Flutter for our app. The Android build is working fine, but the iOS one gives the following error.

    Swift Compiler Error (Xcode): No such module 'TalsecRuntime'
    /Users/eil-its/flutter-sdk/.pub-cache/hosted/pub.dartlang.org/freerasp-3.0.2/ios/Classes/SwiftFreeraspPlugin.swift:2:7
    
    Could not build the application for the simulator.
    Error launching application on iPhone 14 Pro Max.
    

    Please advise.

    waiting for response 
    opened by its-engineersindia 4
  • Not working in Android

    Not working in Android

    Hi,

    Callback functions does not detect even I open the app on emulator. I think onDebuggerDetected trigger. In ios, there is nothing wrong.

    Output is

    Accessing hidden method Lcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V (unsupported, reflection, allowed)
    W/PowerProfile(16444): ambient.on is deprecated! Use ambient.on.display0 instead.
    W/PowerProfile(16444): screen.on is deprecated! Use screen.on.display0 instead.
    W/PowerProfile(16444): screen.full is deprecated! Use screen.full.display0 instead.
    W/*****(16444): Accessing hidden method Lcom/android/internal/os/PowerProfile;->getBatteryCapacity()D (unsupported, reflection, allowed)
    I/DrmHal  (16444): found instance=clearkey [email protected]::IDrmFactory
    I/DrmHal  (16444): found instance=default [email protected]::IDrmFactory
    I/DrmHal  (16444): found instance=widevine [email protected]::IDrmFactory
    E/HMSSDK_HMSPackageManager(16444): resolveInfoList is null or empty
    E/HMSSDK_HMSPackageManager(16444): PackagePriorityInfo list is null
    E/HMSSDK_HMSPackageManager(16444): <initHmsPackageInfoForMultiService> Failed to find HMS apk
    I/HMSSDK_HMSPackageManager(16444): Enter getHMSPackageNameForMultiService
    E/HMSSDK_HMSPackageManager(16444): resolveInfoList is null or empty
    E/HMSSDK_HMSPackageManager(16444): PackagePriorityInfo list is null
    E/HMSSDK_HMSPackageManager(16444): <initHmsPackageInfoForMultiService> Failed to find HMS apk
    I/HMSSDK_HuaweiMobileServicesUtil(16444): hmsPackageName is com.huawei.hwid
    E/HMSSDK_HMSPackageManager(16444): resolveInfoList is null or empty
    E/HMSSDK_HMSPackageManager(16444): PackagePriorityInfo list is null
    E/HMSSDK_HMSPackageManager(16444): <initHmsPackageInfoForMultiService> Failed to find HMS apk
    I/HMSSDK_HuaweiMobileServicesUtil(16444): HMS is not installed
    I/HMSSDK_HMSPackageManager(16444): enter asyncOnceCheckMDMState
    I/HMSSDK_HMSPackageManager(16444): quit asyncOnceCheckMDMState
    I/TestLibrary(16444): REQ OK
    I/EngineFactory(16444): Provider GmsCore_OpenSSL not available
    
    android 
    opened by fehmivelioglu 4
  • java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference

    java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference

    Can not reproduce this NPE locally. It happened on Android 11 & 12 for a few users.

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
           at com.aheaditec.talsec.security.k1.e(SourceFile:10)
           at com.aheaditec.talsec.security.k1.g(SourceFile:10)
           at com.aheaditec.talsec.security.k1.$r8$lambda$llnNtpFpp0MEWB0RhtqrUDAuXaY(SourceFile)
           at com.aheaditec.talsec.security.k1$$InternalSyntheticLambda$1$fa5e170b00cd179a7b8aca1202b01d848d1d21c7b74151c65d5fdb6fc8039d8d$0.run(k1.java:4)
           at com.aheaditec.talsec.security.m1.a(SourceFile:25)
           at com.aheaditec.talsec.security.k1.d(SourceFile:1)
           at com.aheaditec.talsec.security.k1.a(SourceFile:2)
           at com.aheaditec.talsec.security.s1.d(SourceFile:3)
           at com.aheaditec.talsec.security.s1.$r8$lambda$DEiFfqTS15ahlVEiavfeOkwe6KI(SourceFile)
           at com.aheaditec.talsec.security.s1$$InternalSyntheticLambda$1$70e647751427081963304fa1c05aa9eb4e5c1786996cb107c2e81f823c0c2dce$0.run(s1.java:4)
           at java.lang.Thread.run(Thread.java:923)
    
    bug android 
    opened by olexale 3
  • Root detected on unrooted AVD system images

    Root detected on unrooted AVD system images

    I have added freeRASP to my app and I can confirm that root is detected on a rooted API 31 level system image using an android emulator. I can also confirm that android emulators using unrooted system images with API level 31 or higher do not get detected, as I would expect. The trouble is that any android emulator running an unrooted system image with API level 30 or lower (I've tested down to API level 27) always get detected as a rooted device.

    Here is the main.dart I used for testing:

    import 'package:flutter/material.dart';
    import 'package:freerasp/talsec_app.dart';
    
    void main() {
      runApp(const MyApp());
      initFreeRASP();
    }
    
    void initFreeRASP() {
      final callback = TalsecCallback(
        androidCallback: AndroidCallback(
          onRootDetected: () => print('ROOT DETECTED'),
        ),
        iosCallback: const IOSCallback(),
      );
      final app = TalsecApp(
        config: TalsecConfig(
          watcherMail: '[email protected]',
          androidConfig: AndroidConfig(
            expectedPackageName: 'abc',
            expectedSigningCertificateHash:
                'YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=',
          ),
          iosConfig: const IOSconfig(
            appBundleId: 'abc',
            appTeamId: 'abc123',
          ),
        ),
        callback: callback,
      );
      app.start();
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) => Container();
    }
    

    Here are the android emulator configurations I have tested (all unrooted):

    • Pixel 5 API 30
    • Pixel 4a API 30
    • Pixel 3a XL API 29
    • Pixel 3 XL API 28
    • Pixel 3 XL API 27
    bug to be fixed android 
    opened by brycethorup 4
  • ANR in production on init

    ANR in production on init

    Hi, several ANR's in production shown in Play Console and Crashlytics for Flutter Android. Android versions: 9, 10, 11, 12. Can't reproduce it locally, I hope the logs help.

      #00  pc 0x000000000009aec4  /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
      #01  pc 0x0000000000057ca0  /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
      #02  pc 0x000000000008808c  /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::transact(int, unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int)+564)
      #03  pc 0x000000000008353c  /system/lib64/libhidlbase.so (android::hardware::BpHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function<void (android::hardware::Parcel&)>)+76)
      #04  pc 0x000000000007caa0  /system/lib64/libhidlbase.so (android::hidl::base::V1_0::BpHwBase::_hidl_interfaceChain(android::hardware::IInterface*, android::hardware::details::HidlInstrumentor*, std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)+248)
      #05  pc 0x000000000007db0c  /system/lib64/libhidlbase.so (android::hidl::base::V1_0::BpHwBase::interfaceChain(std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)+144)
      #06  pc 0x000000000004b590  /system/lib64/libhidlbase.so (android::hardware::details::canCastInterface(android::hidl::base::V1_0::IBase*, char const*, bool)+292)
      #07  pc 0x000000000004e5f0  /system/lib64/libhidlbase.so (android::hardware::details::getRawServiceInternal(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool)+1088)
      #08  pc 0x000000000003b61c  /system/lib64/<EMAIL_ADDRESS> (android::sp<android::hardware::drm::V1_0::IDrmFactory> android::hardware::details::getServiceInternal<android::hardware::drm::V1_0::BpHwDrmFactory, android::hardware::drm::V1_0::IDrmFactory, void, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool)+96)
      #09  pc 0x0000000000022730  /system/lib64/libmediadrm.so (android::hardware::drm::V1_0::IDrmFactory::getService(android::hardware::hidl_string const&, bool)+176)
      #10  pc 0x000000000002256c  /system/lib64/libmediadrm.so (std::__1::__function::__func<void android::DrmUtils::(anonymous namespace)::MakeHidlFactories<android::hardware::drm::V1_0::IDrmFactory, std::__1::vector<android::sp<android::hardware::drm::V1_0::IDrmFactory>, std::__1::allocator<android::sp<android::hardware::drm::V1_0::IDrmFactory> > > >(unsigned char const*, std::__1::vector<android::sp<android::hardware::drm::V1_0::IDrmFactory>, std::__1::allocator<android::sp<android::hardware::drm::V1_0::IDrmFactory> > >&)::'lambda'(android::hardware::hidl_vec<android::hardware::hidl_string> const&), std::__1::allocator<void android::DrmUtils::(anonymous namespace)::MakeHidlFactories<android::hardware::drm::V1_0::IDrmFactory, std::__1::vector<android::sp<android::hardware::drm::V1_0::IDrmFactory>, std::__1::allocator<android::sp<android::hardware::drm::V1_0::IDrmFactory> > > >(unsigned char const*, std::__1::vector<android::sp<android::hardware::drm::V1_0::IDrmFactory>, std::__1::allocator<android::sp<android::hardware::drm::V1_0::IDrmFactory> > >&)::'lambda'(android::hardware::hidl_vec<android::hardware::hidl_string> const&)>, void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>::operator()(android::hardware::hidl_vec<android::hardware::hidl_string> const&)+116)
      #11  pc 0x000000000006749c  /system/lib64/libhidlbase.so (std::__1::__function::__func<android::hidl::manager::V1_0::BpHwServiceManager::_hidl_list(android::hardware::IInterface*, android::hardware::details::HidlInstrumentor*, std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)::$_5, std::__1::allocator<android::hidl::manager::V1_0::BpHwServiceManager::_hidl_list(android::hardware::IInterface*, android::hardware::details::HidlInstrumentor*, std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)::$_5>, void (android::hardware::Parcel&)>::operator()(android::hardware::Parcel&)+300)
      #12  pc 0x0000000000083558  /system/lib64/libhidlbase.so (android::hardware::BpHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function<void (android::hardware::Parcel&)>)+104)
      #13  pc 0x0000000000076c6c  /system/lib64/libhidlbase.so (android::hidl::manager::V1_2::BpHwServiceManager::_hidl_listManifestByInterface(android::hardware::IInterface*, android::hardware::details::HidlInstrumentor*, android::hardware::hidl_string const&, std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)+312)
      #14  pc 0x00000000000775c8  /system/lib64/libhidlbase.so (android::hidl::manager::V1_2::BpHwServiceManager::listManifestByInterface(android::hardware::hidl_string const&, std::__1::function<void (android::hardware::hidl_vec<android::hardware::hidl_string> const&)>)+156)
      #15  pc 0x0000000000021648  /system/lib64/libmediadrm.so (android::DrmUtils::MakeDrmFactories(unsigned char const*)+208)
      #16  pc 0x00000000000154f4  /system/lib64/libmediadrm.so (android::DrmHal::makeDrmFactories()+48)
      #17  pc 0x0000000000015674  /system/lib64/libmediadrm.so (android::DrmHal::DrmHal()+84)
      #18  pc 0x0000000000021478  /system/lib64/libmediadrm.so (android::DrmUtils::MakeDrm(int*)+48)
      #19  pc 0x00000000000503bc  /system/lib64/libmedia_jni.so (android::JDrm::JDrm(_JNIEnv*, _jobject*, unsigned char const*, android::String8 const&)+164)
      #20  pc 0x0000000000052344  /system/lib64/libmedia_jni.so (android_media_MediaDrm_native_setup(_JNIEnv*, _jobject*, _jobject*, _jbyteArray*, _jstring*)+344)
      at android.media.MediaDrm.native_setup (MediaDrm.java)
      at android.media.MediaDrm.<init> (MediaDrm.java:282)
      at com.aheaditec.talsec.security.t2.b (SourceFile:4)
      at com.aheaditec.talsec.security.t2.a (SourceFile:1)
      at com.aheaditec.talsec.security.t2$a.a (SourceFile:1)
      at com.aheaditec.talsec.security.t2$a.invoke (SourceFile:1)
      at com.aheaditec.talsec.security.d5.a (SourceFile:1)
      at com.aheaditec.talsec.security.t2.a (SourceFile:2)
      at com.aheaditec.talsec.security.p4.<init> (SourceFile:6)
      at com.aheaditec.talsec.security.r.c (SourceFile:6)
      at com.aheaditec.talsec.security.r.b (SourceFile:7)
      at com.aheaditec.talsec.security.r.a (SourceFile:8)
      at com.aheaditec.talsec.security.j.<init> (SourceFile:3)
      at com.aheaditec.talsec.security.y1.a (SourceFile:5)
      at com.aheaditec.talsec.security.r1.<init> (SourceFile:4)
      at com.aheaditec.talsec.security.r1.a (SourceFile:4)
      at com.aheaditec.talsec_security.security.api.Talsec.start (SourceFile:1)
      at com.aheaditec.freerasp.TalsecApp.init (TalsecApp.kt:27)
      at com.aheaditec.freerasp.MethodCallHandlerImpl.init (MethodCallHandlerImpl.kt:54)
      at com.aheaditec.freerasp.MethodCallHandlerImpl.onMethodCall (MethodCallHandlerImpl.kt:21)
      at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage (MethodChannel.java:262)
      at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler (DartMessenger.java:295)
      at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0 (DartMessenger.java:319)
      at io.flutter.embedding.engine.dart.DartMessenger.$r8$lambda$TsixYUB5E6FpKhMtCSQVHKE89gQ (DartMessenger.java)
      at io.flutter.embedding.engine.dart.DartMessenger$$InternalSyntheticLambda$0$ceffc6bae7d364cb48afaf1aaebd60bf9050360d0efb9035ebc54f0851df0a05$0.run (DartMessenger.java)
      at android.os.Handler.handleCallback (Handler.java:938)
      at android.os.Handler.dispatchMessage (Handler.java:99)
      at android.os.Looper.loop (Looper.java:250)
      at android.app.ActivityThread.main (ActivityThread.java:7803)
      at java.lang.reflect.Method.invoke (Method.java)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:958)
    bug to be fixed android 
    opened by kreativityapps 4
  • Warning on Play store when submitting builds with FreeRasp

    Warning on Play store when submitting builds with FreeRasp

    When submitting app to the Play store with FreeRASP v3.0.2 we get this warning regarding critical issue with play-services-safetynet com.google.android.gms:play-services-safetynet:18.0.1

    image

    On investigating further we do see It's being included as a transitive dependency.

    image

    documentation to be fixed android 
    opened by sahildudeja-tide 1
  • Failed build iOS with Codemagic

    Failed build iOS with Codemagic

    Hello @talsec-app I tried to build and distribute app within codemagic, but i got this error

    Swift Compiler Error (Xcode): No such module 'TalsecRuntime'
    /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/freerasp-3.0.1/ios/Classes/SwiftFreeraspPlugin.swift:2:7
    
    bug documentation to be fixed iOS 
    opened by santomalau03 8
Releases(v3.0.2)
  • v3.0.2(Aug 18, 2022)

    freeRASP 3.0.2

    We are constantly listening to our community to make freeRASP better. This update contain fixes to reported issues.

    What's new in 3.0.2?

    freeRASP 3.0.1

    This update contains small fix of documentation.

    What's new in 3.0.1?

    • 🛠️ Fixed Plans Comparison table in README.md
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Jul 29, 2022)

    We are constantly working on improving your freeRASP experience, and today we're happy to announce a major update packed with new features and improvements! Here's the list of all the new things we included in the latest release.

    What's new in 3.0.0?

    Among the first changes, you will notice our prettier and easy-to-navigate README. We also created a much-desired tool for a hash conversion (including a guide on how to use it) and added a check, so you know you've done it right.

    • 👀 Updated README.md
    • 🛠️ Added tool for converting sha-256 hash to base64 form
    • 🛠️ Added checks for hash correctness in the AndroidConfig constructor

    And as usual, the new release also contains some bug squashing.

    • ✔️ Fixed issue with profile mode on Android
    • ✔️ Fixed onCancel nullable issue

    Android additions

    For Android builds, we focused on extending the critical tampering detection and improving the informational value provided by logs. You may also notice improved performance and API changes for device binding checks.

    • 🔎 Added native checks in C
    • 📄 Added information about security patches to logs
    • 📄 Added information about Google Play Services, Huawei Mobile Services, SafetyNet Verify Apps
    • ⚡ Improved performance
    • ❗ BREAKING API CHANGE: Renamed onDeviceBinding callback to onDeviceBindingDetected

    iOS improvements

    For iOS devices, we prepared upgraded and polished incident detections and even added some new ones. Other changes include several API modifications, based on discussion with the community.

    • 🔎 Improved detection of jailbreak hiders (Shadow)
    • ⚡ Improved jailbreak detection
    • ⚡ Improved hook detection
    • ❗ BREAKING API CHANGE: Added unofficialStoreDetected callback
    • ❗ BREAKING API CHANGE: Removed onPasscodeChangeDetected
    • ❗ BREAKING API CHANGE: Renamed IOScallback to IOSCallback
    • ❗ BREAKING API CHANGE: Renamed parameter IOSCallback to iosCallback
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Feb 15, 2022)

    Whats new in freeRASP

    Breaking changes

    • ❗IOSCallback parameter in TalsecCallback was renamed to iosCallback
    • ❗IOSConfig parameter in TalsecConfig was renamed to iosConfig

    Added

    • ✔️ added configuration tests
    • 🔼 updated jailbreak checks to detect jailbreak hiders
    • 🔼 updated hook checks

    Changed

    • ⚡ improved performance during library initialization
    • 🔼 better debugger handling
    • 🔼 better incident handling
    • ❌ sensitive content logging modification, package names of well-known dangerous applications (rooting apps, hooking frameworks, etc...) are no longer sent to Elastic, only a flag that device contains one of those applications is sent

    Fixed

    • 🆒 usage of deprecated API calls (DexFile) for Android 8.0 and above
    • 🆒 issue with root prompt ("app asking for root permission") on rooted devices
    • 🆒 fixed issue with false positive during device binding check
    Source code(tar.gz)
    Source code(zip)
This repository contains the Syncfusion Flutter UI widgets examples and the guide to use them.

Syncfusion Flutter examples This repository contains awesome demos of Syncfusion Flutter UI widgets. This is the best place to check our widgets to ge

Syncfusion 1.6k Jan 4, 2023
The prime objective of this app is to store the real time information of the user using firebase cloud firestore and also can delete, remove and update the customer information

crud_firestore A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Muhammad Zakariya 0 Mar 15, 2022
A showcase app for the Flutter SDK. Wonderous will educate and entertain as you uncover information about some of the most famous structures in the world.

Wonderous Navigate the intersection of history, art, and culture. Wonderous will educate and entertain as you uncover information about some of the mo

gskinner team 2.3k Dec 29, 2022
Woocommerce SDK for Flutter. The Complete Woo Commerce SDK for Flutter.

woocommerce Woocommerce SDK for Flutter. Getting Started Add the package to your pubspec.yaml and import. import 'package:woocommerce/woocommerce.dart

RAY 105 Dec 6, 2022
Flutter-fb-integration - Flutter And firebase integration Guide

Quickstart Guide This project still use my firebase server config, if you want t

Naufal Aldy Pradana 0 Feb 2, 2022
A comprehensive guide on learning how to code cross platform mobile applications with the Flutter framework, from the ground up.

✳️ The Ultimate Guide to App Development with Flutter ✳️ A complete and comprehensive guide to learning Flutter with explanations, screenshots, tips,

Anthony 243 Jan 1, 2023
A Flutter Travel guide app UI With Animation

travell_app A new Flutter project. Getting Started This project is a starting po

Nurunnahar nody 3 Feb 26, 2022
A Flutter widget that checks and displays the version status of application and you can easily guide user to update your app

A most easily usable Flutter widget about application version check! 1. About 1.

Kato Shinya 1 Dec 16, 2021
Udemy Course "Dart and Flutter: The Complete Developer's Guide" Project. (With Hive DB)

Udemy-Course-Flutter Udemy Course "Dart and Flutter: The Complete Developer's Guide" Project. (With Hive DB) The course: https://www.udemy.com/course/

Muhammad Tayyab 1 Jun 11, 2022
Valorant Guide app: a small demo application to demonstrate Flutter application tech-stacks

Valorant Guide Design Design by: Malik Abimanyu App Valorant Guide app is a smal

Ümit Duran 41 Sep 30, 2022
A Marvel Heroes and Comics guide, built with Flutter and MarvelAPI to help people get to know more about this amazing universe

?? Marvel Guide ?? ?? Project A Marvel Heroes and Comics guide, built with Flutter and MarvelAPI to help people get to know more about this amazing un

Gustavo T. Chinalia 3 Aug 30, 2022
This is a practical guide to MVVM architecture in flutter with riverpod for state management.

flutter_mvvm This project is a practical guide to MVVM pattern in flutter with Riverpod. Install flutter Get your APIKEY from https://api.openweatherm

Augustine Victor 3 Jan 1, 2023
Arisriverpodmodifiersexm - The Ultimate Guide For Modifiers

Flutter Tutorial - Riverpod - 3/3 The Ultimate Guide For Modifiers Riverpod has

Behruz Hurramov 1 Jan 9, 2022
❤️‍🔥 Valorant App Guide Design

Valorant App UI Valorant Guide Nedir? ❤️‍?? Valorant Guide, Flutter ile yapılmış bir UI çalışmasıdır. (Zamanla güncellenecektir) Önizleme Mimari UI Co

Doğan Oğuz 3 Sep 29, 2022
📖 A Guide for your first pull request

?? A Guide for your first pull request This project has been excluded by Hacktoberfest 2022 ✨ This project will help you to make your first pull reque

Dip Hire 27 Dec 2, 2022
A guide to using Riverpod in your project.

riverpod_explorer A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you starte

Temitope Ajiboye 10 Dec 5, 2022
A showcase of the most common Flutter animation APIs.

Flutter Animations Gallery This project is a showcase of the most common Flutter animation APIs. Preview Also available as a Flutter web demo. Setting

Andrea Bizzotto 136 Dec 10, 2022
:bug: Flutter debug helper widget with common and custom actions

Debug Friend Flutter debug helper widget with common and custom actions This helps you reduce the development and testing time of new features Show so

Stanislav Ilin 43 Dec 7, 2022
Firebase dart common interface and implementation for Browser, VM, node and flutter

firebase.dart Firebase dart common interface and implementation for Browser, VM, node and flutter Firebase Initialization Usage in browser import 'pac

Tekartik 6 Nov 28, 2021