You may want to use the LineageOS keyboard with some other rom. Just installing the .apk file will result in the keyboard crashing. We can install the required files manually to get the keyboard working. This requires root, but does not require any changes to /system
Getting the files
It's best to get the files from a real LOS rom, but if you don't have one you can extract them out of a rom. Download the official rom, then extract payload.bin with https://github.com/cyxx/extract_android_ota_payload. Then mount the system.img into an empty folder
Code:
mkdir temp
sudo mount system.img temp
Grab the files system/app/LatinIME/LatinIME.apk and system/lib64/libjni_latinime.so and put them on your phone
Installing
Install the apk like normal. Then you will have to copy the lib into /data
Code:
cmd list packages -f | grep inputmethod.latin
go to that folder and copy the lib into lib/arm64. This most likely needs root. Make sure to change the permissions
Code:
# cd /data/app/com.android.input.method.latin-whatever==/
# cd lib
# mkdir arm64
# chown system:system arm64
# cd arm64
# cp /sdcard/libjni_latinime.so ./
# chown system:system libjni_latinime.so
# chmod 644 libjni_latinime.so
The keyboard should now start without crashing.
phailyoor said:
You may want to use the LineageOS keyboard with some other rom. Just installing the .apk file will result in the keyboard crashing. We can install the required files manually to get the keyboard working. This requires root, but does not require any changes to /system
Getting the files
It's best to get the files from a real LOS rom, but if you don't have one you can extract them out of a rom. Download the official rom, then extract payload.bin with https://github.com/cyxx/extract_android_ota_payload. Then mount the system.img into an empty folder
Grab the files system/app/LatinIME/LatinIME.apk and system/lib64/libjni_latinime.so and put them on your phone
Installing
Install the apk like normal. Then you will have to copy the lib into /data
go to that folder and copy the lib into lib/arm64. This most likely needs root. Make sure to change the permissions
The keyboard should now start without crashing.
Click to expand...
Click to collapse
@phailyoor would you mind making this a magisk module? I was unable to get it to work by doing it manually. Tried getting it to work on OOS and had no luck
I don't really have experience with magisk, so I probably won't be making one anytime soon.
Did you get an error when following the steps? If not post the permissions by running ls -l and include logcat of the crash
phailyoor said:
You may want to use the LineageOS keyboard with some other rom. Just installing the .apk file will result in the keyboard crashing.
Click to expand...
Click to collapse
I installed following AOSP-alike keyboard provided via F-Droid, without any manual step needed! But good to know what is needed to do it manually! :good:
Simple Keyboard (Simply keyboard and nothing more)
https://f-droid.org/app/rkr.simplekeyboard.inputmethod
phailyoor said:
You may want to use the LineageOS keyboard with some other rom. Just installing the .apk file will result in the keyboard crashing. We can install the required files manually to get the keyboard working. This requires root, but does not require any changes to /system
Getting the files
It's best to get the files from a real LOS rom, but if you don't have one you can extract them out of a rom. Download the official rom, then extract payload.bin with github.com/cyxx/extract_android_ota_payload[/URL]. Then mount the system.img into an empty folder
Code:
mkdir temp
sudo mount system.img temp
Grab the files system/app/LatinIME/LatinIME.apk and system/lib64/libjni_latinime.so and put them on your phone
Installing
Install the apk like normal. Then you will have to copy the lib into /data
Code:
cmd list packages -f | grep inputmethod.latin
go to that folder and copy the lib into lib/arm64. This most likely needs root. Make sure to change the permissions
Code:
# cd /data/app/com.android.input.method.latin-whatever==/
# cd lib
# mkdir arm64
# chown system:system arm64
# cd arm64
# cp /sdcard/libjni_latinime.so ./
# chown system:system libjni_latinime.so
# chmod 644 libjni_latinime.so
The keyboard should now start without crashing.
Click to expand...
Click to collapse
Thank you so much for the detailed guide! I did this all without a hitch and AOSP now works on my OxygenOS. However, I noticed that glide typing doesn't work. Do you have any idea how to enable this feature? I would really really appreciate any help!
Edit: nevermind I figured it out (credits to this post: android.stackexchange.com/a/187686 ); if you download the libjni_latinimegoogle.so library from the openGapps github repo, and do the exact same process you do above for libjni_latinime.so, it enables gesture typing.
I cannot get it to work using your method (Running Android Pie, Google Pixel 2)
Logcat below, what went wrong?
Code:
12-11 20:05:46.011 5765 5765 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-11 20:05:46.014 5765 5765 W RichInputMethodSubtype: Can't find emoji subtype
12-11 20:05:46.014 5765 5765 W RichInputMethodSubtype: No input method subtype found; returning dummy subtype: Multi-lingual subtype: [email protected], zz
12-11 20:05:46.076 5765 5765 E putmethod.lati: No implementation found for long com.android.inputmethod.keyboard.ProximityInfo.setProximityInfoNative(int, int, int, int, int, int, int[], int, int[], int[], int[], int[], int[], float[], float[], float[]) (tried Java_com_android_inputmethod_keyboard_ProximityInfo_setProximityInfoNative and Java_com_android_inputmethod_keyboard_ProximityInfo_setProximityInfoNative__IIIIII_3II_3I_3I_3I_3I_3I_3F_3F_3F)
12-11 20:05:46.078 5765 5765 D AndroidRuntime: Shutting down VM
12-11 20:05:46.081 5765 5765 E AndroidRuntime: FATAL EXCEPTION: main
12-11 20:05:46.081 5765 5765 E AndroidRuntime: Process: com.android.inputmethod.latin, PID: 5765
12-11 20:05:46.081 5765 5765 E AndroidRuntime: android.view.InflateException: Binary XML file line #29: Binary XML file line #21: Error inflating class com.android.inputmethod.keyboard.emoji.EmojiPalettesView
12-11 20:05:46.081 5765 5765 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #21: Error inflating class com.android.inputmethod.keyboard.emoji.EmojiPalettesView
12-11 20:05:46.081 5765 5765 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance0(Native Method)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:647)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.parseInclude(LayoutInflater.java:965)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.KeyboardSwitcher.onCreateInputView(KeyboardSwitcher.java:464)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.latin.LatinIME.onCreateInputView(LatinIME.java:789)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.inputmethodservice.InputMethodService.updateInputViewShown(InputMethodService.java:1427)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.inputmethodservice.InputMethodService.showWindowInner(InputMethodService.java:1833)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.inputmethodservice.InputMethodService.showWindow(InputMethodService.java:1801)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput(InputMethodService.java:570)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:207)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:37)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6669)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: No implementation found for long com.android.inputmethod.keyboard.ProximityInfo.setProximityInfoNative(int, int, int, int, int, int, int[], int, int[], int[], int[], int[], int[], float[], float[], float[]) (tried Java_com_android_inputmethod_keyboard_ProximityInfo_setProximityInfoNative and Java_com_android_inputmethod_keyboard_ProximityInfo_setProximityInfoNative__IIIIII_3II_3I_3I_3I_3I_3I_3F_3F_3F)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.ProximityInfo.setProximityInfoNative(Native Method)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.ProximityInfo.createNativeProximityInfo(ProximityInfo.java:222)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.ProximityInfo.<init>(ProximityInfo.java:81)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.Keyboard.<init>(Keyboard.java:123)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.internal.KeyboardBuilder.build(KeyboardBuilder.java:196)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.KeyboardLayoutSet.getKeyboard(KeyboardLayoutSet.java:232)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.KeyboardLayoutSet.getKeyboard(KeyboardLayoutSet.java:204)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.emoji.EmojiCategory.getKeyboard(EmojiCategory.java:374)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.emoji.EmojiCategory.addShownCategoryId(EmojiCategory.java:223)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.emoji.EmojiCategory.<init>(EmojiCategory.java:176)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.emoji.EmojiPalettesView.<init>(EmojiPalettesView.java:119)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: at com.android.inputmethod.keyboard.emoji.EmojiPalettesView.<init>(EmojiPalettesView.java:95)
12-11 20:05:46.081 5765 5765 E AndroidRuntime: ... 24 more
12-11 20:05:46.089 1183 1200 I ActivityManager: Showing crash dialog for package com.android.inputmethod.latin u0
My phone is not rooted, is there a way to install this keyboard without root? If not, can someone make that possible, thanks in advance.
Magisk module of LineageOS AOSP keyboard
Magisk module of LineageOS AOSP keyboard.
I put in attachment two magisk modules: laosime4arm32android81-1_0.zip - for arm32 architecture, laosime4arm64android81-1_0.zip - for arm64 architecture. Both modules are for android 8.1. I do not have devices with newer versions of android to test.
Also it's simple to manufacture versions for other versions of android: just replace LatinIME.apk and libjni_latinime.so inside zip to proper files from LineageOS appropriate distribution.
raven428 said:
Magisk module of LineageOS AOSP keyboard.
Click to expand...
Click to collapse
Thank you very much! I will test this on my Google Pixel 2 (Android 9).
SGH-i200 said:
Thank you very much! I will test this on my Google Pixel 2 (Android 9).
Click to expand...
Click to collapse
Works?
works on Miui 10?
I updated the keyboard apk, lib files and script to update with AOSP Keyboard 9.0 for Android Pie. Just flash in Magisk as a regular module and reboot. Credit goes to Raven428 for the original module, thank you! I flashed this on my Pixel 3a and OnePlus 6T and works fine. Make sure you have a good backup prior to just in case. If you want it to be Transparent then consider my Translucent Substratum theme (shameless plug lol)
some have modules for android 8.0 ?
Archangel said:
I updated the keyboard apk, lib files and script to update with AOSP Keyboard 9.0 for Android Pie. Just flash in Magisk as a regular module and reboot. Credit goes to Raven428 for the original module, thank you! I flashed this on my Pixel 3a and OnePlus 6T and works fine. Make sure you have a good backup prior to just in case. If you want it to be Transparent then consider my Translucent Substratum theme (shameless plug lol)
Click to expand...
Click to collapse
Man, thank you! Is there any way you can make it as a twrp flashable zip? It hangs sometimes via the module & I'd like to see if flashing it directly into the system speeds it up.
Sure, I am out of town right now so when I get back I can slide it into a zip
peestandingup said:
Man, thank you! Is there any way you can make it as a twrp flashable zip? It hangs sometimes via the module & I'd like to see if flashing it directly into the system speeds it up.
Click to expand...
Click to collapse
Archangel said:
I updated the keyboard apk, lib files and script to update with AOSP Keyboard 9.0 for Android Pie. Just flash in Magisk as a regular module and reboot. Credit goes to Raven428 for the original module, thank you! I flashed this on my Pixel 3a and OnePlus 6T and works fine. Make sure you have a good backup prior to just in case. If you want it to be Transparent then consider my Translucent Substratum theme (shameless plug lol)
Click to expand...
Click to collapse
In Lineage OS the swipe function only worked in connection with the Google Apps. I have Google Apps on my phone installet, but the swipe function still doesn't work. I guess this has something to do with customizations?
Is there anything you can do?
Yeah swipe function isnt working for me either, when I get a chance I will troubleshoot it to see if it can be fixed
tiga05 said:
In Lineage OS the swipe function only worked in connection with the Google Apps. I have Google Apps on my phone installet, but the swipe function still doesn't work. I guess this has something to do with customizations?
Is there anything you can do?
Click to expand...
Click to collapse
@Archangel
I did some research about this topic and found out, that you need a specific closed source file.
It's name is : libjni_latinimegoogle.so
It gets installed with the google keyboard. Some pages say you can manually copy it in a specific folder and than it should work.
Had no time to try it out. But will try this later.
Maybe it helps you!
Edit: OK I had the 5 minutes to try it .
It works!
Just take the .so file for example from here ( I took them from the current downloadable opengapps):
https://gitlab.opengapps.org/opengapps/arm64/blob/master/lib64/23/libjni_latinimegoogle.so
And put them into system/lib64.
Maybe you have to restart your smartphone. And then it works! Do you see any possibility to add this to your magisk module?
Here is the new Magisk Module with the .so included let me know if you have any problems flashing it in Magisk
https://www.dropbox.com/s/t83w56bpp616vqh/AOSPKeyBoardV9MagiskModule.zip?dl=0
tiga05 said:
@Archangel
I did some research about this topic and found out, that you need a specific closed source file.
It's name is : libjni_latinimegoogle.so
It gets installed with the google keyboard. Some pages say you can manually copy it in a specific folder and than it should work.
Had no time to try it out. But will try this later.
Maybe it helps you!
Edit: OK I had the 5 minutes to try it .
It works!
Just take the .so file for example from here ( I took them from the current downloadable opengapps):
https://gitlab.opengapps.org/opengapps/arm64/blob/master/lib64/23/libjni_latinimegoogle.so
And put them into system/lib64.
Maybe you have to restart your smartphone. And then it works! Do you see any possibility to add this to your magisk module?
Click to expand...
Click to collapse
@Archangel Sorry to bother, but I seem to have an issue with the Magisk module (and with LatinIME in general). On my Lenovo Vibe K5 on MoKee 8.1.0, LatinIME crashes, even though the libs are installed and with their permissions set. Any help?
Here's a link to the bugreport: https://paste.ubuntu.com/p/JVWDXvBS4B/
EDIT: After I deleted manually the files libjni_latinime.so and the folder LatinIME inside /system/lib64/ and /system/app/ respectively, a reinstall of the module got the app finally working.
The Blackview BV9800 Pro is a relatively rare device, and has no support from LineageOS or any other popular ROM project I can find. This is kind of a shame, because it's a pretty cool device - in particular, it has an integrated thermal camera, and is also just a nice ruggedized phone at a surprisingly low price. The bootloader is unlockable out of the box without any need for an unlock code or other nonsense from the vendor, which is also a big bonus.
Being a Project Treble-compatible device, it's possible to run unofficial GSI builds of LineageOS on it, such as these, which are replacement images to flash over /system. These work well with the majority of the BV9800 Pro's functions (wireless, visible-light cameras, sensors, etc.), but getting the thermal camera to work requires a little bit more work. I have done this successfully, so I wanted to share what I did in case anyone else finds themselves in the same situation.
I have only tested these procedures on a BV9800 Pro (EEA version), running LineageOS 16 (Android 9) from the link above. Other versions of Android may work, but I do not know whether they do or not, and decided to stay with Android 9, since this is what the vendor ships on the device. Your results may vary if you decide to try a newer version.
The factory MyFLIR app for the device can be found at this location in the stock ROM:
Code:
/system/app/myflir-bv2.3.6-release-signed/myflir-bv2.3.6-release-signed.apk
However, if you try to just install it like a normal app package under LineageOS, it crashes on startup without providing any useful information. The system logs reveal that it crashes because it's trying to communicate with a system service that manages the thermal camera, but this service isn't installed. Fortunately, you can install it by just copying a few files from the factory ROM over to the LineageOS system. The files in question are located at these paths in the factory ROM:
Code:
/system/bin/leptonServer
/system/etc/init/LeptonCameraServer.rc
/system/lib64/libleptoncamera.so
If you copy these files to the same paths in the LineageOS /system tree, then the Lepton camera server backend, which is required for the MyFLIR app to function, will be installed and configured to start at boot.
SELinux seems to prevent the app from connecting to the Lepton server on my device, so I had to disable it by running
Code:
setenforce 0
in a root shell on the device. I didn't install it as a system app, though, which could be part of the problem. I don't know much about how SELinux actually works, but I feel comfortable enough disabling it. If you don't want to disable it, you can probably find information about how to make it allow the FLIR app to work, but I'm afraid I can't be of much help there.
You can find a copy of the stock BV9800 Pro ROM here on the Blackview forum.
If you want to root the stock ROM to allow you to inspect /system, this thread explains how. If you prefer, you can instead extract the ROM zip archive on a computer, decompress the included system.img with simg2img, and mount it to inspect the contents directly, which is what I did. Modifying /system on a running device can be difficult these days, so it will probably work best to mount up the GSI image the same way and copy the files into it, rather than try to edit it in-place on a running device.
I hope this information helps. The thermal camera is one of the most important (and expensive) features of the BV9800 Pro, and getting it working was pretty much the deciding factor for me as to whether I would keep the (kind of bad) factory ROM, or get to enjoy all the perks of LineageOS. I'm not really knowledgeable enough to write a complete and trustworthy guide to installing LineageOS, though, so if you're just getting started, you'll want to find a more detailed tutorial about how installing custom ROMs (especially GSI/Treble builds) works.
That's a cool rugged phone. Stock it's running on Pie... personally I leave it be and optimize it as best I could to get maximum battery life.
I was looking at these... FLIR, hell yes.
I was following your guide, I'm using my Blackview 9800pro without GApps (but with MicroG 0.2.18.204714) on LineageOS 17.1-20210321. When opening the MyFlir camera or gallery app, it asks me for all the relevant permissions on the first start and then promptly crashes every time I open it. I tried both as a system and a regular app, with and without selinux. In the error below, it complains about not finding the right function in libvndksupport.so. This library is much smaller in LineageOS than it is shipped in the Stock ROM from Blackview. Replacing the LineageOS shared object file with the one from Blackview causes my phone not to boot. Is there something I am missing that causes my instance of the app (I tried both 2.3.6 and 2.3.8) to crash?
Code:
04-28 00:27:34.047 1383 5788 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.flir.tiger/com.flir.monarch.ui.MainActivity bnds=[27,996][232,1321]} from uid 10121
04-28 00:27:34.057 783 804 I [email protected]: powerHintAsync hint:8, data:1
04-28 00:27:34.061 783 803 I libPowerHal: 8: legacy set freq: 1989000 -1 2106000 -1
04-28 00:27:34.076 1383 1420 E system_server: Invalid ID 0x00000000.
04-28 00:27:34.077 1383 1419 W ActivityManager: Stopping service due to app idle: u0a216 -10s135ms com.flir.tiger/com.flir.monarch.media.MediaScanner
04-28 00:27:34.084 1008 1008 D Zygote : Forked child process 7648
04-28 00:27:34.087 1383 1426 I ActivityManager: Start proc 7648:com.flir.tiger/u0a216 for pre-top-activity {com.flir.tiger/com.flir.monarch.ui.MainActivity}
04-28 00:27:34.147 1579 1579 D ImageWallpaper: wallpaper visibility changes to: false
04-28 00:27:34.161 762 864 I hwcomposer: [DEV] 1024 0 0 0
04-28 00:27:34.162 762 864 I hwcomposer: [DEV] 0 741 0 0
04-28 00:27:34.162 762 864 I hwcomposer: [DEV] 0 0 470 0
04-28 00:27:34.162 762 864 I hwcomposer: [DEV] 0 0 0 1024
04-28 00:27:34.173 7648 7648 D FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
04-28 00:27:34.174 7648 7648 D FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
04-28 00:27:34.174 7648 7648 I FirebaseInitProvider: FirebaseApp initialization successful
04-28 00:27:34.177 762 864 I hwcomposer: [DEV] [DEV] (Send identity matrix)
04-28 00:27:34.187 7648 7673 I FA : App measurement is starting up, version: 15300
04-28 00:27:34.187 7648 7673 I FA : To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
04-28 00:27:34.187 7648 7673 I FA : To enable faster debug mode event logging run:
04-28 00:27:34.187 7648 7673 I FA : adb shell setprop debug.firebase.analytics.app com.flir.tiger
04-28 00:27:34.196 762 864 I hwcomposer: [DEV] 1024 0 0 0
04-28 00:27:34.196 762 864 I hwcomposer: [DEV] 0 741 0 0
04-28 00:27:34.196 762 864 I hwcomposer: [DEV] 0 0 470 0
04-28 00:27:34.196 762 864 I hwcomposer: [DEV] 0 0 0 1024
04-28 00:27:34.200 7648 7648 I CrashlyticsCore: Initializing Crashlytics 2.6.8.32
04-28 00:27:34.207 7648 7686 W ContextImpl: Failed to ensure /data/user/0/com.google.android.gms/shared_prefs: mkdir failed: EACCES (Permission denied)
04-28 00:27:34.208 7648 7648 I CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
04-28 00:27:34.212 762 864 I hwcomposer: [DEV] [DEV] (Send identity matrix)
04-28 00:27:34.220 2428 2428 D GmsMeasureBrokerSvc: onBind: Intent { act=com.google.android.gms.measurement.START pkg=com.google.android.gms }
04-28 00:27:34.222 3179 3179 D GmsGcmRegister: onBind: Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms }
04-28 00:27:34.223 1024 1024 I netd : firewallSetUidRule(2, 10161, 1) <2.63ms>
04-28 00:27:34.227 1024 1024 I netd : firewallSetUidRule(2, 10160, 1) <1.74ms>
04-28 00:27:34.230 1024 1024 I netd : firewallSetUidRule(2, 10157, 1) <2.14ms>
04-28 00:27:34.233 1024 1024 I netd : firewallSetUidRule(2, 10151, 1) <1.85ms>
04-28 00:27:34.236 7648 7648 I ashmem : memfd: device VNDK version (28) is < Q so using ashmem.
04-28 00:27:34.277 7648 7648 D AndroidRuntime: Shutting down VM
04-28 00:27:34.277 7648 7648 E AndroidRuntime: FATAL EXCEPTION: main
04-28 00:27:34.277 7648 7648 E AndroidRuntime: Process: com.flir.tiger, PID: 7648
04-28 00:27:34.277 7648 7648 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "android_get_exported_namespace" referenced by "/data/app/com.flir.tiger-EcVVz9vk2XWvVymOtKJxOQ==/lib/arm64/libvndksupport.so"...
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at java.lang.System.loadLibrary(System.java:1667)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.flir.flirone.sdk.FlirOne.<clinit>(FlirOne.java:59)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.flir.flirone.sdk.FlirOne.registerDeviceCallback(FlirOne.java:341)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.flir.monarch.app.ForegroundApplication.onActivityStarted(ForegroundApplication.java:88)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.Application.dispatchActivityStarted(Application.java:406)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.Activity.dispatchActivityStarted(Activity.java:1238)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.Activity.onStart(Activity.java:1723)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:614)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.flir.monarch.ui.MainActivity.onStart(MainActivity.java:79)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1432)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.Activity.performStart(Activity.java:7847)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3294)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
04-28 00:27:34.277 7648 7648 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
04-28 00:27:35.334 1383 5501 D AlarmManagerService: Kernel timezone updated to -120 minutes west of GMT
04-28 00:27:35.348 1383 6143 D AlarmManagerService: Kernel timezone updated to -120 minutes west of GMT
04-28 00:27:35.709 1090 1371 I 1090 1371 [sunwave-hal] : (711) 'healthMonitoringThread' enter.
04-28 00:27:35.710 1090 1371 I 1090 1371 [sunwave-client] : (90) ---8<---- TA LOG BEGINS ---------
04-28 00:27:35.710 1090 1371 I 1090 1371 [sunwave-ta-core] : (2869) 'sf_get_device_state' state:0008
04-28 00:27:35.710 1090 1371 I 1090 1371 [sunwave-client] : (107) --------- TA LOG FINISH ---->8---
Thanks for the info for the flir Camera,
It works fine with lineage OS 16 !
I want to add the info I got while doing it:
It does not work with all version of Andy Custom Lineage OS: I could not make it works with this one: lineage-16.0-20191017-UNOFFICIAL-treble_arm64_bvN.img.xz the lepton server had a seg fault.
I try with a lineage OS 18 , the lepton server worked but the application failed, I will look into it one day... maybe
I root my phone with magisk
I used a script to bypass SElinux and start the server when i want ( because i don't know if it wise to always have SElinux in permissive mode)
tylab said:
Thanks for the info for the flir Camera,
It works fine with lineage OS 16 !
I want to add the info I got while doing it:
It does not work with all version of Andy Custom Lineage OS: I could not make it works with this one: lineage-16.0-20191017-UNOFFICIAL-treble_arm64_bvN.img.xz the lepton server had a seg fault.
I try with a lineage OS 18 , the lepton server worked but the application failed, I will look into it one day... maybe
I root my phone with magisk
I used a script to bypass SElinux and start the server when i want ( because i don't know if it wise to always have SElinux in permissive mode)
Click to expand...
Click to collapse
thank u for the additional info!,so which version of lineage os 16 worked for u? iam on lineage-16.0-20191017-UNOFFICIAL-treble_arm64_bvN.img.xz and tried the author's steps but didn't work for me, also it'd be nice if u share with us the script u use to bybass selinux,thanks.
I want to report back some of my own success in regards to this thread. I have the camera working, but it's not a perfect solution and was wondering if you guys could assist me in checking what I could have possibly missed. I'm running it on the most current Lineage OS 18.1; I've compiled a version using the Treble ROM lineage-18.1-20210512-UNOFFICIAL-treble_arm64_bvS with Magisk as root (I also added MindTheGapps into it after some workarounds with the mounts, and had to register my device as an "unsupported device").
I followed the OP's guide to the T, and still couldn't get the app to even open. The logs revealed it was trying to call leptonServer, nulling out after five tries, and then crashing. Narrowed this down to being an issue with the /bin/leptonServer file itself being set as -rwx-r--r--, and changing it to -rwxr-x-r-x got the app to boot up. The only problem is, for the camera to actually start, I have to open a terminal session and start leptonServer from there, and I assume this has something to do with the SELinux policies in place. I've fought half the battle and got a version of sepolicy-inject set up to run (using the following policy: allow untrusted_app_27 default_android_service:service_manager { find }; (sepolicy-inject -s untrusted_app_27 -t default_android_service -c service_manager -p find (if this doesn't work for you, try doing logcat ServiceManager:V SELinux:V *:S to find the relevant SELinux policies that you need to apply, and follow the formulas))), but I figure this is still erroring out somewhere, since, after a restart, the only way I can get it working again is to go and disable SELinux using setenforce to 0 and then starting the server again using some sort of terminal. I also installed the MyFlir app as a system app.
I believe that part of the issue might be that I haven't properly added the SELinux policy, but I'm not entirely positive how I would go about testing this (I've more or less just gotten into the ROM building scene last week, but feel I have somewhat of an edge being a software developer for a living). I think if I boot into recovery I can grab the sepolicy file, but I'm not sure what else to do with it at this point.
The error I get when it's not running, aside from the PID is pretty consistent too:
05-31 19:19:06.814 372 372 E SELinux : avc: denied { find } for pid=20308 uid=10195 name=LeptonCameraService scontext=u:r:untrusted_app_27:s0:c195,c256,c512,c768 tcontext=ubject_r:default_android_service:s0 tclass=service_manager permissive=0
Hopefully, this helps someone to find the right answers before I can; I know I'll keep tinkering with it until I find the solution (I'm also attempting to overcome the CTSProfile/Basic failure in Magisk, which I plan to make a guide if I can find an answer).
I get the same error as @&00&V5yt$r2$E!n1IDUiJ9bF on Lineage18.1 - treble_arm64_bvS-userdebug
04-28 00:27:34.277 7648 7648 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "android_get_exported_namespace" referenced by "/data/app/com.flir.tiger-EcVVz9vk2XWvVymOtKJxOQ==/lib/arm64/libvndksupport.so"...
My leptonServer is working correctly and service runs from the start so it I feel this is related to the /system/app/myflir-bv2.3.6-release-signed.
Are you guys using a different version of the app?
Flir said:
I get the same error as @&00&V5yt$r2$E!n1IDUiJ9bF on Lineage18.1 - treble_arm64_bvS-userdebug
04-28 00:27:34.277 7648 7648 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "android_get_exported_namespace" referenced by "/data/app/com.flir.tiger-EcVVz9vk2XWvVymOtKJxOQ==/lib/arm64/libvndksupport.so"...
My leptonServer is working correctly and service runs from the start so it I feel this is related to the /system/app/myflir-bv2.3.6-release-signed.
Are you guys using a different version of the app?
Click to expand...
Click to collapse
I also used myflir-bv2.3.6-release-signed, pulled straight from the currently available 9.0 ROM.
For that specifically, if you are looking at the most recent ROM build available from Blackview, in the directory /system/system/app/myflir-bv2.3.6-release-signed, there is both the APK and a lib folder. I'd copy the lib folder over to your phone in that same directory; I think you're missing the dependencies from there.
If you already have those libaries in there, try the read/write settings on the folder too.
Hi bv9800 pro customers! Anyone tryed the magisk module in the thread https://forum.xda-developers.com/t/blackview-bv9900pro-magisk-modules.4331187/
to get flir worked on linage?
ilich79 said:
Hi bv9800 pro customers! Anyone tryed the magisk module in the thread https://forum.xda-developers.com/t/blackview-bv9900pro-magisk-modules.4331187/
to get flir worked on linage?
Click to expand...
Click to collapse
Hi ilich79
I tryed the magisk module for BV9900pro.
I have installed it manualy to improve my understanding.
First, selinux block as always :
E/SELinux ( 338): avc: denied { find } for pid=18411 uid=10175 name=LeptonCameraService scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
After enforce selinux and relanch the leptonServer.
Application launch completly but the camera send only the first image and block after that
So, i replace the leptonServer by the old one and retry.
Finally it works fully.
I someone know how to correctly set the selinux policy for this app ? I will be graceful
May be this can help?
[MODULE] SELinux Mode Inverter (Advanced SELinux Mode Changer)
It Is Now A Part Of The Main Module Of MultiFunctions & Its Thread https://forum.xda-developers.com/apps/magisk/module-multifunctions-bootloop-t3933386. Introduction: Simple Module To Invert The Default Android SELinux Mode During Startup ([From...
forum.xda-developers.com
Flir said:
I get the same error as @&00&V5yt$r2$E!n1IDUiJ9bF on Lineage18.1 - treble_arm64_bvS-userdebug
04-28 00:27:34.277 7648 7648 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "android_get_exported_namespace" referenced by "/data/app/com.flir.tiger-EcVVz9vk2XWvVymOtKJxOQ==/lib/arm64/libvndksupport.so"...
My leptonServer is working correctly and service runs from the start so it I feel this is related to the /system/app/myflir-bv2.3.6-release-signed.
Are you guys using a different version of the app?
Click to expand...
Click to collapse
I get the same error, @QuentinX5 : Did you use a different version? Would be nice to have a Lineage upgrade.
Regarding the problem with the MyFlir camera app: I had the same problem (unable to read camera files). I looked everywhere. I mean, everywhere trying to find an answer. There's also a video on youtube with comments suggesting flashing the APD.BIN file (I did not try). I even translated different language websites. Finally, I contacted the BV customer support and their reply was the classic (clear the app cache), which doesn't work at all and not just for me. I tried to get the APK file from the image and installing it which didn't work either.
Here's the simple magic solution that kept me trying for a week, and no one wrote it anywhere:
There's a folder named (com.flir.tiger) inside the Android folder in the phone storage with the contents:
com.flir.tiger\files\iron
com.flir.tiger\files\CameraFiles\system\calib.rsc
com.flir.tiger\files\CameraFiles\system\maps\ds_we_ap_fi_le_LCFMap.fff
Just copy the folder from another phone and paste it on your phone, and that's it!
thelaseman said:
Regarding the problem with the MyFlir camera app: I had the same problem (unable to read camera files). I looked everywhere. I mean, everywhere trying to find an answer. There's also a video on youtube with comments suggesting flashing the APD.BIN file (I did not try). I even translated different language websites. Finally, I contacted the BV customer support and their reply was the classic (clear the app cache), which doesn't work at all and not just for me. I tried to get the APK file from the image and installing it which didn't work either.
Here's the simple magic solution that kept me trying for a week, and no one wrote it anywhere:
There's a folder named (com.flir.tiger) inside the Android folder in the phone storage with the contents:
com.flir.tiger\files\iron
com.flir.tiger\files\CameraFiles\system\calib.rsc
com.flir.tiger\files\CameraFiles\system\maps\ds_we_ap_fi_le_LCFMap.fff
Just copy the folder from another phone and paste it on your phone, and that's it!
Click to expand...
Click to collapse
Hi do you think your solution works for all lineageos releases? If I change the stock rom I was thinking on putting release 19.1
thelaseman said:
Regarding the problem with the MyFlir camera app: I had the same problem (unable to read camera files). I looked everywhere. I mean, everywhere trying to find an answer. There's also a video on youtube with comments suggesting flashing the APD.BIN file (I did not try). I even translated different language websites. Finally, I contacted the BV customer support and their reply was the classic (clear the app cache), which doesn't work at all and not just for me. I tried to get the APK file from the image and installing it which didn't work either.
Here's the simple magic solution that kept me trying for a week, and no one wrote it anywhere:
There's a folder named (com.flir.tiger) inside the Android folder in the phone storage with the contents:
com.flir.tiger\files\iron
com.flir.tiger\files\CameraFiles\system\calib.rsc
com.flir.tiger\files\CameraFiles\system\maps\ds_we_ap_fi_le_LCFMap.fff
Just copy the folder from another phone and paste it on your phone, and that's it!
Click to expand...
Click to collapse
Hi, I'm trying to get the flir camera working on lineage 19.1 can @thelaseman gime me the file you write about? beacause I don't have another phone to copy from.
Thanks
Max
max74926 said:
Hi, I'm trying to get the flir camera working on lineage 19.1 can @thelaseman gime me the file you write about? beacause I don't have another phone to copy from.
Thanks
Max
Click to expand...
Click to collapse
If you are still looking for it I might be able to extract these files for you.
@thelaseman @QuentinX5
Is anyone still using a BV9800 Pro with a Lineage ROM? What version are you on, what specific build did you install, did you encounter any specific issues, were they fixable and how?
Not asking for a full guide (wouldn't mind of course ) but before I start messing with what is currently my daily driver I'd like to know if anyone else was successful with a certain version. Particularly interested if any newer versions have also ended up working with the FLIR-camera.
Hi @dj__jg,
I use the attached files for lineage 19.1 GSI (https://forum.xda-developers.com/t/gsi-12-lineageos-19-x-gsi-a64b-64b.4358041/).
My camera calib is wrong (the thermal camera is upside down.) so I don't push the calib file here, if you have a good one, i'm interested.
I don't have fixed the selinux error for the moment, so just disable it went you launch the '/system/bin/leptonServer'
I missnamed the attached file, it's for BV9800 pro
I suddenly feel very stupid, I just realised I've gotten confused about my phones model number
I actually have a Blackview ninethousandninehundred pro, not 9800. I either had a brainfart or made a typo as I was searching if anyone had managed to use a recent Lineage ROM on it and accidentally ended up on this thread and didn't notice.
Luckily I didn't upload my calib file etc here, or someone could have gotten very confused. I think I will try to run a GSI build at some point, but when I have some more spare time/don't need this phone every day. The information about the com.flir.tiger folder is still very handy because it is the same on my model, I hope the same tactics will work to get the FLIR working in a GSI build.
(Wrote out the model number in text so other people googling the model number won't end up confused on this thread without even making a typo)
It's my bad i missnamed my file, it's 9800 pro not 9800 (who don't have thermal camera)