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

Search This thread

porotikos

Senior Member
Mar 29, 2016
98
11
Hi there guys. I am desperate and need your help. For the life of me, i cant get the app to work properly. ill be thorough. Let me start

I have a xiaomi mi note 10 pro. i installed the app while the phone was locked. obviously the app didnt work. the error message was "root not availble".
So my only chance was to root it. i unlocked the bootloader and i think it was succesfull since whenever i reboot the phone, it shows "unlocked" on the bottom of the black screen when it boots.
i used the miflash unlock tool. but even after that, when i try to use the android auto enabler, the app says "root not available". but isnt this what the miflash unlock tool, did?
after "unlocking" my phone, i have Installed TWRP Recovery (i think). i followed these instructions
Steps to install TWRP recovery on the Redmi Note 8 Pro

Enable Developer options by tapping 7 times on MIUI version under About phone section of the Settings app.
Navigate to Developer options which will be under Additional settings in the Settings app.
Turn on USB debugging from there.
Now, open ADB and Fastboot (commonly known as platform-tools) folder on your computer.
Copy the downloaded TWRP file to that folder.
Open CMD (command prompt) or PowerShell window from that folder. It can be achieved in two ways:
Clear the path in the address bar. Then, type cmd or CMD and press enter.
Press shift key and right-click simultaneously. Then, select Open PowerShell window here (Windows 10) or Open command window here (Windows 8 and older).
Type adb devices and press enter.
Allow USB debugging on the phone when prompted.
Then, type adb reboot bootloader and press enter.
The phone will now boot into bootloader mode.
Now, type fastboot flash recovery NAME_OF_TWRP_FILE.img and press enter.
TWRP recovery will be now installed on your Redmi Note 8 Pro.
Lastly, type fastboot reboot and press enter to reboot your phone.

all seems to be good. please check this jpg of what i did
https://ibb.co/4Ts6LfX

Now, i should be good and have installed twrp recovery.
But there is something wrong and i cant find out, what.
when i press volume up and power buttons simultaneously, i cannot get into the twrp menu that all twrp recovery guides, talk about. all i get is a menu with 3 options. it says.
reboot
wipe data
connect with mi assistant.

No twrp option. seems like my phone is not rooted and there is no twrp menu.
from instructions i followed it says
"Root Mi Note 10 Pro:

Download Magisk
And place it in the internal memory or SD card on your device
Then go into recovery by pressing “Volume up+Power button” simultaneously
Before you root make sure you have a backup of your device
Then in TWRP select Install and find Magisk.zip and select the file
Swipe to Install and flash it.
Restart your device

But i cannot see twrp to proceed. please i need help. i have been tormented by this 3 days now. and i do not what to do. please guide me in this. i do not think of myself as a noob when it comes to computers etc. but i cant seem to solve this.
thank you for your help beforehand



edit.
sooooolved
had to use the command
fastboot oem reboot-recovery
on exit otherwise twrp would be deleted. now i have put spotify in android auto. thank you so much
 
Last edited:

iplaycn

New member
Mar 25, 2020
4
0
After repatch, it shows success, but there is still no screen2auto icon on the car.

Even after I use "triggers manager" to clear, there are still screen2auto records in AA settings - > about. After repatch, it shows success, but there is still no screen2auto icon on the car.
XIAO MI NOTE andriod 6,root by SuperSU
AAPP 0.85
Screen2Auto 1.2

AA about:
Software package:
Map: 10.15.3
YouTube Music: 3.57.52
Google play store: 6.8.21. F-all [0] 3036847
Screen2Auto: 1.2
Google play service: 20.06.16 (040300-296104215)
Android Auto: 5.1.500643-release
Google: 11.1.9.21.arm


AAPP logs:
-- Apps which will be added to whitelist: --
- Screen2Auto (ru.inceptive.screentwoauto)

-- chmod 775 sqlite3 --
OutputStream:
chmod 775 /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3
-- end chmod 775 sqlite3 --

-- Drop Triggers --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'DROP TRIGGER after_delete;'
ErrorStream:
Error: no such trigger: after_delete

-- 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";'

-- run SQL method #2 --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",1);'
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",1);
END;'
-- end SQL method #2 --

-- Check (1/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
-- Check (2/3) --
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";'
-- Check (3/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1

-- Check seems OK :) --
 
Last edited:

shmykelsa

Senior Member
Nov 21, 2013
964
697
27
Lecce
OnePlus 6T
Samsung Galaxy Z Fold3
Even after I use "triggers manager" to clear, there are still screen2auto records in AA settings - > about. After repatch, it shows success, but there is still no screen2auto icon on the car.
XIAO MI NOTE andriod 6,root by SuperSU
AAPP 0.85
Screen2Auto 1.2

AA about:
Software package:
Map: 10.15.3
YouTube Music: 3.57.52
Google play store: 6.8.21. F-all [0] 3036847
Screen2Auto: 1.2
Google play service: 20.06.16 (040300-296104215)
Android Auto: 5.1.500643-release
Google: 11.1.9.21.arm

The fact that one app does not disappear from AA after dropping the trigger is intended behaviour. The trigger prevents Google Play Services from erasing the whitelist. If you wanna get rid of one app you should clear data of Play Services.

And actually if you clear data and patch again you should solve
 

iplaycn

New member
Mar 25, 2020
4
0
The fact that one app does not disappear from AA after dropping the trigger is intended behaviour. The trigger prevents Google Play Services from erasing the whitelist. If you wanna get rid of one app you should clear data of Play Services.

And actually if you clear data and patch again you should solve

Because I couldn't clear the Google play service's data(I press the clean button, but it doesn't work), I uninstalled and reinstalled it, then patch again, but the problem still exists.
 

flotouran95

Member
Oct 8, 2013
32
0
Cluj Napoca
Hy all. Ii ask you how ist posibil too put WhatsApp icon in my list? My phone ist S10+. Only Telegram appeared but isn't not working. message-14816510-3355736183110626001.jpgIMG-20200314-WA0008.jpg

Trimis de pe al meu SM-G975F folosind Tapatalk
 

shmykelsa

Senior Member
Nov 21, 2013
964
697
27
Lecce
OnePlus 6T
Samsung Galaxy Z Fold3
Hy all. Ii ask you how ist posibil too put WhatsApp icon in my list? My phone ist S10+. Only Telegram appeared but isn't not working.View attachment 4983853View attachment 4983855

Trimis de pe al meu SM-G975F folosind Tapatalk

Whatsapp should not (and will not) appear as an icon. Only media apps and apps with user interface appear as an icon in Android Auto. Telegram fakes itself as a media app in order to let the user hear audio files shared via Telegram on Android Auto, but as of now Whatsapp hasn't got such function.

No messaging app will have an interface into Android Auto with chat list, messages etc. They can be used through voice notes and notifications.
 
  • Like
Reactions: flotouran95

annexhack

Member
Mar 13, 2020
35
25
Moscow
Even after I use "triggers manager" to clear, there are still screen2auto records in AA settings - > about. After repatch, it shows success, but there is still no screen2auto icon on the car.
XIAO MI NOTE andriod 6,root by SuperSU
AAPP 0.85
Screen2Auto 1.2

AA about:
Software package:
Map: 10.15.3
YouTube Music: 3.57.52
Google play store: 6.8.21. F-all [0] 3036847
Screen2Auto: 1.2
Google play service: 20.06.16 (040300-296104215)
Android Auto: 5.1.500643-release
Google: 11.1.9.21.arm


AAPP logs:
-- Apps which will be added to whitelist: --
- Screen2Auto (ru.inceptive.screentwoauto)

-- chmod 775 sqlite3 --
OutputStream:
chmod 775 /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3
-- end chmod 775 sqlite3 --

-- Drop Triggers --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'DROP TRIGGER after_delete;'
ErrorStream:
Error: no such trigger: after_delete

-- 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";'

-- run SQL method #2 --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",1);'
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",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", "ru.inceptive.screentwoauto",1);
END;'
-- end SQL method #2 --

-- Check (1/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
-- Check (2/3) --
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";'
-- Check (3/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car#car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|230|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|234|0|0||app_white_list||||ru.inceptive.screentwoauto||1
com.google.android.gms.car|247|0|0||app_white_list||||ru.inceptive.screentwoauto||1

-- Check seems OK :) --

Hey. Your problem is with Google Apps. Starting from version 20.12.15 AAPP does not work
 

chuppito

Senior Member
Jun 29, 2014
280
66
Hi, to use screen2auto, it takes that aa phenotype patcher works.
 
Last edited:

chuppito

Senior Member
Jun 29, 2014
280
66
Hello, I have 2 root phones
1 huawei and 1 google pixel 3
Both have the latest version google play services (20.15.13).
It works well on the huawei but not on the pixel. Do you have any idea why?
I noticed that the pixel system files is only in reading. The one in the huawei is in writing, I do not know if it has a relationship because phenotype is in a editable directory.
I hope you can help me.
Thank you


-- Apps which will be added to whitelist: --
- WhatsApp (com.whatsapp)
- Screen2Auto (ru.inceptive.screentwoauto)
- Waze (com.waze)
- AA Phenotype Patcher (pl.eselter.aaphenotypepatcher)
- AA Mirror (com.github.slashmax.aamirror)
- Google*Pay (com.google.android.apps.walletnfcrel)

-- chmod 775 sqlite3 --
OutputStream:
chmod 775 /data/user/0/pl.eselter.aaphenotypepatcher/sqlite3
-- end chmod 775 sqlite3 --

-- Drop Triggers --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'DROP TRIGGER after_delete;'
ErrorStream:
Error: no such trigger: after_delete

-- 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:
Error: database is locked

-- run SQL method #2 --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",1);'
ErrorStream:
Error: database is locked
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db '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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",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.whatsapp,ru.inceptive.screentwoauto,com.waze,pl.eselter.aaphenotypepatcher,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel",1);
END;'
ErrorStream:
Error: database is locked
-- end SQL method #2 --

-- Check (1/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
-- Check (2/3) --
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:
Error: database is locked
-- Check (3/3) --
OutputStream:
/data/user/0/pl.eselter.aaphenotypepatcher/sqlite3 /data/data/com.google.android.gms/databases/phenotype.db 'SELECT * FROM Flags WHERE name="app_white_list";'
InputStream:
com.google.android.gms.car#car_setup|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car_setup|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car_setup|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car#car|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|230|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|234|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1
com.google.android.gms.car|247|0|0||app_white_list||||com.whatsapp,ru.inceptive.screentwoauto,com.waze,com.github.slashmax.aamirror,com.google.android.apps.walletnfcrel,com.android.internal.systemui.navbar.twobutton||1

-- Check seems OK :) --
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 43
    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:

    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://xdaforums.com/attachment.php?attachmentid=4717719&stc=1&d=1551874248
    ScreenStream_mod.apk: https://xdaforums.com/attachment.php?attachmentid=4717718&stc=1&d=1551874248

    ScreenStream v2 mod (previous version, some like it more): https://xdaforums.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://xdaforums.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://xdaforums.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://xdaforums.com/showpost.php?p=78347721&postcount=1313

    If you get black screen: https://xdaforums.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.