Android auto for OsmAnd is a paid feature either through subscription or one-time purchase. Has anyone tried it and do you think its worth it?

  • heyfrancisOP
    link
    fedilink
    arrow-up
    3
    ·
    8 months ago

    I managed to enable it by spoofing the instaler-package during installation.

    How to do this?

    • alphafalcon@feddit.de
      link
      fedilink
      arrow-up
      2
      ·
      8 months ago

      I built a custom app to do it since I couldn’t manage to fire the relevant intents from an adb shell without root.

      I lifted the code from AAAD

      Specifically the InstallAPK method in MainActivity.java

      Intent intent;
      
                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                      intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
                      intent.setData(getUri(file));
                      intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK);
                  } else {
                      intent = new Intent(Intent.ACTION_VIEW);
                      intent.setDataAndTypeAndNormalize(Uri.fromFile(file), "application/vnd.android.package-archive");
                      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  }
      
                  intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
                  intent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, "com.android.vending");
                  getApplicationContext().startActivity(intent);
              } 
      
      

      Basically you construct an Intent ACTION_INSTALL_PACKAGE with data pointing to the APK file and the extras EXTRA_NOT_UNKNOWN_SOURCE=true and EXTRA_INSTALLER_PACKAGE_NAME="com.android.vending" which tells the installer that this APK is not sideloaded and it’s the play store asking to install it.

      You might still need to enable unknown sources in Android Auto developer settings (separate from phone developer settings).

      If I remember, I’ll try to pull the code for my app from my PC and post it.