Error in app clone in mate 10pro - Huawei Mate 10 Questions & Answers

I edited "hw_clone_app_list.xml" system file and added to it <package name="com.viber.voip"/> and saved copy that worked OK untill pie update 9.0.274.
I copied the saved working file to same location with same attribute. Viber appears in the clone list but disabled
What can I do to make it working again
Thanks friends

Related

[GUIDE][ICS][.13] Solving problem with not looping mp3/ogg files used as ringtone

This problem appears on ICS .13 based ROMs.
When set an mp3 file (for example downloaded from Internet) as ringtone and this file don't loop when receiving call what to do?
(I'm using MS Windows OS)
Now let's go:
1. Start WinAmp
2. Add file in WinAmp's play list
3. Click right mouse button on the name of the file and select View file info ... (Alt+3)
4. In File Info window click Advanced tab
5. Click Add New button
6. In Name field write ANDROID_LOOP
7. In Value field write true
8. Click OK button
Now move mp3 file to proper directory on the phone - mnt/sdcard/ringtones or root/system/media/audio/ringtones (need to set permissions to rw-r--r--)
The procedure is the same if you use an ogg file as ringtone and it don't loops.
That's all :victory:
SORRY FOR MY BAD ENGLISH :angel:

Backup and restore a Chrome extension?

I have an extension that is no longer available on the Chrome store. I'd like to be able to back it up on my Chromebook and restore it, since I think it will not be restored after I update the Chrome OS (it will presumably fetch the available extensions from the store).
My Chromebook is in developer mode. So I wonder can it be done from the shell?
I tried enabling developer mode in chrome://extensions, but pack extension does not allow me to see any system root directory, and I have the additional challenge of figuring out which extension it is in /home/chronos/user/Extensions/.
I'm not really sure where to go from here. Any help with this would be really appreciated!
beetroot said:
I have an extension that is no longer available on the Chrome store. I'd like to be able to back it up on my Chromebook and restore it, since I think it will not be restored after I update the Chrome OS (it will presumably fetch the available extensions from the store).
My Chromebook is in developer mode. So I wonder can it be done from the shell?
Click to expand...
Click to collapse
Can you see the ID of the extension at the very bottom of its listing in chrome://extensions/? If you can.... I just tested out the following with an extension chosen at random, and it worked fine for me, although I suppose it may depend on the extension...
Copied the ID of the extension (at the very bottom of its listing in chrome://extensions/), then:
sudo su
find / -iname theidoftheextension
cp -a -r /home/chronos/user/Extensions/theidoftheextension /media/removable/UNTITLED/
Back in chrome://extensions/
Clicked Packed extension > chose the folder above the one containing manifest (in my case /media/removable/UNTITLED/theidoftheextension/0.1.2_0/)
Clicked Pack extension
Opened /media/removable/UNTITLED/theidoftheextension/ in file browser
Dragged the newly-created packed extension /media/removable/UNTITLED/theidoftheextension/0.1.2_0.crx over chrome://extensions/
It installed! Actually I tested it three times, resulting in three copies of the extension. Having said that, if you only have one copy of the extension, perhaps it would be better to test the .crx out on another copy of Chrome first, in case it somehow overwrites/breaks the copy you have installed.
Nolirum said:
Can you see the ID of the extension at the very bottom of its listing in chrome://extensions/? If you can.... I just tested out the following with an extension chosen at random, and it worked fine for me, although I suppose it may depend on the extension...
Copied the ID of the extension (at the very bottom of its listing in chrome://extensions/), then:
sudo su
find / -iname theidoftheextension
cp -a -r /home/chronos/user/Extensions/theidoftheextension /media/removable/UNTITLED/
Back in chrome://extensions/
Clicked Packed extension > chose the folder above the one containing manifest (in my case /media/removable/UNTITLED/theidoftheextension/0.1.2_0/)
Clicked Pack extension
Opened /media/removable/UNTITLED/theidoftheextension/ in file browser
Dragged the newly-created packed extension /media/removable/UNTITLED/theidoftheextension/0.1.2_0.crx over chrome://extensions/
It installed! Actually I tested it three times, resulting in three copies of the extension. Having said that, if you only have one copy of the extension, perhaps it would be better to test the .crx out on another copy of Chrome first, in case it somehow overwrites/breaks the copy you have installed.
Click to expand...
Click to collapse
Thank you, Nolirum!
I did as you suggested, and installed Chromium in Crouton to test it. I get the error "This can only be added from the Chrome Web Store" when I try dragging in the .crx.
When I try 'Load unpacked extension' option in chrome://extensions I get the following error:
Failed to load extension from: /Volumes/KINGSTON/theidoftheextension/5.0_0
Cannot load extension with file or directory name _metadata. Filenames starting with "_" are reserved for use by the system.
Click to expand...
Click to collapse
I saw this on Stackoverflow about the error. I deleted the leading underscore from metadata folder and it works! Yay!!
https://stackoverflow.com/questions...ebstore-throws-error-package-is-invalid-detai
No problem!
Out of interest, when you dragged the .crx onto Chromium, and got the error, was that with dragging it directly into the list of extensions in the chrome://extensions/ window (where you see the icons, details, extension IDs etc)? Just wondering, as I get that error if dragging a .crx on to the browser address bar or on a webpage, but not if I drag it into the extensions list directly.
In any case, interesting info about the metadata folder nonetheless. I remember having to do the same (deleting the underscore) for some extension I was trying to edit. It's reassuring to to read that _metadata is just Web store hashes, and that modifying it shouldn't affect functionality.
Nolirum said:
No problem!
Out of interest, when you dragged the .crx onto Chromium, and got the error, was that with dragging it directly into the list of extensions in the chrome://extensions/ window (where you see the icons, details, extension IDs etc)?
Click to expand...
Click to collapse
Yes, I was dragging into the extensions list. When I try it a little popup says something like "drop to install" then the error.
Interesting. I don't get that error (tried on Chromium, too). Perhaps it depends on the extension. Thanks for checking.

Video bootanimation on Amlogic boxes

In my search to find a way to disable the fixed bootanimation on my X96 I not only found the solution but also some nice "feature".
A normal bootanimation comes as a bootanimation.zip and usually without sound.
A video boot is a MP4 file with sound and all
To enable video boot a line in the build.prop needs to be edited/added:
service.bootvideo=1 this enables the bootvideo, service.bootvideo=0 makes use of the normal bootanimation.zip, same for not having this line.
The actual bootvideo is as said a MP4 file named bootvideo and is located in the etc folder of the system partition - if not you need to make one
Any resolution the box supports can be used here but for obvious reasons it should be only as long as the actual boot might take.
There should be a file bootplayer inside the /system/bin folder - this is used to play the video.
In case it still won't work with all the above files you need to add a service in the init.amlogic.rc file of your kernel.
Code:
service bootvideo /system/bin/bootplayer /system/etc/bootvideo
class main
user root
group system
disabled
oneshot
I tested and confirmed it works with basically any MP4 video on my X96 but assume it should work the same way on all 3.14 kernels.
Another option, you can do so
Code:
#service bootvideo /system/bin/bootplayer /system/etc/bootvideo
service bootvideo /system/bin/bootvideoplay.sh
class main
user root
group system
disabled
oneshot
and place to /system/bin/bootvideoplay.sh with this
Code:
#!/system/bin/sh
MARK=/data/media/0/Download/bootvideo
if [ -f $MARK ]; then
bootplayer /data/media/0/Download/bootvideo
else
bootplayer /system/etc/bootvideo
fi
If there is a file /data/media/0/Download/bootvideo (internal sdcard) , will be play this video
Nice one!
Did not even consider using a check in the init file - will keep that in mind for sure
Checked the way with the script but no matter what I try it simply shows no video at all.
But works fine by just using the medi folder instead of ETC, SDCARD won't work either.
For the SD it makes no difference is SDCARD is used for the path or the direct mountpoint.
Seems the bootplayer is a bit restricted if it does not run directly as a service.
But can't be bothered too much as I only use one video anyway LOL
Still image
There is a way to remove the X96 image as the first image? I changed the video all ok, but the image before bootvideo remains the same. What is tha file that I need to change? Thanks a lot!!!
That would be the bootlogo, flash a new one or use an app tp change it.
I only exchange them together with the firmware and so far did not bother otherwise.
Downunder35m said:
That would be the bootlogo, flash a new one or use an app tp change it.
I only exchange them together with the firmware and so far did not bother otherwise.
Click to expand...
Click to collapse
I searched all the bins for the bootlogo file, but I can't find it. Do you know in wich bin it is located?
No bin, inside the bootloader partition
Downunder35m said:
No bin, inside the bootloader partition
Click to expand...
Click to collapse
Hi, friend. Thanks for your reply. I'm a bit newbie. How can I access the bootloader partition and access its contents?
Downunder35m said:
In my search to find a way to disable the fixed bootanimation on my X96 I not only found the solution but also some nice "feature".
A normal bootanimation comes as a bootanimation.zip and usually without sound.
A video boot is a MP4 file with sound and all
To enable video boot a line in the build.prop needs to be edited/added:
service.bootvideo=1 this enables the bootvideo, service.bootvideo=0 makes use of the normal bootanimation.zip, same for not having this line.
The actual bootvideo is as said a MP4 file named bootvideo and is located in the etc folder of the system partition - if not you need to make one
Any resolution the box supports can be used here but for obvious reasons it should be only as long as the actual boot might take.
There should be a file bootplayer inside the /system/bin folder - this is used to play the video.
In case it still won't work with all the above files you need to add a service in the init.amlogic.rc file of your kernel.
Code:
service bootvideo /system/bin/bootplayer /system/etc/bootvideo
class main
user root
group system
disabled
oneshot
I tested and confirmed it works with basically any MP4 video on my X96 but assume it should work the same way on all 3.14 kernels.
Click to expand...
Click to collapse
Hello,
I set the 1 in the build.prop, added the line to the init.amlogic.rc and put my mp4 intro video and your attached files to the places. 1. Reboot -> I become your x96 bootvideo. I deleted the bootvideo file from your attached files and I dont become a bootvideo. Whats wrong? My bootvideo.mp4 is already in the system/etc/
getting permission error
unfortunately, I am getting permission issue. I have verified that I am root and write permission to root. I am using X96mini Amlogic Box . any help?
p281:/ # whoami
root
p281:/ # cp /sdcard/virtukiosk-video-v1.mp4 /system/etc/bootvideo1
cp: /system/etc/bootvideo1: Read-only file system
1|p281:/ # ls -ld /system/etc/bootvideo
-rw-r--r-- 1 root root 9149031 2017-10-09 09:31 /system/etc/bootvideo
p281:/ # ls -ld /system/etc
drwxr-xr-x 13 root root 4096 2017-10-09 09:48 /system/etc
p281:/ # ls -ld /system
drwxr-xr-x 20 root root 4096 2018-01-04 17:49 /system
p281:/ #
Thank you! works perfectly.
I just edit the build.prop seems it was there (bootvideo and bootplayer) already in my MXIII S802 box.
@ nigam214
Try to use EZ Explorer or any Root explorer for easy File transfer.

[SOLVED] Installing WebView (rooted Stock ROM)

I am trying to install a clean Android System WebView (packagename: com.android.webview) onto stock LG G5 RS988 RS98821d Android 7.0 that is rooted.
I downloaded an arm64 WebView APK from the Bromite Releases GitHub page:
https://github.com/bromite/bromite/releases
I tried installing the Bromite WebView APK to "/system/app/webview/" (0644 permissions) and rebooted, but the WebView implementation could not be used.
There are instructions regarding installing Bromite System WebView available:
https://github.com/bromite/bromite/wiki/Installing-SystemWebView
From my reading of the installation instructions, "res/xml/config_webview_packages.xml" from "/system/framework/framework-res.apk" must contain the an entry for the package with the particular package name ("com.android.webview" in this case).
After examining the stock "config_webview_packages.xml" member file, it appears that a reference to "com.android.webview" is not present. The "config_webview_packages.xml" XML file also appears to not be easily readable in a text editor. My guess is that it has some kind of signing.
What must be done to get the system to allow the newly installed WebView? My impression is that the "config_webview_packages.xml" XML file must be edited, but it is not clear how to do so, given that it does not appear to be just plain text.
I have attached a copy of the "config_webview_packages.xml" XML member file and the original framework-res.apk file zipped into a ZIP 2.0 archive.
XML files inside apks are compressed, you should unpack the framework-res.apk using a tool for apk editing, not just a zip archiver program. On Android, you can use APK Editor Pro, for example.
By the way, have you already uninstalled Chrome? If Chrome is installed, it will be forced as the standard WebView provider.
tremalnaik said:
XML files inside apks are compressed, you should unpack the framework-res.apk using a tool for apk editing, not just a zip archiver program. On Android, you can use APK Editor Pro, for example.
Click to expand...
Click to collapse
It was my impression that the APK files were zip files with a particular signature block. I shall try a tool like APK Editor Pro and report back.
tremalnaik said:
have you already uninstalled Chrome? If Chrome is installed, it will be forced as the standard WebView provider.
Click to expand...
Click to collapse
I have uninstalled/removed both Chrome and the Android System WebView (Google Apps version).
Ascii3 said:
It was my impression that the APK files were zip files with a particular signature block. I shall try a tool like APK Editor Pro and report back.
Click to expand...
Click to collapse
Now I'm on PC and I remember the name of the tool I use sometimes on PC: APKChanger. It's very complete, although very heavy (about 650MB with my current configuration);
If you have platform tools installed on your pc, or the whole Android Studio, you can also use
Code:
aapt d xmltree framework-res.apk res/xml/config_webview_packages.xml
to see the list of allowed webview packages.
Ascii3 said:
I have uninstalled/removed both Chrome and the Android System WebView (Google Apps version).
Click to expand...
Click to collapse
So we can be sure the problem is not the system forcing Chrome as default WebView provider. So, as Bromite's wiki states, "Changing the package name does not make installation easier/possible;", so the only solution is to add com.android.webview to config_webview_packages.xml, or, if it is already there, remove the requirement for Google's signature on the webview package. EDIT: I checked, on your file com.android.webview is missing, you just need to add it:
Code:
E: webviewproviders (line=20)
E: webviewprovider (line=21)
A: description="Chrome Stable" (Raw: "Chrome Stable")
A: packageName="com.android.chrome" (Raw: "com.android.chrome")
A: availableByDefault=(type 0x12)0xffffffff (Raw: "true")
E: webviewprovider (line=24)
A: description="Google WebView" (Raw: "Google WebView")
A: packageName="com.google.android.webview" (Raw: "com.google.android.webview")
A: availableByDefault=(type 0x12)0xffffffff (Raw: "true")
A: isFallback=(type 0x12)0xffffffff (Raw: "true")
E: webviewprovider (line=27)
A: description="Chrome Beta" (Raw: "Chrome Beta")
A: packageName="com.chrome.beta" (Raw: "com.chrome.beta")
E: signature (line=28)
C: "MIIDwzCCAqugAwIBAgIJAOoj9MXoVhH6MA0GCSqGSIb3DQEBBQUAMHgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEUMBIGA1UEAwwLY2hyb21lX2JldGEwHhcNMTYwMjI5MTUxNTIzWhcNNDMwNzE3MTUxNTIzWjB4MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxFDASBgNVBAMMC2Nocm9tZV9iZXRhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/wW27nRxVqGbFOyXr8jtv2pc2Ke8XMr6Sfs+3JK2licVaAljGFpLtWH4wUdb50w/QQSPALNLSSyuK/94rtp5Jjs4RSJI+whuewV/R6El+mFXBO3Ek5/op4UrOsR91IM4emvS67Ji2u8gp5EmttVgJtllFZCbtZLPmKuTaOkOB+EdWIxrYiHVEEaAcQpEHa9UgWUZ0bMfPj8j3F0w+Ak2ttmTjoFGLaZjuBAYwfdctN1b0sdLT9Lif45kMCb8QwPp0F9/ozs0rrTc+I6vnTS8kfFQfk7GIE4Hgm+cYQEHkIA6gLJxUVWvPZGdulAZw7wPt/neOkazHNZPcV4pYuNLQIDAQABo1AwTjAdBgNVHQ4EFgQU5t7dhcZfOSixRsiJ1E46JhzPlwowHwYDVR0jBBgwFoAU5t7dhcZfOSixRsiJ1E46JhzPlwowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAZO2jB8P1d8ki3KZILvp27a2VM3DInlp8I8UgG3gh7nBQfTrnZr5M1PL8eFHqX7MEvAiGCMTcrPklEhjtcHK/c7BcdeCWq6oL56UK3JTl33RxJcjmjrz3e3VI6ehRSm1feNAkMD0Nr2RWr2LCYheAEmwTPtluLOJS+i7WhnXJzBtg5UpUFEbdFYenqUbDzya+cUVp0197k7hUTs8/Hxs0wf79o/TZXzTBq9eYQkiITonRN8+5QCBl1XmZKV0IHkzGFES1RP+fTiZpIjZT+W4tasHgs9QTTks4CCpyHBAy+uy7tApe1AxCzihgecCfUN1hWIltKwGZS6EE0bu0OXPzaQ=="
E: webviewprovider (line=30)
A: description="Chrome Dev" (Raw: "Chrome Dev")
A: packageName="com.chrome.dev" (Raw: "com.chrome.dev")
E: signature (line=31)
C: "MIIDwTCCAqmgAwIBAgIJAOSN+O0cdii5MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjAeFw0xNjAyMjkxNzUwMDdaFw00MzA3MTcxNzUwMDdaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOYPj6Y9rVt8xizSHDYjDEkDfFZAgSiZ9T6tevkQXsFyfaq3Gk3h2qssi29G6cTPJ2VXFKlVB71wSXv5p9/LEcDQPWQiO3Q2cLmgUXxyhJWXI3g96tPAhZQX2q6SC37ZQdiBR/raMO70DAkvCyBGtNplsvutzSE3oZ7LYfzB8vTbe7zCh3fDYSS/7xb3ZVvFqydHS40uVq1qqg1S80Pge7tW3pDGsPMZN7yA4yfmsvA1rbHm9N8t3Rc9hqzh6OxNAAgRB535YcsWL7iF+mpdFILXk3jLYT0nMvMnB83rsdgnRREjlGQYHl2mh8+6CqujsW/eICDq/LR6BYDyqHhk0ECAwEAAaNQME4wHQYDVR0OBBYEFKzsl07JglgpbeYDYGqsgqRDo+01MB8GA1UdIwQYMBaAFKzsl07JglgpbeYDYGqsgqRDo+01MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACka6SFF6xAcj8L8O6R36++E09DTiGZEjvKT8eIycgcQQ+p1WUmPb6M2EJpN6zvvSE62ussmXdzf8rIyc0JXA8jbViZt62Y39epNENFxPTLN9QzXlT+w8AW73Ka3cnbOuL5EgoDl8fM79WVlARY3X+wB/jGNrkiGIdRm2IZIeAodWgC2mtXMiferyYBKz2/F2bhnU6DwgCbegS8trFjEWviijWdJ+lBdobn7LRc3orZCtHl8UyvRDi7cye3sK9y3BM39k0g20F21wTNHAonnvL6zbuNgpd+UEsVxDpOeWrEdBFN7Md0CI2wnu8eA8ljJD45v0WWMEoxsIi131g5piNM="
E: webviewprovider (line=33)
A: description="Chrome Canary" (Raw: "Chrome Canary")
A: packageName="com.chrome.canary" (Raw: "com.chrome.canary")
E: signature (line=34)
C: "MIIDxzCCAq+gAwIBAgIJAML7APITsgV7MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTAeFw0xNjAyMjkxOTA5MDdaFw00MzA3MTcxOTA5MDdaMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXfeAoZlr0ya1HBzIfAz/nLLjpPJeAPvuX5dueaxmiQgv2hNG22acriFuiiJI6TU0t8AIVJD5Ifbc4OOuA0zeFhdzWWGnmTRH6x27WI7bzOKnAqOvv21ZBmE9i8Vo++K13xWdTs3qVn1bn9oUONxFu0wKDzXYZhoj1Jom0RZGjXm16xuPlEuOzMcjiNBDoYuxPAXkMcK/G1gP4P4nAV8Rd/GGIjKRS/SUtcShhoAMOQhs4WIEkUrvEVRwhBDIbpM87oFbCVdBH38r0XS6F6CdhPJsKFhoEfq4c01HZqNmDpCPA8AAcCuSWqmXoTIqs7OqkWgduE2bInbWU7WMaTl+kCAwEAAaNQME4wHQYDVR0OBBYEFB/AsC4iPAqaLoNytNSx29qByI7+MB8GA1UdIwQYMBaAFB/AsC4iPAqaLoNytNSx29qByI7+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMb2Td3ro/+MGVnCPAbwBSOZMVLUKGqt6zr8CShW9mtFHnmy29EaWSYYAj1M4+6Vpkq85NsgBEck7rnUjV8A3Q0NKdTys1KRKJqVvQRBN6SwqQenSf/abxQCa8Z+69rh+3BkIU1HLtu5lrMDZwon5H91L5mpORn6vItd20uW132lwSDeUEW2CHslTrodoFuTUcSUlRiq/URfUH3baO1QHXkxpQwrBPKL5deJfcZnxh5MAtAGSQL7gHvayEFlDppETXdDO7vgGTH2dEK2TjKWALbGiKkxSqjRyTNt4/FOj10TqNRdUamj+ydVJgzGQ8bki4Vc6NnKm/r4asusxapkVR4="
E: webviewprovider (line=36)
A: description="Chrome Debug" (Raw: "Chrome Debug")
A: packageName="com.google.android.apps.chrome" (Raw: "com.google.android.apps.chrome")
On Android, I used APK Editor Pro 1.10.0 to modify res/xml/config_webview_packages.xml of /system/framework/framework-res.apk. A new APK with a generic signature was generated with the modification. I used the XML file editing option to select and modify the config_webview_packages.xml. The XML file editing functionality is given to be in beta and appears buggy.
I replaced the original /system/framework/framework-res.apk file with the patched one using the TWRP 3.2.3-0 file manager and attempted to boot to system. The system would start, but get stuck at the LG logo screen. I tried wiping data, and cache in recovery and booting again, but received the same result. I note that adb was available and usable after the boot process got stuck on the LG Logo screen.
My impression is that the patched framework-res.apk file is incompatible or defective. Perhaps APK Editor Pro 1.10.0 malformed the output APK (the XML editing feature appeared unfinished) or that the LG stock ROM expects framework-res.apk to have have a particular signature.
Perhaps a different APK editing tool should be tried. What could the problem be?
I have attached a ZIP archive containing the APK Editor Pro 1.10.0 modified framework-res.apk.
EDIT: Attachment has been removed; the file was defective and should not be used. Attachment is no longer necessary.
I have now patched framewor-res.apk successfully, and Bromite System WebView is working.
Did you use again APk Editor Pro or a PC tool?
The tools I used were Windows tools (and with a Java dependency in the case of Apktool) and were: Apktool 2.3.1 and WinRAR 5.6.1. I found that it is best to avoid newer versions of the tool unless trying to manipulate Android 9 Pie or newer resources.
Ascii3 said:
I have now patched framewor-res.apk successfully, and Bromite System WebView is working.
Click to expand...
Click to collapse
I know this is an old post, but how did you get it to boot?
I'm using apktool 2.5 and seems to be stuck on the boot screen as you were
burny02 said:
I know this is an old post, but how did you get it to boot?
I'm using apktool 2.5 and seems to be stuck on the boot screen as you were
Click to expand...
Click to collapse
From somewhere else it seems that you are now using Apktool 2.3.1.
After comparing my notes, my impression on what you are missing and some related notes:
The modified framework-res.apk should use the unmodified APK file's "AndroidManifest.xml" root file and META-INF directory contents. It is not sufficient for any of the content to be the same after decompiling.
Copy "AndroidManifest.xml" and META-INF directory from original framework-res.apk to modified framework-res.apk using zip program, if contents are different.
v2 APK signing scheme (which includes the APK file itself in validation), if present, would be broken, but the scheme's enforcement is not enforced on /system; v1 APK signing scheme (on APK contents ("AndroidManifest.xml" file and META-INF directory contents)) is still enforced.
I zipaligned output/modified framework-res.apk prior to transferring original "AndroidManifest.xml" file and META-INF directory contents, but I do not believe it matters for the purposes of getting a functional framework-res.apk.
EDIT: Some added things to keep in mind:
Sometimes clearing system cache and the runtimes cache is also necessary before system will boot after framework-res.apk replacement. Also make sure that the permissions of the replaced framework-res.apk file are at minimum whatever the original file permissions were. Depending on what software you use to replace the framework-res.apk file, the permissions set may be different.
I really appreciate the help, still does not work unfortunately.
Here is what I do:
adb pull framework-res.apk
apktool d framework-res.apk (tried most versions, mainly now 2.3.1)
Edit framework-res/res/xml/config-webview-packages.xml to:
Code:
<webviewproviders>
<webviewprovider description="Bromite WebView" packageName="com.android.webview" availableByDefault="true" isFallback="true" />
</webviewproviders>
Removing other dev versions with signatures etc
apktool b framework-res
zipalign -v 4 framework-res.apk framework-res-new.apk
Move META-INF and AndroidManifest.xml from the 1st original framework-res.apk > framework-res-new.apk (Have also tried moving res & resources from the new to the original...7Zip, WinRAR, CLI - Linux)
adb push framework-res-new.apk /system/framwork-res.apk
Modify permissions in TWRP > 0644
Move framework-res.apk from /system/ to /system/framework/framwork-res.apk (I read somewhere this is better than pushing directly. Neither worked)
Clear Davlik & Cache
Reboot
Hangs on boot screen
Any ideas if I am missing something important?
@burny02 - Please clarify whether the framework-res.apk you are trying to modify is for LG G5 stock ROM Android Nougat.
I note that you are using the "isFallback="true"" flag with the webviewprovider tag. The purpose of the isFallback attribute set to true (its default is false) is to specify that the WebView provider should be disabled by deault and should only become available when allow other WebView providers are disabled. Using the attribute with the true value with only a single WebView provider seems improper. I do not know if boot should fail if the attribute is present in the way that it is, but in both scenarios I would recommend its omission.
It has also been a while since I used Apktool versions and do not exactly remember the command lines. Do not take my not pointing to an issue with it as there necessarily not being an issue. One thing I would mention is that one typically first install a frameworks before decompiling and building. For the LG G5 RS988 Android Nougat, I believe installing the framework-res.apk as a framework was sufficient. You would specify on command line "apktool if framework-res.apk" and any tags you wish to explicitly specify, if any.
The moving of framework-res.apk to /system/ before /system/framework/ is oftentimes done by people to try to install a modified framework-res.apk with proper permissions and on a live system before the system crashes and reboots. Once framework-res.apk is copied to /system , but does not replace the framework-res.apk file, proper permissions can be set prior to using that file to replace the live framework-res.apk. It is still important to note that some software disregards permissions set when a file is relocated or copied, so this could be an issue if framework-res.apk is replaced with more restrictive permissions than the original framework-res.apk (less restrictive permissions should not usually be a problem for the app to be used). I particularity do not like the idea of the system crashing and prefer to make such changes offline (such as via the aid of a custom recovery).
Sorted. Got it working. Really appreciate the help, Ascii3
For anyone looking at this in the future, the isFallback back seems to stop booting, regardless of whether it is the only entry or not.
The procedure then works as above:
adb pull framework-res.apk
apktool d framework-res.apk (2.3.4 worked for me - SDK 24 Android 7.1 (LGG5))
Edit framework-res/res/xml/config-webview-packages.xml to:
Code:
<webviewproviders>
<webviewprovider description="Bromite WebView" packageName="com.android.webview" availableByDefault="true" />
</webviewproviders>
apktool b framework-res
Move META-INF and AndroidManifest.xml from the 1st original framework-res.apk > new framework-res-new.apk (Used 7Zip drag & drop)
adb push framework-res-new.apk /system/framework/framwork-res.apk
Modify permissions in TWRP > 0644
Clear Davlik & Cache
Reboot
I found the following unnecessary :
Installing framework (apktool if)
Zip-aligning
Moving to /system prior to /system/framework/ (Using TWRP, live system; it might be necessary)
burny02 said:
Sorted. Got it working. Really appreciate the help, Ascii3
Click to expand...
Click to collapse
Sure.
burny02 said:
For anyone looking at this in the future, the isFallback back seems to stop booting, regardless of whether it is the only entry or not.
Click to expand...
Click to collapse
The isFallback attribute is supposed to only be set to true for no more than one webviewprovider. Explicitly setting it to false (its default) should not be problematic (but does result in a larger config-webview-packages.xml file generated). Setting isFallback to true on the only webviewprovider item is not an intended use and apparently results in no boot.
burny02 said:
I found the following unnecessary :
Zip-aligning
Click to expand...
Click to collapse
I do not think zip-aligning apps is necessary generally . My understanding around the reason to do so is to try to optimize the packaged data to be more efficiently fetched in the manner which Android fetches the data.
@Ascii3 @burny02
Hello guys, sorry to exhume this post but I'm struggling and all other threads are maybe ten years old...
So I'm struggling to replicate what you did! I'm no expert but I can follow basic instructions.
So I do as you say, decompile framework-res.apk, modify the xml file (I just add the line). This step seems okay since I did some errors while editing the file and apktool would not recompile properly. Now this goes fine.
Then I got my freshly recompiled framework-res.apk, but 7zip on linux won't let me insert META-INF and AndroidManifest.xml. So I had to rename the extension .zip, do it, then rename in apk. Could this be an issue? It looks dirty.
Anyway, after this you didn't had to resign the apk? I read everywhere you had to, so I did. I did not zipaligned it since I used a resign tool I found on xda and I could not tell if I had to do it before or after resigning, but since you said you didn't zipalign it I thought whatever.
The problem is the following: after replacing framework-res.apk in /system/framework, the phone won't start, I get stuck on the starting screen and I could extract the following from logging:
01-24 04:15:17.470 +0000 4042 4042 I PackageManager: /system/framework/framework-res.apk changed; collecting certs
01-24 04:15:17.749 +0000 4042 4042 W PackageManager: Failed to scan /system/framework/framework-res.apk: Failed to collect certificates from /system/framework/framework-res.apk
Have you got any ideas of what I did wrong? It's my fourth soft-brick today, I'm getting a bit annoyed.
Thanks in advance
@LeSplendide did you ever get this working? Not sure if I'm having the same trouble, but I followed burny's instructions and my phone fails to boot. I checked logcat but I don't see anything relating to framework-res. I'm using magisk to overlay it because if I touch the /system partition for real, VoLTE stops working on my phone (known issue for this phone). I'm successfully overlaying stuff in /system/app and /system/priv-app so I do have overlaying generally working, though this is the first apk in the framework directory I've tried to overlay. Boy do I want to get this working. I've extensively degoogled and debloated this phone and the only glaring thing that remains is chrome handling webview.
TheShanMan said:
@LeSplendide did you ever get this working? Not sure if I'm having the same trouble, but I followed burny's instructions and my phone fails to boot. I checked logcat but I don't see anything relating to framework-res. I'm using magisk to overlay it because if I touch the /system partition for real, VoLTE stops working on my phone (known issue for this phone). I'm successfully overlaying stuff in /system/app and /system/priv-app so I do have overlaying generally working, though this is the first apk in the framework directory I've tried to overlay. Boy do I want to get this working. I've extensively degoogled and debloated this phone and the only glaring thing that remains is chrome handling webview.
Click to expand...
Click to collapse
I'm sorry I have no idea, rn Webview Implementation says I have Android System Webvew 102.0.5005 so I assume this is chrome webview? But I have no clue what I did or not but I know for sure I fixed my problem which was that Webview would crash when trying to sign in a google account on my MicroG'd LEAOS. Now this works so I guess I did make it work. All I found that could be a clue is a update.zip containing instructions and the webview in question. Iirc, the issue was that the zip needed to be signed so that twrp could flash it, so I think I just signed my zip and it worked but can"t tell for sure.

[Q] How can I edit APK's library files (.so files)?

I want to install 2 different versions of an app. I researched a little and found that I need to change APK's package name with APK Editor. I decompiled the APK with APK Editor and changed everything related with package name. For example The app's package name was
Code:
com.oldapk.filee
, I changed to
Code:
com.newapk.file
. Then I compiled it again and installed new apk file. But I was unable to launch the new APK file, I enabled USB Debugging on my phone and started to looking crash logs. I saw that the package name was mentioned as
Code:
com.oldapk.filee
, I started thinking about what could It be wrong, I used
Code:
ack
on linux to check which files has
Code:
com.oldapk.filee
string and saw that 2 libraries (.so files) was including the old package name. I changed them in NotePad++ (Hex Editor Addon) to new package name but this time when the app launches, I was able to see starting screen but it was crashing in 0.5 seconds after I launched it. I checked the crash logs again and then I saw that the package name was still old. Maybe the changes that I made didn't effect. How can I edit these files?

Categories

Resources