The 30-year-old centre-back was confirmed as skipper on England’s official Twitter account in the absence of regular captain Wayne Rooney, who is injured.
“We can confirm that @GaryJCahill will captain #England against @DFB_Team tomorrow,” England wrote.
This will be just the second time Cahill has worn the England captain’s armband from the outset, having first done so in October’s Euro 2016 qualifier at home to Estonia.
The Chelsea centre-back and the rest of the 22-man squad arrived in Berlin on Friday afternoon ahead of the glamour friendly with world champions Germany.
The squad will train at the Olympiastadion on the eve of the match after Cahill and manager Roy Hodgson speak to the media.