today i notice the news about update 5.16.4 and the browser html5 support update.
then i found some info about chromium files and exec commandline param things after download update_kindle_all_new_paperwhite_11th_5.16.4.bin and extract it .
SOME INFO:
- important file path in rootfs.img.gz is : /usr/bin/browser, /usr/bin/chromium, /usr/bin/chromium.sqsh
- /usr/bin/browser is a bash script.
- where is the official ui call it? the ui java code?
- when chromuim.sqsh mount to /usr/bin/chromium ?
- and what is this name with ipc command "lipc-set-prop" do about launch chromium process?
- its different with browser process ps output in 5.16.2.1.1 like "/usr/bin/mesquite -l com.lab126.browser -c file:///var/local/mesquite/browser/ -j" . can i just put these files in 5.16.2.1.1 and run the script to use modern browser? if yes, Is there anything I need to be careful about?
Code:
#!/bin/bash
lipc-set-prop -s "com.lab126.chromebar" "activityIndicator" "{ \"activityIndicator\": {\"clientId\": \"com.lab126.browser\",\"action\": \"start\",\"text\": \"\",\"timeout\": 30000}}"
export XDG_CONFIG_HOME="/mnt/us/system/browser/"
if [ -d $XDG_CONFIG_HOME ]
then
CACHE_SIZE=`du -s /mnt/us/system/browser/ | awk -F '[/ ]' '{print $1}'`
CACHE_LIMIT=65536
if [ $CACHE_SIZE -gt $CACHE_LIMIT ]
then
rm -rf /mnt/us/system/browser/*
fi
fi
export LD_LIBRARY_PATH="/usr/bin/chromium/lib:/usr/bin/chromium/usr/lib:/usr/lib/"
exec chroot /chroot /usr/bin/chromium/bin/kindle_browser --no-zygote --no-sandbox --single-process --skia-resource-cache-limit-mb=64 \
--disable-gpu --in-process-gpu --disable-gpu-sandbox --disable-gpu-compositing \
--enable-dom-distiller --enable-distillability-service --force-device-scale-factor=2 --js-flags="jitless" \
--content-shell-hide-toolbar --content-shell-host-window-cord=0,215 \
--force-gpu-mem-available-mb=40 --enable-low-end-device-mode --enable-low-res-tiling --disable-site-isolation-trials \
--user-agent="Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+"
- /usr/bin/chromium is a empty directory and browser executable files in chromium.sqsh:
Code:
usr/bin/chromium.sqsh: Squashfs filesystem, little endian, version 4.0, zlib compressed, 47645206 bytes, 53 inodes, blocksize: 131072 bytes, created: Fri Oct 6 11:42:21 2023
- after "unsquashfs chromium.sqsh" , here is file tree in it:
Code:
√ squashfs-root % tree
.
├── bin
│** ├── icudtl.dat
│** ├── kindle_browser
│** ├── kindle_browser.pak
│** ├── natives_blob.bin
│** └── v8_context_snapshot.bin
├── etc
│** └── fonts
│** ├── conf.avail -> /etc/fonts/conf.avail
│** ├── conf.d
│** │** ├── 20-fix-globaladvance.conf -> ../conf.avail/20-fix-globaladvance.conf
│** │** ├── 20-unhint-small-vera.conf -> ../conf.avail/20-unhint-small-vera.conf
│** │** ├── 30-metric-aliases.conf -> ../conf.avail/30-metric-aliases.conf
│** │** ├── 30-urw-aliases.conf -> ../conf.avail/30-urw-aliases.conf
│** │** ├── 40-nonlatin.conf -> ../conf.avail/40-nonlatin.conf
│** │** ├── 45-latin.conf -> ../conf.avail/45-latin.conf
│** │** ├── 48-chromium-local.conf
│** │** ├── 49-sansserif.conf -> ../conf.avail/49-sansserif.conf
│** │** ├── 50-user.conf -> ../conf.avail/50-user.conf
│** │** ├── 51-local.conf -> ../conf.avail/51-local.conf
│** │** ├── 60-latin.conf -> ../conf.avail/60-latin.conf
│** │** ├── 65-fonts-persian.conf -> ../conf.avail/65-fonts-persian.conf
│** │** ├── 65-nonlatin.conf -> ../conf.avail/65-nonlatin.conf
│** │** ├── 69-unifont.conf -> ../conf.avail/69-unifont.conf
│** │** ├── 80-delicious.conf -> ../conf.avail/80-delicious.conf
│** │** └── 90-synthetic.conf -> ../conf.avail/90-synthetic.conf
│** ├── fonts.conf -> /etc/fonts/fonts.conf
│** └── fonts.dtd -> /etc/fonts/fonts.dtd
├── files
│** └── fonts
│** ├── NotoSansJP-Medium.ttf
│** └── system_fonts -> /usr/java/lib/fonts/
├── lib
│** ├── ld-linux-armhf.so.3
│** ├── libc.so.6
│** ├── libdl.so.2
│** ├── libnss_compat.so.2
│** ├── libnss_db.so.2
│** ├── libnss_dns.so.2
│** ├── libpthread.so.0
│** ├── libresolv.so.2
│** ├── librt.so.1
│** └── libSegFault.so
└── usr
└── lib
├── libatk-bridge-2.0.so.0
├── libatspi.so.0
├── libgio-2.0.so.0
├── libglib-2.0.so.0
├── libgmodule-2.0.so.0
├── libgobject-2.0.so.0
└── libgthread-2.0.so.0
11 directories, 42 files
- exec binary file :
Code:
√ squashfs-root % file bin/kindle_browser
bin/kindle_browser: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /usr/bin/chromium/lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=60011b78f6e48771982578609636ea71e9b714c4, stripped
√ squashfs-root % ldd bin/kindle_browser
not a dynamic executable
then i got a silly question than can we just pack this for other system version , like 5.16.2.1.1 ?
cause i just jailbreak my kpw5 in this version
and the binary executable file "kindle_browser" ldd result said not dynamic
and some lib file like LD_LIBRARY_PATH env variable in /usr/bin/browser bash script.
i don't want to copy and try to run it directly in my device before i got some advice in here , because some chroot word in browser script file and i'm not familiar with kindle system (just got jailbreak and thanks you guys work)