mirror of
				https://github.com/hzyitc/openwrt-redmi-ax3000
				synced 2025-10-30 07:50:32 +08:00 
			
		
		
		
	 642d568b0f
			
		
	
	642d568b0f
	
	
	
		
			
			Use apk adbdump to extract metadata from .apk files to derive the real package name. Signed-off-by: Felix Fietkau <nbd@nbd.name>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| sourcename="$1"; shift
 | |
| 
 | |
| for pkg in "$@"; do
 | |
| 	case "$pkg" in
 | |
| 		*/"${sourcename}_"*.ipk|\
 | |
| 		*/"${sourcename}-"[0-9]*.apk)
 | |
| 			rm -vf "$pkg"
 | |
| 		;;
 | |
| 		*.ipk)
 | |
| 			tar -Ozxf "$pkg" ./control.tar.gz 2>/dev/null | tar -Ozxf - ./control 2>/dev/null | {
 | |
| 				packagename=
 | |
| 				abiversion=
 | |
| 				while read field value; do
 | |
| 					case "$field" in
 | |
| 						Package:) packagename="$value";;
 | |
| 						ABIVersion:) abiversion="$value";;
 | |
| 					esac
 | |
| 				done
 | |
| 				[ -n "$abiversion" ] && packagename="${packagename%%$abiversion}"
 | |
| 				[ "$packagename" = "$sourcename" ] && rm -vf "$pkg"
 | |
| 			}
 | |
| 		;;
 | |
| 		*.apk)
 | |
| 			apk adbdump "$pkg" | grep -E '^  (name:|.*openwrt:abiversion)' | {
 | |
| 				packagename=
 | |
| 				abiversion=
 | |
| 				while read field value; do
 | |
| 					case "$field" in
 | |
| 						name:) packagename="$value";;
 | |
| 						-) abiversion="${value##*abiversion=}";;
 | |
| 					esac
 | |
| 				done
 | |
| 				[ -n "$abiversion" ] && packagename="${packagename%%$abiversion}"
 | |
| 				[ "$packagename" = "$sourcename" ] && rm -vf "$pkg"
 | |
| 			}
 | |
| 		;;
 | |
| 	esac
 | |
| done
 | |
| 
 | |
| exit 0
 |