[APP][root] Android Auto 3rd party App Enabler

Search This thread

turboAWD

New member
Jul 18, 2021
1
0
Not new to computers, but haven't hacked on Android too much. I have an old phone (Moto E4, Android 5.1) that was just retired. Willing to hack as much as necessary - would like to display jb4 app (car ECU piggyback software) on my Stinger main display.

I've used my S10 to test basic android auto and use the jb4 app (Edit: obviously NOT on android auto), but can't hack my S10 (for work reasons), so I don't want to hack around on that phone.

What are my chances of success? Would like to know that it SHOULD work in theory before I invest any time.

Also, use phenotype patcher (I saw somewhere it was Android 6.0+, so I couldn't use it), or root the phone + AA3AE (or whatever this app is called).

Thanks for any hints.
 
Not new to computers, but haven't hacked on Android too much. I have an old phone (Moto E4, Android 5.1) that was just retired. Willing to hack as much as necessary - would like to display jb4 app (car ECU piggyback software) on my Stinger main display.

I've used my S10 to test basic android auto and use the jb4 app (Edit: obviously NOT on android auto), but can't hack my S10 (for work reasons), so I don't want to hack around on that phone.

What are my chances of success? Would like to know that it SHOULD work in theory before I invest any time.

Also, use phenotype patcher (I saw somewhere it was Android 6.0+, so I couldn't use it), or root the phone + AA3AE (or whatever this app is called).

Thanks for any hints.
This is depreciated .. not working, old stuff..
Go follow to new app from link..
 
  • Like
Reactions: turboAWD

Top Liked Posts

  • There are no posts matching your filters.
  • 42
    Since Android Auto 3.0, third party apps have been removed from Android Auto despite having Developer Options and "Unknown Sources" checked.

    Some developers have came up with a root workaround to allow these apps to show in the menu.

    This workaround is dependent on current AA version to work and has always been implemented by specific apps. Some even had the unlock button in the AAuto interface :)

    This app comes to fix that all.

    It will list the currently installed AA third party apps, and will apply the workaround for them.

    Instructions:
    1. Get AA in developer mode and "Unknown Sources" checked. (details in steps 1-7 in this thread). Start head unit server is not needed in my tests.
    2. Open the app, click "Read apps". Check the apps you want to enable in AA.
    3. Click "Unlock"
    4. Click "Apply".
    5. Reboot.
    6. Enjoy your apps :)

    The indicator of wheter the Chimera service is enabled or not doesn't still work properly, don't take it as reference. Just click unlock every time you want to apply changes in the list.

    The app will be improved whenever I have time.

    Screenshot:
    t0fWF4L.jpg

    Download: https://androidfilehost.com/?fid=1322778262904028904 (updated 15/10 with support to android 5.0 and 6.0)
    18
    Dedicated to Galaxy S9 owners with Android 9 and all other people who get a black screen with AAM
    After updating Android, trouble came to our devices - AAM stopped working and instead of a SurfaceView mirror it shows only a black screen.
    I can please you: the solution is found.
    This is a historical obsolete text, the actual method is located below. To see this, just go to the bottom - to "More simple solution".

    It is formed by combining two programs:
    1. https://play.google.com/store/apps/details?id=info.dvkr.screenstream
    Launches a live broadcast of the device screen on port 8080
    An open source tool, thanks so much to dkrivoruchko (many thanks).
    2. https://github.com/slashmax/AABrowser/tree/master/apk
    Browser for Android Auto, displays this broadcast

    So, how to get a mirror if you have a black screen on AAM:
    1. Install ScreenStream by link 1 above
    2. Install AABrowser by reference 2 above
    3. Unlock AABrowser in AAPP, connect one time to car or emulator
    4. Edit the file /data/data/com.github.slashmax.aabrowser/shared_prefs/com.github.slashmax.aabrowser_preferences.xml
    In the parameters "home page" and "last page" we register:
    http://127.0.0.1:8080
    The easiest way is to edit the file by copying it somewhere, and then replacing the existing one.
    5. Launch ScreenStream, disable “wi-fi only” in the settings

    When connecting to the machine, do the following:
    1. Launch ScreenStream, click "Enable Broadcast"
    2. We connect to the car
    3. Run AABrowser

    This solution displays a complete mirror out of the box, without the support of a touch and a consistent sound to which we are used to AAM. It is planned to make a version based on the method described above, with the support of all these buns. If who wants - make it please :) In the meantime, use video is better than black screen.

    Note: this solution is worse than direct capture of the screen used by AAM, since it introduces a delay of ~ 1s when displaying a picture on the screen. S9 is a powerful device, the delay is very small, a second or less. I don’t know what will happen to others, but the problem seems to be so far only Samsung 9 android, which has nothing to do with weak devices.

    Upd. This manual is for any device, who can't use standart AAM, but I test it only on Galaxy S9.

    upd. I test it in motion. Navigator has no delay or It is not noticeable when you look: at the phone next to the multimedia system, there is no difference. I have a resolution of 720 and 1080 in the settings.
    But in menu I have very little delay

    Updated
    A modified version of AAM is available, based on this method, with all the goodies from the original AAM.
    Everything is simplified a bit with her, no need to mess around with AABrowser.

    For full-fledged work after installation, it must be made systemic, otherwise the screen settings are not applied until know why (some rights are not enough).
    And then everything is simple - we start the broadcast, run AAM_mod instead of AABrowser, enjoy.

    More simple solution
    Detailed instructions for modified AAM
    1. Install ScreenStream https://play.google.com/store/apps/details?id=info.dvkr.screenstream
    (but version from update below is more recommended)
    2. Install AAM_mod
    (version from update below is more recommended)
    3. Making it a system app (optional, but otherwise some screen settings, for example, rotation, are not applied)
    4. Unlock AAM_mod in AAPP
    5. Launch ScreenStream, disable “wi-fi only” in the settings

    For each connection to the machine, do the following:
    1. Launch ScreenStream, click "Enable Broadcast"
    2. We connect to the car
    3. Run AAM_mod

    If you have problems with rotation, please, connect to car with standart orientation and when you see your mirror on car display, change orientation to other.
    Note. If ScreenStream not work, try ScreenStream v2

    Update!
    Unexpectedly for me, many were outraged by the new decision due to the fact that the picture is displayed in full screen, but has a small indent. “We have tiny displays already!”, - they shouted :)
    These requests were heard, the problem was eliminated.
    The problem turned out to be in ScreenStream, for its elimination it is enough to replace the data / assets / index.html file in apk, and the holiday will come again to our street.
    It did it for version 3.0.16, but if you want to do for the latest version, it is very easy through the ApkEditor program. Recorded a video about rebuilding the package and publish index.html, but if you are not a geek, just put the attached files and enjoy :)


    The frames are removed in ScreenStreamMod! In AAM, only the shift of the wheelbarrow is fixed.
    In general, the latest version of the alternative mirror is enclosed in these files (remove previous versions)

    aam_mod2.apk: https://forum.xda-developers.com/attachment.php?attachmentid=4717719&stc=1&d=1551874248
    ScreenStream_mod.apk: https://forum.xda-developers.com/attachment.php?attachmentid=4717718&stc=1&d=1551874248

    ScreenStream v2 mod (previous version, some like it more): https://forum.xda-developers.com/attachment.php?attachmentid=4720342&stc=1&d=1552215688

    If you use the AAM "Ajust ratio on focus" option, you first need to run AAM on the machine and only then start the broadcast

    Solving problems with screen cutout: https://forum.xda-developers.com/showpost.php?p=79084489&postcount=484
    17
    SOLUTION FOR A MIRROR ON LAST GMS/AA WITHOUT DANCING AROUND IT
    Code:
    inserted 10.12.2018
    Meet the AA Phenotype Patcher: https://forum.xda-developers.com/showpost.php?p=78402151&postcount=317
    Stated that he does everything for you completely, even sql puts, but personally did not check.
    1. First of all, delete all your unlockers. They are not needed anymore
    2. Turn back on Chimera and all previously disabled Google services. They do not interfere with the work of the mirror.
    3. Switch Android Auto to Release mode, uncheck Unknown sources
    4. Install Termux https://play.google.com/store/apps/details?id=com.termux&hl=ru
    5. Install Sqlite3 for root, launch it and click Install. https://play.google.com/store/apps/details?id=com.kanolato.sqlite&hl=ru
    6. Go to Termux.
    Perform successive commands and restart the phone. After that, AAMirror will always remain in the list of Android Auto applications, with the latest versions of services and the application itself. No loss anymore.

    0
    su

    1. Open DB
    sqlite3 /data/data/com.google.android.gms/databases/phenotype.db

    2. Insert flags
    Code:
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    If you encounter Error NOT NULL constraintfailed: Flags.version (and only in this case, because car instead of car # car is used extremely rarely on phones and there is no way to check, it may not work!) Try
    Code:
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    If there is a failure here, try the third option (often does not work, but try to do it)
    Code:
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    And fourth solution
    Code:
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    3. Make a trigger to prevent their removal (only if there were no errors in the previous paragraph)
    If in the last paragraph there were no errors:
    Code:
    CREATE TRIGGER after_delete AFTER DELETE
    ON Flags
    BEGIN
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    END;

    If in the previous paragraph you had to use an first alternative option:
    Code:
    CREATE TRIGGER after_delete AFTER DELETE
    ON Flags
    BEGIN
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", (SELECT version FROM Packages WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 230, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car_setup", 234, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    END;
    If in the previous paragraph the third option worked
    Code:
    CREATE TRIGGER after_delete AFTER DELETE
    ON Flags
    BEGIN
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car#car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car#car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    END;
    If in the previous paragraph only the fourth option worked
    Code:
    CREATE TRIGGER after_delete AFTER DELETE
    ON Flags
    BEGIN
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", 240, 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    INSERT OR REPLACE INTO Flags (packageName, version, flagType, partitionId, user, name, stringVal, committed) VALUES ("com.google.android.gms.car", (SELECT version FROM ApplicationStates WHERE packageName="com.google.android.gms.car"), 0, 0, "", "app_white_list", "com.github.slashmax.aamirror",1);
    END;
    Note
    If, when creating a trigger, you see ERROR: trigger after_delete already exists, but you want to recreate it, execute
    Code:
     DROP TRIGGER after_delete;
    Then create anew
    Check your trigger to prevent messages "not working, go away". Just execute:
    Code:
     SELECT * FROM Flags WHERE name="app_white_list";
    You may see 6 or more added by you flags.
    Then, try to remove it!
    Code:
     DELETE FROM Flags WHERE name="app_white_list";
    And select again:
    Code:
     SELECT * FROM Flags WHERE name="app_white_list";
    Only if result not empty (maybe not equal 2 commands ago, but not empty), you do all correctly. Else not.

    If you raise the version of the car # car application, a temporary loss of AAMirror is possible (until a trigger is triggered, which determines the new version). To fix it quickly, repeat step 2. This fact should be taken into account.

    Hint: you can add any other AA-applications, separated by a comma, not only aamirror
    Example: "com.github.slashmax.aamirror,com.app.test"

    Important! If you see "sqlite3 not found" in the terminal as root, then sqlite3 has not been established for the root and you need to find a solution for your phone!
    Until you install it, nothing will work. If existing installers do not work (or work, but still sqlite3 not found), try to turn to the theme of the firmware specifically for your device.
    All I can offer is to try from root /system/xbin/sqlite3 or /system/bin/sqlite3 instead of just sqlite3.
    Still, perhaps it will help: i added the xbin folder to the system folder. The error is gone.

    For the future: https://forum.xda-developers.com/showpost.php?p=78347721&postcount=1313

    If you get black screen: https://forum.xda-developers.com/showpost.php?p=78548457&postcount=383
    14
    Hello,
    New version of AA Phenotype Patcher 0.8 is up.

    Changelog:
    - Added third and fourth options of @Jen94 SQLs (big thanks!)
    - Added 3 new apps to "top list" (AA Mirror Plus, Performance Monitor for VAG and AAuto Launcher)

    Download:
    https://github.com/Eselter/AA-Phenotype-Patcher/tree/master/app/release
    11
    On Xiaomi Mi8 with Magisk 18, AA Phenotype Patcher 0.6 I had to manually add exec permission on /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 otherwise it raise the following error:

    Code:
    --  Apps which will be added to whitelist: --
      - AA Mirror (com.github.slashmax.aamirror)
    
    
    -- Drop Triggers  --
     OutputStream:
      /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'DROP TRIGGER after_delete;'
     ErrorStream:
      /system/bin/sh: <stdin>[1]: /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3: can't execute: Permission denied
    
    --  DELETE old Flags  --
     OutputStream:
      /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'DELETE FROM Flags WHERE name="app_white_list";'
     ErrorStream:
      /system/bin/sh: <stdin>[1]: /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3: can't execute: Permission denied

    0.7 should fix this problem. In 0.6 I moved chmod instuction inside check if sqlite3 file exist and if exist but don't have required permissions you will see this error. It can also happend when file don't exist but you don't give su permission.