View Single Post
Old 11-13-2023, 02:56 AM   #1
ShdHrzn
Junior Member
ShdHrzn began at the beginning.
 
Posts: 1
Karma: 10
Join Date: Nov 2023
Device: kindle pw5
the browser in 5.16.4 is chromium

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:
  1. important file path in rootfs.img.gz is : /usr/bin/browser, /usr/bin/chromium, /usr/bin/chromium.sqsh
  2. /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+"
  3. /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
  4. 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
  5. 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)

Last edited by ShdHrzn; 11-13-2023 at 02:58 AM. Reason: fix word
ShdHrzn is offline   Reply With Quote