I verified by creating a prerm script for packagekit-tools with sleep 20 in it, and then looked at the locks while that was sleeping:
# lslocks COMMAND PID TYPE SIZE MODE M START END PATH cron 415 FLOCK 4B WRITE 0 0 0 /run/crond.pid packagekitd 3374 POSIX 0B WRITE 0 0 0 /var/lib/dpkg/lock-frontend packagekitd 3374 POSIX 0B WRITE 0 0 0 /var/cache/apt/archives/lock atd 406 POSIX 4B WRITE 0 0 0 /run/atd.pid dpkg 3500 POSIX 0B WRITE 0 0 0 /var/lib/dpkg/lock
We can see the packagekitd holds the frontend lock, and dpkg holds the lock.
I verified by creating a prerm script for packagekit-tools with sleep 20 in it, and then looked at the locks while that was sleeping:
# lslocks dpkg/lock- frontend apt/archives/ lock
COMMAND PID TYPE SIZE MODE M START END PATH
cron 415 FLOCK 4B WRITE 0 0 0 /run/crond.pid
packagekitd 3374 POSIX 0B WRITE 0 0 0 /var/lib/
packagekitd 3374 POSIX 0B WRITE 0 0 0 /var/cache/
atd 406 POSIX 4B WRITE 0 0 0 /run/atd.pid
dpkg 3500 POSIX 0B WRITE 0 0 0 /var/lib/dpkg/lock
We can see the packagekitd holds the frontend lock, and dpkg holds the lock.