You understanding is completely correct.
Starting at step 1, you initialise uniform weights $w_i = 1 / N$.
Beginning at step 2, in say iteration $m = 1$, you sample a bootstrap dataset $\mathcal{B}_1$, which consists of $N$ data points. This bootstrap dataset $\mathcal{B}_1$ is the result of sampling each point $(x_i, y_i)$ in the original training dataset $\mathcal{D}$ with probability $w_i$.
Then you use this bootstrap dataset $\mathcal{B}_1$ so that the specification in ESL that you
"fit the classifier $G_1(x)$ to the training data using weights $w_i$"
is exactly equivalent to
"fit the classifier $G_1(x)$ using the bootstrap data set $\mathcal{B}_1$"
You then proceed to carry out steps 2(b), 2(c), 2(d), which concludes with updating the weights $w_i$, then with these updated weights you return to begin iteration $m = 2$, which involves sampling a new bootstrap dataset $\mathcal{B}_2$ and repeat...
I am somewhat confused by why it is that you are unable to find appropriate references on the behaviour of Adaboost. There are notes on its behaviour in ESL pp338-339, but I can see why they might be unclear, they make no reference to the idea of using bootstrapped datasets, which clarifies things. My suggestion is that when in doubt, consult primary sources e.g. the original papers of Schapire and Freund. In the case that it might be mathematically heavy-going (sometimes primary literature can be), consult a secondary ML text like Murphy's MLPP or Bishop's PRML; or university lecture materials on the topic.
N.B. There is a 2nd possible behaviour to Adaboost that I was not aware of, which @Ben Reininger has supplied primary source info on.
On this basis, my response needs to be appropriately qualified to refer to the description of Adaboost as given in ESL.