[BASH] Help me finish this damn function xD - T-Mobile Samsung Galaxy S II SGH-T989

Im writing a function to extend my rather obnoxiously large helper script, the function im currently trying to add will
Print a (customizable) progress bar or percent text (depending on switches given), ive only spent about 20min or so on it
So far, but i appear to be stuck on 1 section (maybe im being to fussy), Basicly, i have it almost together besides abit of cleaning
& organizing, but im holding off till i can get my arithmatics down 100%,
Heres the main function:
Code:
bar() { local E T P=b S=0 cnt c z B== t W=`columns` MaxDec=0
ctrigs(){
shopt -s nocasematch
case "$1" in
\-n*)P=n;;
\-b*)P=b;;
\-k*)S=2;;
\-s*)S=1;;
\-w*)[[ "${1#*=}" != "$1" && `is_num ${1#*=} 1` == 0 ]] && W=${1#*=};;
\-d*)[[ "${1#*=}" != "$1" ]] && B="${1#*=}";;
\-e*)[[ "${1#*=}" != "$1" ]] && E=${1#*=};;
\-t*)[[ "${1#*=}" != "$1" && `is_num ${1#*=} 1` == 0 ]] && T=${1#*=};;
*)ctrigerr "$1";;
esac
shopt -u nocasematch
}
getvals "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}"
if [ "$T" ];then
cnt=0;OS=$SECONDS;SECONDS=0
if [[ "$S" == 1 || "$S" == 2 ]];then MaxDec=10
ST=$(calc "$T/120")
eval echo "${E:-"Please wait.."}"
for k in $($bb seq 1 $W);do
pc=$(($k*100/$T))
echo -en "$B"
$bb sleep $ST
done
echo "Process completed successfully after $SECONDS seconds."
SECONDS=$OS
else
while [ "$cnt" -lt "$(($T+1))" ];do
c=$(($cnt*100/$T));eval echo "${E:-"Please wait.. $([[ "$B" == 1 ]] && echo Progress: $c%)"}"
if [ "$P" == n ];then echo "Progress is: $c%";$bb sleep 1;clear;else echo -en "$(divider "$B" $(calc "${W:-`columns`}/100*$c"))";$bb sleep 1;clear;fi
: $((cnt++))
done
echo
fi
else
return $err_misuse
fi
}
As youl probably notice while examining, its calling various other functions to do what it does
The part im having issues with is:
Code:
ST=$(calc "$T/120")
It will return a 8-place integer based on given time, but tends to be inacurate (roughly 1/10-15seconds)
Which isnt much, but counts when your specifying an exact time
couldnt find any scripts/tools that would display a progress bar (i refuse to copy/compile a binary whos only
Purpose is to display a bar), & i wanted 1, so i made it xD
Once i get that part done i can add different abilities to it such as monitor a file using end size, watch for PID, etc.
Actually make it useful
Basicly what i need for an expression is to:
find how long to use 'sleep' via 'ST' variable, if i should calculate in the width, or not
Etc.
I
Any suggestions are appreciated
If you cant get an idea of the function, just lemme know il either up my whole script or use pastebin if itl let me
(Its almost 2500lines)

Related

[INFO] OpenVPN (tun.ko) for LG Tmobile Gslate

I just compiled a tun.ko and got OpenVPN working on the Tmobile Gslate! so I thought I would share:
1- Rooted (thanks to Chandon)
http://forum.xda-developers.com/showthread.php?t=1065882
2- Install tun.ko (Attached below)
download and unzip
Code:
adb remount
adb push tun.ko /system/lib/modules
adb shell
chmod 755 /system/lib/modules/tun.ko
Note: This tun module was built for kernel 2.6.36.3+
3- Install BusyBox using BusyBox Installer (from Market)
Install to /system/xbin
4- Install OpenVPN using OpenVPN Installer (from Market)
Install binary to /system/xbin
Install route to /system/xbin/bb
5- Install OpenVPN Settings (from Market)
6- Install OpenVPN static binary:
Download Static openvpn
Un-bz2 the file (7-Zip on Windows | bunzip2 on linux)
Code:
adb remount
adb push openvpn-static /system/xbin/openvpn
adb shell
chmod 555 /system/xbin/openvpn
7- Link Busybox ifconfig and route to /system/xbin/bb
Code:
adb shell
su
mkdir /system/xbin/bb
ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/xbin/route /system/xbin/bb/route
8- Setup OpenVPN Settings (from Market)
OpenVPN settings > Advanced > Load tun kernel module <- turn ON
OpenVPN settings > Advanced > TUN module settings
Load module using - insmod
Path to tun module - /system/lib/modules/tun.ko
9- copy your .conf files to /sdcard/openvpn
REBOOT
CONNECT!~
Extra for SMB mounters : Cifs.ko ! - Attached!
Edit: June 5 '11 - Extra for Asian users : nls_utf8.ko - Attached!
Well, I'm able to connect to my OpenVPN server now, but there must be something different in the binary..."client.conf: Connected" keeps spamming the notification area. Are you having this problem?
On a related note - I've got a couple other options, if I can get my cross-compiling tools set up correctly...I could use SonicWALL's NetExtender app, but that needs ppp_async and ppp_synctty built. I also wanted to be able to talk to a Windows-friendly PoPToP VPN server, but I suspect I'd need the ppp_mppe.ko built for that.
I tried compiling the whole kernel with the options I've mentioned, but I don't think I did it right...the make went all the way through, but I was using the gcc 4.4.3 eabi set in the SDK/NDK toolset. Since then, I've been trying to set things up according notes I found at K's Cluttered loft ( at triple-w dot (noob html limitation workaround) ailis.de/~k/archives/19-ARM-cross-compiling-howto dot HyperText Markup Language ) but start encountering problems when I try to build glibc...do you know of any instructions/tutorials which might help to educate this n00b (aye, that be me) in the fine art of ARM cross compiling?
bealesbane said:
Well, I'm able to connect to my OpenVPN server now, but there must be something different in the binary..."client.conf: Connected" keeps spamming the notification area. Are you having this problem?
On a related note - I've got a couple other options, if I can get my cross-compiling tools set up correctly...I could use SonicWALL's NetExtender app, but that needs ppp_async and ppp_synctty built. I also wanted to be able to talk to a Windows-friendly PoPToP VPN server, but I suspect I'd need the ppp_mppe.ko built for that.
I tried compiling the whole kernel with the options I've mentioned, but I don't think I did it right...the make went all the way through, but I was using the gcc 4.4.3 eabi set in the SDK/NDK toolset. Since then, I've been trying to set things up according notes I found at K's Cluttered loft ( at triple-w dot (noob html limitation workaround) ailis.de/~k/archives/19-ARM-cross-compiling-howto dot HyperText Markup Language ) but start encountering problems when I try to build glibc...do you know of any instructions/tutorials which might help to educate this n00b (aye, that be me) in the fine art of ARM cross compiling?
Click to expand...
Click to collapse
Yeah I have that spamming problem too .. always have with the honeycomb tablets.
I used 4.4.0 eabi, and had to hard code the localversion in the setlocalversion file and absolute path to the eabi modules in the makefile to get it to cross compile
I built and attached the ppp_async.ko , ppp_synctty.ko , ppp_mppe.ko for you (I did not test a insmod as I built and tested the cifs and tun on a friends tablet - do let me know if these work!)
That's great! Thanks for putting those together. All of the modules you created insert fine with insmod (this version of busybox still has an issue with modprobe running on this tablet, suspect may be related to self-referring parameter, but hope to experiment more later) with the exception of mppe. That one comes back with "insmod: init_module '/system/lib/modules/ppp_mppe.ko' failed (File exists)".
This, however, may not be due to the module itself, strictly speaking. The other two, which are presented by SonicWALL as a workaround to their proprietary VPN app, inserted fine, but still produce an I/O error when a connection is attempted...closer inspection of the app's log reveals a similar complaint under the hood:
06-01 08:01:36.848 I/NetExtender.ppp( 8207): Nxhelper: start pppd main routine
06-01 08:01:36.858 D/NetExtender.ppp( 8207): using channel 1
06-01 08:01:36.858 E/NetExtender.ppp( 8207): Couldn't create new ppp unit: File exists
06-01 08:01:36.858 I/NetExtender.ppp( 8207): Nxhelper: pppd hung up, notify the service
My off the wall guess, pending further investigation, is that inserting mppe, or trying to initialize the other two, results in an attempt to create a device handle which is not being properly enumerated? ( i.e., attempting to create an instance of /dev/ppp, which already exists, instead of a new handle, say, /dev/ppp0, ppp1, etc.) Again, just theorizing blindly at this point - but you've certainly given me a great deal to work with, and I say thank ya big big.
I'll update you with any progress I make here, but at least for the time being I still have basic connectivity to one of my networks, and I can do much with that. And the cifs module works a treat as well!
In the meantime, a simple script allows me to toggle the VPN on and off without being annoyed by the spamming...then I add a widget to the script using ScriptManager (from the market) and viola! Look ma, no hands!
Code:
#!/system/bin/sh
BB="/system/xbin/busybox"
VPN="/system/xbin/openvpn"
TUNDTL=`$BB ifconfig tun0 2>&1`
RESULT=$?
if [ $((RESULT)) -eq 1 ]; then
$VPN --config /mnt/sdcard/openvpn/client.conf --daemon MYVPN
else
VPNPID=`ps openvpn | grep "^root"`
VPNPID=`echo $VPNPID | cut -d" " -f2`
if [ $((VPNPID)) -gt 99 ]; then
$BB kill -KILL $VPNPID
fi
fi
exit
(Just for anyone who doesn't want to wait until OpenVPN Settings gets a bugfix for Honeycomb. Obviously, adjust locations as needed. Oh, and don't give the script a name that starts with "openvpn"...unless you WANT a kamikaze script. This simple script obviously wouldn't work for multiple tunnels, (if they're even supported), but it does ya fine for the basic config.)
awesome idea for the spamming .. sadly I have 8 openVPN servers I switch between so i have to put up with the spamming.. any idea what the reason of the spamming is? maybe contact the dev?
The source for the app is available at 'code.google.com/p/android-openvpn-settings'. The issue has been reported already by a few people (issue 70), but it looks like there are quite a few other issues reported, so no telling if or when Mr. Schäuffelhut will have a chance to review it. It seems like it would be a good starter project for a would-be contributor...I haven't done any java developing, but it seems like it would be easier to isolate our issue and tweak it than bloat my simple script to allow multiple PIDs to be tracked and toggled...though the latter is certainly possible, and after I get my second OpenVPN server online (Audiogalaxy offline for better part of day yesterday, need to make myself independent of that), if the Java is too daunting I just may do so. So many tempting projects, so little time.
Simple VPN handler script to tide us over until 0.4.8 or more in OpenVPN-Settings
Ok, since you were so kind as to compile those extra modules for me, I figure the least I can do is give you something in return. Here's a simple VPN handler to manage multiple tunnels. Filenames for config files are entered relative to the CFGS folder, and module load/remove is manual rather than auto...and I put in connection sharing, as I'm using it this way...but it'll certainly let you use as many tunnels as the kernel will let you work with.
As always, the standard, 'you take your life into your own hands if you use this code, not responsible for problems up to and including user death' disclaimer applies. It seems to be working for me, though I'm only using 2 VPN's ATM.
Good luck! (Will still let you know if I make any progress in Java Dev)
Code:
[email protected]: /data/local/bin > cat ./vpnhandler
#!/system/bin/sh
export BB="/system/xbin/busybox"
export VPN="/system/xbin/openvpn"
export MODS="/system/lib/modules"
export CFGS="/mnt/sdcard/openvpn"
export SPACES=" "
LOOPBACK=0
while [ $((LOOPBACK)) -eq 0 ]; do
LOOPBACK=1
CIFMOD=`$BB lsmod | grep -c "^cifs"`
if [ $((CIFMOD)) -eq 0 ]; then CIFMOD="Load"; else CIFMOD="Remove"; fi
TUNMOD=`$BB lsmod | grep -c "^tun"`
if [ $((TUNMOD)) -eq 0 ]; then TUNMOD="Load"; else TUNMOD="Remove"; fi
clear
echo "Simple VPN Handler"
echo "=================="
echo
echo "ACT # Tunnel Name Configuration File "
echo "--- --- -------------------- ------------------------------"
while read vpndefs; do
TUNNO=`echo "${vpndefs}" | cut -d"~" -f1`
TUNNAME=`echo "${vpndefs}" | cut -d"~" -f2`
TUNCFG=`echo "${vpndefs}" | cut -d"~" -f3`
TUNSTAT=`$BB ps w | grep openvpn | grep -c "\-\-daemon ${TUNNAME}\$"`
if [ $((TUNSTAT)) -eq 1 ]; then TUNSTAT="*"; else TUNSTAT=" "; fi
DISPLINE=" ${TUNSTAT} ${SPACES:0:$((3-${#TUNNO}))}${TUNNO} ${TUNNAME}${SPACES:0:$((22-${#TUNNAME}))}${TUNCFG}"
echo "${DISPLINE}"
done < "${CFGS}/cfglist"
echo
echo "_______________________________________________________________"
echo
echo " A - Add a new tunnel definition"
echo " D - Delete an existing tunnel "
echo " C - ${CIFMOD} CIFS Module "
echo " T - ${TUNMOD} TUN Module "
echo " S - Share tap0 to eth0 traffic "
echo " X - Break traffic forwarding "
echo " Q - Quit "
echo
echo -n " Select action, or a tunnel number to toggle on or off : "
read actkey
if [ "$actkey" = "C" -o "$actkey" = "c" ]; then
LOOPBACK=0
if [ "$CIFMOD" = "Load" ]; then
LOADMOD=`$BB insmod ${MODS}/cifs.ko 2>&1`
else LOADMOD=`/system/bin/toolbox rmmod cifs.ko 2>&1`
fi
fi
if [ "$actkey" = "T" -o "$actkey" = "t" ]; then
LOOPBACK=0
if [ "$TUNMOD" = "Load" ]; then
LOADMOD=`$BB insmod ${MODS}/tun.ko 2>&1`
else LOADMOD=`/system/bin/toolbox rmmod tun.ko 2>&1`
fi
fi
if [ "$actkey" = "S" -o "$actkey" = "s" ]; then
LOOPBACK=0
iptables -F; iptables -t nat -F; iptables -X; iptables -t nat -X
echo 1 | tee /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
fi
if [ "$actkey" = "X" -o "$actkey" = "x" ]; then
LOOPBACK=0
iptables -F; iptables -t nat -F; iptables -X; iptables -t nat -X
echo 0 | tee /proc/sys/net/ipv4/ip_forward
fi
if [ "$actkey" = "A" -o "$actkey" = "a" ]; then
LOOPBACK=0
echo; echo -n " Enter tunnel number to assign : "; read TUNNO
TUNCHK=`cat "${CFGS}/cfglist" | grep -c "^${TUNNO}~"`
if [ $((TUNCHK)) -eq 0 ]; then
echo; echo -n " Enter a name for the tunnel : "; read TUNNAME
echo; echo -n " Enter filepath/name for config file (relative to ${CFGS}) : "; read TUNCFG
echo "${TUNNO}~${TUNNAME}~${TUNCFG}" >> "${CFGS}/cfglist"
else echo -n " That number is already in use. "; read TUNNO
fi
fi
if [ "$actkey" = "D" -o "$actkey" = "d" ]; then
LOOPBACK=0
echo; echo -n " Enter tunnel number to delete : "; read TUNNO
TUNCHK=`cat "${CFGS}/cfglist" | grep -c "^${TUNNO}~"`
if [ $((TUNCHK)) -eq 0 ]; then
echo -n " That number is not currently in use. "; read TUNNO
else vpndefs=`cat "${CFGS}/cfglist" | grep "^${TUNNO}~"`
TUNNAME=`echo "${vpndefs}" | cut -d"~" -f2`
TUNSTAT=`$BB ps w | grep openvpn | grep -c "\-\-daemon ${TUNNAME}\$"`
if [ $((TUNSTAT)) -gt 0 ]; then
echo; echo -n " Tunnel is active. Turn off before deleting."; read TUNNO
else RESULT=`cat "${CFGS}/cfglist" | egrep -v "^${TUNNO}~" > "${CFGS}/cfglist.tmp"`
$BB mv -f "${CFGS}/cfglist.tmp" "${CFGS}/cfglist"
fi
fi
fi
if [ "$actkey" = "Q" -o "$actkey" = "q" ]; then LOOPBACK=0; fi
if [ $((LOOPBACK)) -eq 1 ]; then
TUNCHK=`cat "${CFGS}/cfglist" | grep -c "^${actkey}~"`
LOOPBACK=0
if [ $((TUNCHK)) -eq 0 ]; then
echo -n " That number is not currently in use. "; read TUNNO
else TUNNO="${actkey}"
vpndefs=`cat "${CFGS}/cfglist" | grep "^${TUNNO}~"`
TUNNAME=`echo "${vpndefs}" | cut -d"~" -f2`
TUNCFG=`echo "${vpndefs}" | cut -d"~" -f3`
TUNSTAT=`$BB ps w | grep openvpn | grep -c "\-\-daemon ${TUNNAME}\$"`
if [ $((TUNSTAT)) -gt 0 ]; then
VPNPID=`$BB ps w | grep openvpn | grep "\-\-daemon ${TUNNAME}"`
VPNPID=`echo $VPNPID | cut -d" " -f1`
if [ $((VPNPID)) -gt 99 ]; then
RESULT=`$BB kill -KILL $VPNPID`
fi
else RESULT=`$VPN --config "${CFGS}/${TUNCFG}" --daemon "${TUNNAME}"`
fi
fi
fi
if [ "$actkey" = "Q" -o "$actkey" = "q" ]; then LOOPBACK=1; fi
done
exit
Note: It'll throw out some screen errors if you don't have a zero length file in $CFGS/cfglist, but it'll let you add your first tunnel anyway. (Didn't bother to trap for that.)
Oh, and ScriptManager doesn't seem to like digging for scripts in /data/local/bin, but doesn't appear to have a problem executing things in /mnt/sdcard, even though I don't seem to be able to set the execute bit on any file in that fs. There's reference in Google of known glitch in some kernels that cause fs' mounted with the 'default_permissions,allow_other' flags to behave strangely. If they ever fix that, you may need to relocate, that's all.
Note also that the "ACT" column which denotes 'active' tunnels with an '*' only verifies that there is a process running with the designated label name. At this time, actual connectivity is left to you to determine.
it's very helpful, thanks very much!!
but could you compile nls_utf8.ko too? please
You should try and come up with a working recovery!
Sent from my LG-V909 using XDA Premium App
bealesbane said:
Ok, since you were so kind as to compile those extra modules for me, I figure the least I can do is give you something in return. Here's a simple VPN handler to manage multiple tunnels. Filenames for config files are entered relative to the CFGS folder, and module load/remove is manual rather than auto...and I put in connection sharing, as I'm using it this way...but it'll certainly let you use as many tunnels as the kernel will let you work with.
As always, the standard, 'you take your life into your own hands if you use this code, not responsible for problems up to and including user death' disclaimer applies. It seems to be working for me, though I'm only using 2 VPN's ATM.
Good luck! (Will still let you know if I make any progress in Java Dev....
Click to expand...
Click to collapse
Bealsbane way to go man, that is far more code than I could figure out! now i feel like i owe you a beer! haha .. I tried the code but it helps to have a gui currently .. i although do have alot of Java experience and possibly you and I could get a new OpenVPN Settings/Installer for gingerbread/honeycomb based devices!
once again thanks!
aureole999 said:
it's very helpful, thanks very much!!
but could you compile nls_utf8.ko too? please
Click to expand...
Click to collapse
Added to the first Post .. please test it and let me know if it works! good luck!
edit: tested by aureole999 and confirmed working
Excellent work ru1dev. I just added this thread to the G-Slate XDA bit.ly bundle. Would you mind if I posted a link to it over on G-SlateFans?
Bling_Diggity said:
Excellent work ru1dev. I just added this thread to the G-Slate XDA bit.ly bundle. Would you mind if I posted a link to it over on G-SlateFans?
Click to expand...
Click to collapse
Go ahead as long as it is a link back to the OP. Thanks for spreading the knowledge
please dont bash me as i know im a little off topic but hi everyone i have a major issue with my rooted gslate.if anyone can help it would be greatly appreciated. i downloaded cw from the market and when it askes you for compatibility i accedently chose the option (lg optimus 3d) thinking it was for my gslate and now after i turned off the gslate and go to turn it back on its stuck on LG blackscreen and says
[HasValidKernelImage] Magic value mismatch:
[DetectOperatingSystems]kernel image is invalid !!!
Starting Fastboot USB download protocol
Ive looked all over the internet and cant find anything to help me out so please can someone help me.
maybe a way to nvflash the proper kernel back.
tun.ko checksum
Hi guys, can anybody please post the md5sum output of the tun.ko? even though im using the same kernel, i cannot load the module on my g-slate. thanks
jomnoc said:
Hi guys, can anybody please post the md5sum output of the tun.ko? even though im using the same kernel, i cannot load the module on my g-slate. thanks
Click to expand...
Click to collapse
md5 - 3daf2d134dc2ae6c4a40fe3d8ac49344
Thanks! I have 6707fd6a79cc849d13e8dd4016f96028 .... ideas? can you upload your file? Thanks again
jomnoc said:
Thanks! I have 6707fd6a79cc849d13e8dd4016f96028 .... ideas? can you upload your file? Thanks again
Click to expand...
Click to collapse
yes that is the md5 for the tun.ko .. in a rush i gave you the md5 for the zip of the tun.ko previously. are you sure you are running kernel 2.6.36.3+
it has to be exactly that kernel..with the '+' on the end
yes i am. or i was haha.. it was a friend's tablet. but it certainly had that kernel version. thanks for the help. if i get it again i may ask for help

### make failed to build some targets ###

I was wondering if someone in the Samsung Tab S developers could help me out on this error I am having. I recieve this everytime I start the ./build.sh
Not sure what I'm doing wrong. Not sure if I have something in the ./build.sh that needs to be corrected. I'm a noob at all this developing and trying to learn as much as I can when I can. (("So take it easy on me "))
I'm running BBQLinux as my build environment OS
#### make failed to build some targets (07:46 (mm:ss)) ####
grep: out/target/product/chagallwifi/system/build.prop: No such file or directory
mv: cannot stat 'out/target/product/chagallwifi/aosp_chagallwifi-ota-eng.ubuntu.zip': No such file or directory
md5sum: out/target/product/chagallwifi/aosp-.zip: No such file or directory
./build.sh 1187.08s user 117.71s system 276% cpu 7:51.76 total
Copy of the ./build.sh
#!/bin/bash
DEBUG="debug"
#DEBUG=""
GCC_PATH=`pwd`/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin
export PATH=$GCC_PATH:$PATH
export USE_CCACHE=1
export CCACHE_DIR=`pwd`/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 120G
if [ "x$1" == "x" ]; then
products="chagallwifi"
else
products=$1
fi
if [ "x$2" == "xnoclean" ]; then
noclean=1
else
noclean=0
fi
# Fix build dependency
mkdir -p prebuilts/qemu-kernel/arm
touch prebuilts/qemu-kernel/arm/LINUX_KERNEL_COPYING
source build/envsetup.sh
if [ "x$noclean" == "x0" ]; then
make clean
fi
for product in $products
do
echo "lunch aosp_${product}-user$DEBUG"
lunch aosp_${product}-user$DEBUG
make -j 16 otapackage 2>&1 | tee build.log
ROM_ORG="aosp_${product}-ota-eng.ubuntu.zip"
ROM="aosp-`grep "ro.build.version.incremental" out/target/product/${product}/system/build.prop | sed "s/ro.build.version.incremental=//g"`.zip"
mv out/target/product/${product}/${ROM_ORG} out/target/product/${product}/${ROM}
md5sum out/target/product/${product}/${ROM} > out/target/product/${product}/${ROM}.md5sum
done
I was able to fix the problem I was having.
Thanks,
Falcon204

LineageOS source compilation fails

I'm trying to build Lineage 14.1 for serranoltexx (for 5 days now).
When I started the compilation using "breakfast serranoltexx" an error appears after the 7 percent mark (~2minutes).
I followed this guide: wiki.lineageos. org/devices/serranoltexx/build
with a fresh Ubuntu 17.04 VM Box installation two times but that error always appears.
The only thing I still could mention is that pulled the proprietary blobs using my phone as stated in the instructions not with the stock Rom but Lineage 14.1 already installed.
Full console output:
(error at line #321) pastebin. com/vC06fV36
Error:
Code:
make: Leaving directory '/home/mrglue/android/lineage/kernel/samsung/msm8930-common'
[ 7% 2535/34256] Building Kernel
FAILED: /bin/bash -c "(make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" zImage ) && (if grep -q 'CONFIG_OF=y' /home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ/.config ; then echo \"Building DTBs\" ; make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" dtbs ; else echo \"DTBs not enabled\" ; fi ) && (if grep -q 'CONFIG_MODULES=y' /home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ/.config ; then echo \"Building Kernel Modules\" ; make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" modules && make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ INSTALL_MOD_PATH=../../system ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" modules_install && mdpath=\`find /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules -type f -name modules.order\`; if [ \"\$mdpath\" != \"\" ];then mpath=\`dirname \$mdpath\`; ko=\`find \$mpath/kernel -type f -name *.ko\`; for i in \$ko; do arm-linux-androidkernel-strip --strip-unneeded \$i; mv \$i /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules/; done; fi && mdpath=\`find /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules -type f -name modules.order\`; if [ \"\$mdpath\" != \"\" ];then mpath=\`dirname \$mdpath\`; rm -rf \$mpath; fi ; else echo \"Kernel Modules not enabled\" ; fi )"

n00b build issues...

Hi all,
Can anyone help me out with info on how to solve this?
Code:
[ 84% 103/122] ----- Making uncompressed recovery ramdisk ------
cp: cannot stat '/android-dev/android/lineage/out/target/product/cepheus/root/init.recovery.*.rc': No such file or directory
[ 85% 104/122] ----- Making compressed recovery ramdisk ------
[ 86% 105/122] ----- Making recovery image ------
[ 86% 106/122] Target build info: /android-dev/android/lineage/out/target/product/cepheus/system/build.prop
[ 87% 107/122] build /android-dev/android/lineage/out/target/product/cepheus/obj/NOTICE.xml
[ 88% 108/122] build /android-dev/android/lineage/out/target/product/cepheus/obj/NOTICE.xml.gz
[ 89% 109/122] build /android-dev/android/lineage/out/target/product/cepheus/system/etc/NOTICE.xml.gz
[ 90% 110/122] build /android-dev/android/lineage/out/target/product/cepheus/obj/NOTICE_VENDOR.xml
[ 90% 111/122] build /android-dev/android/lineage/out/target/product/cepheus/obj/NOTICE_VENDOR.xml.gz
[ 91% 112/122] build /android-dev/android/lineage/out/target/product/cepheus/vendor/etc/NOTICE.xml.gz
[ 92% 113/122] Installed file list: /android-dev/android/lineage/out/target/product/cepheus/installed-files-vendor.txt
[ 93% 114/122] Installed file list: /android-dev/android/lineage/out/target/product/cepheus/installed-files.txt
[ 94% 115/122] Target system fs image: /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system.img
FAILED: /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system.img
/bin/bash -c "(if [ -d /android-dev/android/lineage/out/target/product/cepheus/system/vendor ] && [ ! -h /android-dev/android/lineage/out/target/product/cepheus/system/vendor ]; then echo 'Non-symlink /android-dev/android/lineage/out/target/product/cepheus/system/vendor detected!' 1>&2; echo 'You cannot install files to /android-dev/android/lineage/out/target/product/cepheus/system/vendor while building a separate vendor.img!' 1>&2; exit 1; fi ) && (ln -sf /vendor /android-dev/android/lineage/out/target/product/cepheus/system/vendor ) && (mkdir -p /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/ /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates && rm -rf /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"ext_mkuserimg=mkuserimg_mke2fs.sh\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"fs_type=ext4\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"system_size=3758096384\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"extfs_sparse_flag=-s\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"squashfs_sparse_flag=-s\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"selinux_fc=/android-dev/android/lineage/out/target/product/cepheus/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_avbtool=avbtool\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_system_hashtree_enable=true\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_system_add_hashtree_footer_args=--setup_as_rootfs_from_kernel\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_vendor_hashtree_enable=true\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_vendor_add_hashtree_footer_args=\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_product_hashtree_enable=true\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"avb_product_add_hashtree_footer_args=\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"system_root_image=true\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"root_dir=/android-dev/android/lineage/out/target/product/cepheus/root\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"skip_fsck=true\" >> /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (PATH=/android-dev/android/lineage/out/host/linux-x86/bin/:\$PATH build/make/tools/releasetools/build_image.py /android-dev/android/lineage/out/target/product/cepheus/system /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system_image_info.txt /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/system.img /android-dev/android/lineage/out/target/product/cepheus/system /android-dev/android/lineage/out/target/product/cepheus/obj/PACKAGING/systemimage_intermediates/generated_system_image_info.txt || ( mkdir -p /android-dev/android/lineage/out/dist; cp /android-dev/android/lineage/out/target/product/cepheus/installed-files.txt /android-dev/android/lineage/out/dist/installed-files-rescued.txt; exit 1 ) )"
Non-symlink /android-dev/android/lineage/out/target/product/cepheus/system/vendor detected!
You cannot install files to /android-dev/android/lineage/out/target/product/cepheus/system/vendor while building a separate vendor.img!
[ 95% 116/122] Target vendor fs image: /android-dev/android/lineage/out/target/product/cepheus/vendor.img
[ 95% 117/122] Construct recovery from boot
ninja: build stopped: subcommand failed.
14:51:04 ninja failed with: exit status 1
Thanks in advance
MWPau said:
Hi all, Can anyone help me out with info on how to solve this?.........
Click to expand...
Click to collapse
If this is regarding an issue building a LineageOS Firmware ROM, there's a bunch of Guides, Tutorials, etc... regarding this topic on the Forum.
The following are just 2 examples of them that looks pretty active too.
https://forum.xda-developers.com/showthread.php?t=3551484
https://forum.xda-developers.com/showthread.php?t=2814763
Good Luck!
~~~~~~~~~~~~~~~
Unless asked to do so, PLEASE don't PM me regarding support. Sent using The ClaRetoX Forum App on my Apple Macintosh.

General Play-systemupdate 20220118

I received yet another Play-systemupdate today (second one in January).
The date - after update - is still reading "December 1, 2021".
However, the following package was updated:
Code:
--before--
com.google.mainline.telemetry | 2021-11-01S+| (311102024)
--after--
com.google.mainline.telemetry | 2021-11-01S+| (311104004)
Seeing this, I decided to manually check and I got another update too (597 kB), still on December.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Just checked the play system on my phone. Date is Dec 1, 2021 and no update found.
Is there still no way to force these updates? I am still running December^^
Forgot to mention that it was indeed 599K on size.
Same thing here, update was 597kb and still says December.
This is the first time I checked for a playsystem update since my Nokia 6.1 I forgot about these..
Is there anyway to verify before and after the update, that things are being updated? That would be great.
fil3s said:
This is the first time I checked for a playsystem update since my Nokia 6.1 I forgot about these..
Click to expand...
Click to collapse
Google started Play System updates (previously: Project Mainline) with Android 10 (splitting the firmware updates - taking stuff out of the Android operating system, transforming certain functions as an app to ensure timely updates with third party manufacturers through simple updates through Google Playstore - meaning that will help Android phones get critical and essential updates a lot sooner because none of the changes will require a system update from the phone manufacturer).
Alekos said:
Is there anyway to verify before and after the update, that things are being updated? That would be great.
Click to expand...
Click to collapse
Check this link:
Google starts detailing what's new in its monthly Google Play system updates
Now you will know which exact update to blame when something breaks
www.androidpolice.com
foobar66 said:
Check this link:
Google starts detailing what's new in its monthly Google Play system updates
Now you will know which exact update to blame when something breaks
www.androidpolice.com
Click to expand...
Click to collapse
I've read that. I've been disappointed actually in how integrated Play Services is getting. So many things are now part of Play Services its making Android Forks harder to use without GAPPS. Anyway that's a different issue altogether.
I was more interested in your op about the files that were changed on the system. I commented on another post that System Update has had an issue for more than 2 years (on some pixels like I have experienced) where after it updates it reverts to the same (or sometimes an older) date/month. I had a case open with Google Support since last May but they stopped responding.
You have come closest to providing specific changes after this specific update, than I've seen in the past few years. I was hoping maybe for a before and after of some sort, to verify that the Play System update actually updated, and that the date is wrong. I had the date be behind over 6 months at some points. Wiping, flashing original firmware builds etc didn't fix it. It eventually got resolved after A12 for my 2 devices (Pixel 3xl) but I also had it be behind 2 months in December on my 6 Pro.
It is actually a (reasonably) simple linux/bash script which I run before/after upgrade. Then do a 'tkdiff' (if you know what that means) to visualize the deltas. Source code (feel free to (re)use).
Code:
#!/bin/bash
display_usage() {
echo "usage: $0 [{system|user}] [{path|pkg}] [{disabled|enabled}] [<filter>] ($1)"
}
SCNT=0
UCNT=0
PACNT=0
PKCNT=0
DCNT=0
ECNT=0
# by default we put package in first column
PPATH=false
# FLAGS1 selects between user (-3) and system (-s)
FLAGS1=""
# FLAGS2 selects between disabled (-d) and enabled (-e)
FLAGS2=""
# by default there is no grep filter
FCNT=0
FILTER=0
while [[ $# -gt 0 ]]; do
case $1 in
"user")
if [ $SCNT -eq 1 ]; then
display_usage "'user' and 'system' cannot occur together on the command line"
exit 1
fi
if [ $UCNT -eq 0 ]; then
UCNT=$((UCNT + 1))
FLAGS1="-3"
else
if [ $UCNT -eq 1 ]; then
display_usage "'user' can only occur once on the command line"
exit 1
fi
fi
;;
"system")
if [ $UCNT -eq 1 ]; then
display_usage "'user' and 'system' cannot occur together on the command line"
exit 1
fi
if [ $SCNT -eq 0 ]; then
SCNT=$((SCNT + 1))
FLAGS1="-s"
else
if [ $SCNT -eq 1 ]; then
display_usage "'system' can only occur once on the command line"
exit 1
fi
fi
;;
"enabled")
if [ $DCNT -eq 1 ]; then
display_usage "'enabled' and 'disabled' cannot occur together on the command line"
exit 1
fi
if [ $ECNT -eq 0 ]; then
ECNT=$((ECNT + 1))
FLAGS2="-e"
else
if [ $ECNT -eq 1 ]; then
display_usage "'enabled' can only occur once on the command line"
exit 1
fi
fi
;;
"disabled")
if [ $ECNT -eq 1 ]; then
display_usage "'enabled' and 'disabled' cannot occur together on the command line"
exit 1
fi
if [ $DCNT -eq 0 ]; then
DCNT=$((DCNT + 1))
FLAGS2="-d"
else
if [ $DCNT -eq 1 ]; then
display_usage "'disabled' can only occur once on the command line"
exit 1
fi
fi
;;
"path")
if [ $PKCNT -eq 1 ]; then
display_usage "'path' and 'pkg' cannot occur together on the command line"
exit 1
fi
if [ $PACNT -eq 0 ]; then
PACNT=$((PACNT + 1))
PPATH=true
else
if [ $PACNT -eq 1 ]; then
display_usage "'path' can only occur once on the command line"
exit 1
fi
fi
;;
"pkg")
if [ $PACNT -eq 1 ]; then
display_usage "'path' and 'pkg' cannot occur together on the command line"
exit 1
fi
if [ $PKCNT -eq 0 ]; then
PKCNT=$((PKCNT + 1))
PPATH=false
else
if [ $PKCNT -eq 1 ]; then
display_usage "'ppk' can only occur once on the command line"
exit 1
fi
fi
;;
*)
if [ $FCNT -eq 1 ]; then
display_usage "there can only be 1 filter argument"
exit 1
fi
FCNT=$((FCNT + 1))
FILTER="$1"
;;
esac
shift
done
if [ $FCNT -eq 0 ]; then
pkg=$(adb shell pm list packages $FLAGS1 $FLAGS2 -f | colrm 1 8 | sort)
else
pkg=$(adb shell pm list packages $FLAGS1 $FLAGS2 -f | colrm 1 8 | grep "$FILTER" | sort)
fi
LI=()
for P in $pkg; do
if [ $PPATH == "true" ]; then
# just push the entry <file>=<package>
LI+=("$P")
else
# extract filename and packagename and concat them
# so each entry looks like <package>=<filename>
P1=`echo $P | sed 's/apk=/apk /g' | awk '{print $1}'`
P2=`echo $P | sed 's/apk=/apk /g' | awk '{print $2}'`
LI+=("$P2=$P1")
fi
done
rm -rf /tmp/pkgdata
touch /tmp/pkgdata
for P in "${LI[@]:0}"; do
echo "$P" >> /tmp/pkgdata
done
for P in `sort /tmp/pkgdata | grep -v SwiftBlack | grep -v SwiftDark`; do
if [ $PPATH == true ]; then
P1=`echo $P | sed 's/apk=/apk /g' | awk '{print $1}'`
P2=`echo $P | sed 's/apk=/apk /g' | awk '{print $2}' | sed -e 's/ //g'`
else
P1=`echo $P | sed 's%=/% /%g' | awk '{print $2}'`
P2=`echo $P | sed 's%=/% /%g' | awk '{print $1}' | sed -e 's/ //g'`
fi
VER=`adb shell dumpsys package $P2 | grep versionName | head -n 1 | sed -e 's/versionName=//g' | sed -e 's/ //g' | cut -c-15`
VERC=`adb shell dumpsys package $P2 | grep versionCode | head -n 1 | awk '{print $1}' | sed 's/versionCode=//g' | cut -c-15`
if [ $PPATH == true ]; then
# argument was not supplied, it means file name is before the = sign
printf "%-115s |%15s| %-s\n" "$P1" "$VER" "$P2"
else
printf "%-65s |%15s|%12s| %-10s\n" "$P2" "$VER" "($VERC)" "$P1"
fi
done
Run it from the linux command line with:
Code:
> apackages system > before-update
Then apply Google system update, then:
Code:
> apackages system > after-update
> tkdiff before-update after-update
Iḿ not a Windows guy, but I guess it is not so complicated to turn this into a .bat script which you can run from DOS/Powershell under Windows. You must have working adb though.
The script has some command line args:
Code:
system|user: filter on system packages or user packages
enabled|disabled: filter on packages which are enabled or disabled
pkg|path: outputs the path first or package name first
<string> script will filter packages that match the string (e.g. 'com.google.android' will filter those that have com.google.android in their package name)
Sample output (package name, version name, version code, path in Android file system):
Code:
com.android.ons | 12| (31)| /system/priv-app/ONS/ONS.apk
com.android.phone.auto_generated_rro_product__ | 1.0| (1)| /product/overlay/TeleService__auto_generated_rro_product.apk
com.android.phone.auto_generated_rro_vendor__ | 1.0| (1)| /vendor/overlay/TeleService__auto_generated_rro_vendor.apk
com.android.phone | 12| (31)| /system/priv-app/TeleService/TeleService.apk
com.android.printspooler | 12| (31)| /system/app/PrintSpooler/PrintSpooler.apk
com.android.providers.blockednumber | 12| (31)| /system/priv-app/BlockedNumberProvider/BlockedNumberProvider.apk
com.android.providers.calendar | 12| (31)| /system/priv-app/CalendarProvider/CalendarProvider.apk
com.android.providers.contacts.auto_generated_rro_product__ | 1.0| (1)| /product/overlay/ContactsProvider__auto_generated_rro_product.apk
foobar66 said:
It is actually a (reasonably) simple linux/bash script which I run before/after upgrade. Then do a 'tkdiff' (if you know what that means) to visualize the deltas. Source code (feel free to (re)use).
Code:
#!/bin/bash
display_usage() {
echo "usage: $0 [{system|user}] [{path|pkg}] [{disabled|enabled}] [<filter>] ($1)"
}
SCNT=0
UCNT=0
PACNT=0
PKCNT=0
DCNT=0
ECNT=0
# by default we put package in first column
PPATH=false
# FLAGS1 selects between user (-3) and system (-s)
FLAGS1=""
# FLAGS2 selects between disabled (-d) and enabled (-e)
FLAGS2=""
# by default there is no grep filter
FCNT=0
FILTER=0
while [[ $# -gt 0 ]]; do
case $1 in
"user")
if [ $SCNT -eq 1 ]; then
display_usage "'user' and 'system' cannot occur together on the command line"
exit 1
fi
if [ $UCNT -eq 0 ]; then
UCNT=$((UCNT + 1))
FLAGS1="-3"
else
if [ $UCNT -eq 1 ]; then
display_usage "'user' can only occur once on the command line"
exit 1
fi
fi
;;
"system")
if [ $UCNT -eq 1 ]; then
display_usage "'user' and 'system' cannot occur together on the command line"
exit 1
fi
if [ $SCNT -eq 0 ]; then
SCNT=$((SCNT + 1))
FLAGS1="-s"
else
if [ $SCNT -eq 1 ]; then
display_usage "'system' can only occur once on the command line"
exit 1
fi
fi
;;
"enabled")
if [ $DCNT -eq 1 ]; then
display_usage "'enabled' and 'disabled' cannot occur together on the command line"
exit 1
fi
if [ $ECNT -eq 0 ]; then
ECNT=$((ECNT + 1))
FLAGS2="-e"
else
if [ $ECNT -eq 1 ]; then
display_usage "'enabled' can only occur once on the command line"
exit 1
fi
fi
;;
"disabled")
if [ $ECNT -eq 1 ]; then
display_usage "'enabled' and 'disabled' cannot occur together on the command line"
exit 1
fi
if [ $DCNT -eq 0 ]; then
DCNT=$((DCNT + 1))
FLAGS2="-d"
else
if [ $DCNT -eq 1 ]; then
display_usage "'disabled' can only occur once on the command line"
exit 1
fi
fi
;;
"path")
if [ $PKCNT -eq 1 ]; then
display_usage "'path' and 'pkg' cannot occur together on the command line"
exit 1
fi
if [ $PACNT -eq 0 ]; then
PACNT=$((PACNT + 1))
PPATH=true
else
if [ $PACNT -eq 1 ]; then
display_usage "'path' can only occur once on the command line"
exit 1
fi
fi
;;
"pkg")
if [ $PACNT -eq 1 ]; then
display_usage "'path' and 'pkg' cannot occur together on the command line"
exit 1
fi
if [ $PKCNT -eq 0 ]; then
PKCNT=$((PKCNT + 1))
PPATH=false
else
if [ $PKCNT -eq 1 ]; then
display_usage "'ppk' can only occur once on the command line"
exit 1
fi
fi
;;
*)
if [ $FCNT -eq 1 ]; then
display_usage "there can only be 1 filter argument"
exit 1
fi
FCNT=$((FCNT + 1))
FILTER="$1"
;;
esac
shift
done
if [ $FCNT -eq 0 ]; then
pkg=$(adb shell pm list packages $FLAGS1 $FLAGS2 -f | colrm 1 8 | sort)
else
pkg=$(adb shell pm list packages $FLAGS1 $FLAGS2 -f | colrm 1 8 | grep "$FILTER" | sort)
fi
LI=()
for P in $pkg; do
if [ $PPATH == "true" ]; then
# just push the entry <file>=<package>
LI+=("$P")
else
# extract filename and packagename and concat them
# so each entry looks like <package>=<filename>
P1=`echo $P | sed 's/apk=/apk /g' | awk '{print $1}'`
P2=`echo $P | sed 's/apk=/apk /g' | awk '{print $2}'`
LI+=("$P2=$P1")
fi
done
rm -rf /tmp/pkgdata
touch /tmp/pkgdata
for P in "${LI[@]:0}"; do
echo "$P" >> /tmp/pkgdata
done
for P in `sort /tmp/pkgdata | grep -v SwiftBlack | grep -v SwiftDark`; do
if [ $PPATH == true ]; then
P1=`echo $P | sed 's/apk=/apk /g' | awk '{print $1}'`
P2=`echo $P | sed 's/apk=/apk /g' | awk '{print $2}' | sed -e 's/ //g'`
else
P1=`echo $P | sed 's%=/% /%g' | awk '{print $2}'`
P2=`echo $P | sed 's%=/% /%g' | awk '{print $1}' | sed -e 's/ //g'`
fi
VER=`adb shell dumpsys package $P2 | grep versionName | head -n 1 | sed -e 's/versionName=//g' | sed -e 's/ //g' | cut -c-15`
VERC=`adb shell dumpsys package $P2 | grep versionCode | head -n 1 | awk '{print $1}' | sed 's/versionCode=//g' | cut -c-15`
if [ $PPATH == true ]; then
# argument was not supplied, it means file name is before the = sign
printf "%-115s |%15s| %-s\n" "$P1" "$VER" "$P2"
else
printf "%-65s |%15s|%12s| %-10s\n" "$P2" "$VER" "($VERC)" "$P1"
fi
done
Run it from the linux command line with:
Code:
> apackages system > before-update
Then apply Google system update, then:
Code:
> apackages system > after-update
> tkdiff before-update after-update
Iḿ not a Windows guy, but I guess it is not so complicated to turn this into a .bat script which you can run from DOS/Powershell under Windows. You must have working adb though.
The script has some command line args:
Code:
system|user: filter on system packages or user packages
enabled|disabled: filter on packages which are enabled or disabled
pkg|path: outputs the path first or package name first
Sample output (package name, short version, long version, path in Android file system):
Code:
com.android.ons | 12| (31)| /system/priv-app/ONS/ONS.apk
com.android.phone.auto_generated_rro_product__ | 1.0| (1)| /product/overlay/TeleService__auto_generated_rro_product.apk
com.android.phone.auto_generated_rro_vendor__ | 1.0| (1)| /vendor/overlay/TeleService__auto_generated_rro_vendor.apk
com.android.phone | 12| (31)| /system/priv-app/TeleService/TeleService.apk
com.android.printspooler | 12| (31)| /system/app/PrintSpooler/PrintSpooler.apk
com.android.providers.blockednumber | 12| (31)| /system/priv-app/BlockedNumberProvider/BlockedNumberProvider.apk
com.android.providers.calendar | 12| (31)| /system/priv-app/CalendarProvider/CalendarProvider.apk
com.android.providers.contacts.auto_generated_rro_product__ | 1.0| (1)| /product/overlay/ContactsProvider__auto_generated_rro_product.apk
Click to expand...
Click to collapse
This is amazing. Love seeing this stuff. I'm not really a script type of guy like you (guy/girl you know what I mean)... but its great to see and totally intrests me.
so can you see a bunch of files that were changed? or I guess you would have to run the script before and after?
this command
tkdiff before-update after-update
for example - how does it find the exact files that were changed?
Alekos said:
This is amazing. Love seeing this stuff. I'm not really a script type of guy like you (guy/girl you know what I mean)... but its great to see and totally intrests me.
so can you see a bunch of files that were changed? or I guess you would have to run the script before and after?
this command
tkdiff before-update after-update
for example - how does it find the exact files that were changed?
Click to expand...
Click to collapse
See previous post. Indeed run the script before/after, pipe the output into a text file, then do a 'diff' on the before/after text file ... but maybe that sounds like chinese if you're not familiar with Linux ...
The script actually uses adb to shell into the Android device and use the package manager (pm shell command) on the device to 'dump' the package data. Then the script picks up the package name, version name, version code and file path.
foobar66 said:
See previous post. Indeed run the script before/after, pipe the output into a text file, then do a 'diff' on the before/after text file ... but maybe that sounds like chinese if you're not familiar with Linux ...
The script actually uses adb to shell into the Android device and use the package manager (pm shell command) on the device to 'dump' the package data. Then the script picks up the package name, version name, version code and file path.
Click to expand...
Click to collapse
yeah it is chinese to me lol. but its all good.
so how many times was the file com.google.mainline.telemetry" changed in December/January? 3 times for 3 updates but no date change?
Alekos said:
yeah it is chinese to me lol. but its all good.
so how many times was the file com.google.mainline.telemetry" changed in December/January? 3 times for 3 updates but no date change?
Click to expand...
Click to collapse
The previous Play-systemupdate update which I received (Jan 6) only updated com.google.android.modulemetadata.
Google Play Store 28.9.12-19 [0] [PR] 421882020 (nodpi) (Android 4.4+) APK Download by Google LLC - APKMirror
Google Play Store 28.9.12-19 [0] [PR] 421882020 (nodpi) (Android 4.4+) APK Download by Google LLC - APKMirror Free and safe Android APK downloads
www.apkmirror.com
EDIT: Nm wont work
Doug8796 said:
Google Play Store 28.9.12-19 [0] [PR] 421882020 (nodpi) (Android 4.4+) APK Download by Google LLC - APKMirror
Google Play Store 28.9.12-19 [0] [PR] 421882020 (nodpi) (Android 4.4+) APK Download by Google LLC - APKMirror Free and safe Android APK downloads
www.apkmirror.com
EDIT: Nm wont work
Click to expand...
Click to collapse
Mine says it's up to date but it's October
Interesting, mine says Jan 1, 2022.
Mine also says Jan 1, 2022 now

Categories

Resources