How does android dm-verity protection validate blocks with hash tree
"But how can I verify root hash, when I have not read all the blocks??"


  "In essence, the leaves of the tree are pages containing hash values; each higher level in the tree contains hashes of the blocks below it."
  Reference


Example:


  "A merkle path is used to prove inclusion of a data element. A node can prove that a transaction K is included in the block by producing a merkle path that is only four 32-byte hashes long (128 bytes total). The path consists of the four hashes (shown with a shaded background in A merkle path used to prove inclusion of a data element) HL, HIJ, HMNOP, and HABCDEFGH. With those four hashes provided as an authentication path, any node can prove that HK (with a black background at the bottom of the diagram) is included in the merkle root by computing four additional pair-wise hashes HKL, HIJKL, HIJKLMNOP, and the merkle tree root ."
  Reference


"I would just store block hash values and after reading the block and hashing compare just the hash."

You have to remember that cell phones have a limited amount of resources. Your way of doing it you have to read the whole block and compare to verify the validity before. With the tree you only need to read a part of it to verify validity. 


  "However, attempting to verify an entire block device can take an extended period and consume much of a device's power. Devices would take long periods to boot and then be significantly drained prior to use." Reference


To help with your research I think it would be important to know the hash tree theory. It is called the Merkle tree first patented by Ralph Merkle